Index: openacs-4/packages/acs-core-docs/www/oracle.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-core-docs/www/oracle.adp 7 Aug 2017 23:47:51 -0000 1.2 @@ -0,0 +1,976 @@ + +{/doc/acs-core-docs {ACS Core Documentation}} {Install Oracle 8.1.7} +Install Oracle 8.1.7 + + +
+

+Install Oracle 8.1.7

+

By Vinod Kurup +

+OpenACS docs are written by the named authors, and may be edited by +OpenACS documentation staff.

If you are installing PostGreSQL instead of Oracle, skip this +section.

OpenACS 5.9.0 will install with Oracle 9i but has not been +extensively tested so may still have bugs or tuning issues. See +Andrew Piskorski's Oracle 9i notes for +guidance.

This installation guide attempts to present all of the +information necessary to complete an OpenACS installation. We try +hard to make all of the steps possible in one pass, rather than +having a step which amounts to "go away and develop a profound +understanding of software X and then come back and, in 99% of all +cases, type these two lines." The exception to our rule is +Oracle production systems. This page describes a set of steps to +get a working Oracle development server, but it is unsuitable for production systems. +If you will be using OpenACS on Oracle in a production environment, +you will experience many problems unless you develop a basic +understanding of Oracle which is outside the scope of this +document. T

This document assumes that you'll be installing Oracle on +the same box as AOLserver. For more details on a remote Oracle +installation, see Daryl Biberdorf's document.

Useful links to find help on how to set up Oracle under Linux +are:

+

+Acquire Oracle

Production Oracle systems should run on certified platforms. +Follow the metalink note 223718.1to find certified +platforms. If you don't have metalink access, take a look at +the Oracle on Linux FAQ: Which Linux +Distributions Are Directly Supported By Oracle?. In summary, +free and inexpensive Linux distributions are not certified.

You can download the Oracle software from the Oracle Downloads page.

Each Oracle release comes with extensive and usually quite +well-written documentation. Your first step should be to thoroughly +read the release notes for your operating system and your Oracle +version. Find the docs here:

It is generally useful to run a particular Oracle version with +its latest patchset. At the time of writing these were 8.1.7.4 and +9.2.0.5, both of which are considered to be very stable.

To be able to download a patchset, you need a (to-pay-for) +account on Metalink. You may find the appropriate patchset +by following Andrew's suggestion.

+
+

+Things to Keep in Mind

Oracle is very well-documented software, the online +documentation comes with printable PDFs and full-text search. +Altogether there is more than 20.000 pages of documentation, so do +not expect to understand Oracle within in a few hours. The best +starting pointing into Oracle is the Concepts book. Here's the +8i version and the 9.2 version.

To give you an idea of how configurable Oracle is and how much +thought you may need to put into buying the proper hardware and +creating a sane setup, you should thoroughly read Cary +Millsap's Configuring Oracle Server for VLDB and the +Optimal Flexible Architecture standard.

Throughout these instructions, we will refer to a number of +configurable settings and advise certain defaults. With the +exception of passwords, we advise you to follow these defaults +unless you know what you are doing. Subsequent documents will +expect that you used the defaults, so a change made here will +necessitate further changes later. For a guide to the defaults, +please see the section +called “Defaults”.

In order for OpenACS to work properly you need to set the +environment appropriately.

+export ORACLE_BASE=/ora8/m01/app/oracle
+export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
+export PATH=$PATH:$ORACLE_HOME/bin
+export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
+export ORACLE_SID=ora8
+export ORACLE_TERM=vt100
+export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
+
+umask 022
+
+open_cursors = 500
+
+nls_date_format = "YYYY-MM-DD"
+

For additional resources/documentation, please see this +thread and Andrew Piskorski's mini-guide.

+
+

+Pre-Installation Tasks

Though Oracle 8.1.7 has an automated installer, we still need to +perform several manual, administrative tasks before we can launch +it. You must perform all of these steps as the root user. We recommend entering the X +window system as a normal user and then doing a su -. This command gives you full root +access.

    +
  • +

    Login as a non-root user and start X by typing startx +

    +[joeuser ~]$ startx
    +
    +
  • +

    Open a terminal window type and login as root

    +[joeuser ~]$ su -
    +Password: ***********
    +[root ~]#
    +
    +
  • +

    Create and setup the oracle +group and oracle account

    We need to create a user oracle, which is used to install the +product, as well as starting and stopping the database.

    +[root ~]# groupadd dba
    +[root ~]# groupadd oinstall
    +[root ~]# groupadd oracle
    +[root ~]# useradd -g dba -G oinstall,oracle -m oracle
    +[root ~]# passwd oracle
    +

    You will be prompted for the New Password and Confirmation of +that password.

    +
  • +

    Setup the installation location for Oracle. While Oracle can +reside in a variety of places in the file system, OpenACS has +adopted /ora8 as the base +directory.

    +Note: the Oracle +install needs about 1 GB free on /ora8 to install successfully.

    +[root ~]# mkdir /ora8
    +root:/ora8# cd /ora8
    +root:/ora8# mkdir -p m01 m02 m03/oradata/ora8
    +root:/ora8# chown -R oracle.dba /ora8
    +root:/ora8# exit
    +
    +
  • +

    Set up the oracle user's +environment

      +
    • +

      Log in as the user oracle by +typing the following:

      +[joeuser ~]$ su - oracle
      +Password: ********
      +
      +
    • +

      Use a text editor to edit the .bash_profile file in the oracle account home directory.

      +[oracle ~]$ emacs .bash_profile
      +

      You may get this error trying to start emacs:

      +Xlib: connection to ":0.0" refused by server
      +Xlib: Client is not authorized to connect to Server
      +emacs: Cannot connect to X server :0.
      +Check the DISPLAY environment variable or use `-d'.
      +Also use the `xhost' program to verify that it is set to permit
      +connections from your machine.
      +

      If so, open a new terminal window and do the following:

      +[joeuser ~]$ xhost +localhost
      +

      Now, back in the oracle terminal:

      +[oracle ~]$ export DISPLAY=localhost:0.0
      +[oracle ~]$ emacs .bash_profile
      +

      Try this procedure anytime you get an Xlib connection refused +error.

      +
    • +

      Add the following lines (substituting your Oracle version number +as needed) to .bash_profile:

      +export ORACLE_BASE=/ora8/m01/app/oracle
      +export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
      +export PATH=$PATH:$ORACLE_HOME/bin
      +export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
      +export ORACLE_SID=ora8
      +export ORACLE_TERM=vt100
      +export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
      +
      +umask 022
      +

      Save the file by typing CTRL-X +CTRL-S and then exit by typing CTRL-X CTRL-C. Alternatively, use the +menus.

      +
    • +

    Make sure that you do not add any lines like the +following

    +# NLS_LANG=american
    +# export NLS_LANG
    +

    These lines will change the Oracle date settings and will break +OpenACS since OpenACS depends on the ANSI date format, YYYY-MM-DD +dates.

    +
  • +

    Log out as oracle

    +[oracle ~]$ exit
    +
    +
  • +

    Log back in as oracle and +double check that your environment variables are as intended. The +env command lists all of the +variables that are set in your environment, and grep shows you just the lines you want +(those with ORA in it).

    +[joeuser ~]$ su - oracle
    +[oracle ~]$ env | grep ORA
    +

    If it worked, you should see:

    +ORACLE_SID=ora8
    +ORACLE_BASE=/ora8/m01/app/oracle
    +ORACLE_TERM=vt100
    +ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7
    +ORA_NLS33=/ora8/m01/app/oracle/product/8.1.7/ocommon/nls/admin/data
    +

    If not, try adding the files to ~/.bashrc instead of .bash_profile. Then logout and log back in +again. Also, be certain you are doing su - oracle and not just su oracle. The - means that .bashrc and .bash_profile will be evaluated.

    Make sure that /bin, +/usr/bin, and /usr/local/bin are in your path by +typing:

    +[oracle ~]$ echo $PATH
    +/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/oracle/bin:/ora8/m01/app/oracle/product/8.1.7/bin
    +

    If they are not, then add them to the .bash_profile by changing the PATH +statement above to PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin +

    +
  • +
+
+

+Installing Oracle 8.1.7 Server

    +
  • +

    Log in as oracle and start X +if not already running. Start a new terminal:

    +[joeuser ~]$ xhost +localhost
    +[joeuser ~]$ su - oracle
    +Password: **********
    +[oracle ~]$ export DISPLAY=localhost:0.0
    +
    +
  • +

    Find the runInstaller +script

      +
    • +

      If you are installing Oracle from a CD-ROM, it is located in the +install/linux path from the +cd-rom mount point

      +[oracle ~]$ su - root
      +[root ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom
      +[root ~]# exit
      +[oracle ~]$ cd /mnt/cdrom
      +
      +
    • +

      If you are installing from the tarball, the install script is +located in the Oracle8iR2 +directory that was created when you expanded the archive.

      +[oracle ~]$ cd /where/oracle/Disk1
      +
      +
    • +

    Check to make sure the file is there.

    +oracle:/where/oracle/Disk1$ ls
    +doc  index.htm  install  runInstaller  stage  starterdb
    +

    If you don't see runInstaller, you are in the wrong +directory.

    +
  • +

    Run the installer

    +oracle:/where/oracle/Disk1$ ./runInstaller
    +

    A window will open that welcomes you to the 'Oracle +Universal Installer' (OUI). Click on "Next"

    +

    Note

    Some people have had trouble with this step on RedHat 7.3 and +8.0. If so, try the following steps before calling ./runInstaller:

      +
    1. Execute the following command: /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh +

    2. Type export +LD_ASSUME_KERNEL=2.2.5 +

    3. +
    +
    +
  • +

    The "File Locations" screen in the OUI:

      +
    • "Source" path should have been prefilled with +"(wherever you mounted the CDROM)/stage/products.jar"

    • +

      "destination" path says "/ora8/m01/app/oracle/product/8.1.7"

      If the destination is not correct it is because your environment +variables are not set properly. Make sure you logged on as +oracle using su - oracle. If so, edit the ~/.bash_profile as you did in the section called +“Pre-Installation Tasks” +

      +
    • Click "Next" (a pop up window will display Loading +Product information).

    • +
    +
  • +

    The "Unix Group Name" screen in the OUI:

      +
    • The Unix Group name needs to be set to 'oinstall' ( we made this Unix group +earlier ).

    • Click "Next"

    • A popup window appears instantly, requesting you to run a script +as root:

      • +

        Debian users need to link /bin/awk to /usr/bin/awk before running the script +below

        +[joueser ~]$ su -
        +[root ~]# ln -s /usr/bin/awk /bin/awk
        +
        +
    • +

      Open a new terminal window, then type:

      +[joeuser ~]$ su -
      +[root ~]# cd /ora8/m01/app/oracle/product/8.1.7
      +[root ~]# ./orainstRoot.sh  
      +; You should see:
      +Creating Oracle Inventory pointer file (/etc/oraInst.loc)
      +Changing groupname of /ora8/m01/app/oracle/oraInventory to oinstall.
      +[root ~]# mkdir -p /usr/local/java
      +[root ~]# exit
      +[joeuser ~]$ exit
      +
      +
    • Click "Retry"

    • +
    +
  • +

    The "Available Products" screen in the OUI:

      +
    • Select "Oracle 8i Enterprise Edition 8.1.7.1.0"

    • Click "Next"

    • +
    +
  • +

    The "Installation Types" screen

      +
    • Select the "Custom" installation type.

    • Click "Next"

    • +
    +
  • +

    The "Available Product Components" screen

      +
    • In addition to the defaults, make sure that "Oracle SQLJ +8.1.7.0," "Oracle Protocol Support 8.1.7.0.0," and +"Linux Documentation 8.1.7.0.0" are also checked.

    • Click "Next"

    • A progress bar will appear for about 1 minute.

    • +
    +
  • +

    The "Component Locations" screen in the OUI

      +
    • Click on the "Java Runtime Environment 1.1.8" It +should have the path "/ora8/m01/app/oracle/jre/1.1.8"

    • Click "Next"

    • A progress bar will appear for about 1 minute.

    • +
    +
  • +

    The "Privileged Operation System Groups" screen in the +OUI

      +
    • Enter "dba" for "Database Administrator (OSDBA) +Group"

    • Enter "dba" for the "Database Operator (OSOPER) +Group"

    • Click "Next"

    • A progress bar will appear for about 1 minute.

    • +
    +
  • +

    The "Authentication Methods" screen

    • Click "Next"

    +
  • +

    The next screen is "Choose JDK home directory"

      +
    • Keep the default path: /usr/local/java +

    • Click "Next"

    • +
    +
  • +

    The "Create a Database" screen in the OUI

      +
    • Select "No" as we will do this later, after some +important configuration changes.

    • Click "Next"

    • +
    +
  • +

    The next screen is "Oracle Product Support"

      +
    • TCP should be checked with "Status" listed as +Required

    • Click "Next"

    • +
    +
  • +

    The "Summary" screen in the OUI

      +
    • Check the "Space Requirements" section to verify you +have enough disk space for the install.

    • Check that "(144 products)" is in the "New +Installations" section title.

    • Click "Install"

    • A progress bar will appear for about 20 - 30 minutes. Now is a +good time to take a break.

    • A "Setup Privileges" window will popup towards the end +of the installation asking you to run a script as root +

    • +

      Run the script. Switch to the oracle user first to set the +environment appropriately and then do su to get root privileges, while +keeping the oracle user's environment.

      +[joeuser ~]$ su - oracle
      +Password: *********
      +[oracle ~]$ su
      +Password: *********
      +[root ~]# /ora8/m01/app/oracle/product/8.1.7/root.sh
      +; You should see the following.   
      +
      +Creating Oracle Inventory pointer file (/etc/oraInst.loc)
      +Changing groupname of /ora8/m01/app/oracle/oraInventory to oinstall.
      +# /ora8/m01/app/oracle/product/8.1.7/root.sh
      +Running Oracle8 root.sh script...
      +The following environment variables are set as:
      +    ORACLE_OWNER= oracle
      +    ORACLE_HOME=  /ora8/m01/app/oracle/product/8.1.7
      +    ORACLE_SID=   ora8
      +
      +Enter the full pathname of the local bin directory: [/usr/local/bin]: 
      +
      +Press ENTER here to accept default of /usr/local/bin
      +      
      +
      +Creating /etc/oratab file...
      +Entry will be added to the /etc/oratab file by
      +Database Configuration Assistants when a database is created
      +Finished running generic part of root.sh script.
      +Now product-specific root actions will be performed.
      +IMPORTANT NOTE: Please delete any log and trace files previously
      +                created by the Oracle Enterprise Manager Intelligent
      +                Agent. These files may be found in the directories
      +                you use for storing other Net8 log and trace files.
      +                If such files exist, the OEM IA may not restart.
      +
      +
    • Do not follow the instructions on deleting trace and log files, +it is not necessary.

    • +
    +[root ~]# exit
    +[joeuser ~]$ exit
    +
    +
  • Go back to the pop-up window and click "OK"

  • +

    The "Configuration Tools" screen in the OUI

    • This window displays the config tools that will automatically be +launched.

    +
  • +

    The "Welcome" screen in the "net 8 Configuration +Assistant"

      +
    • Make sure the "Perform Typical installation" is +not selected.

    • Click "Next"

    • The "Directory Service Access" screen in the "Net +8 Configuration Assistant"

    • Select "No"

    • Click "Next"

    • +
    +
  • +

    The "Listener Configuration, Listener Name" screen in +the "Net 8 Configuration Assistant"

      +
    • Accept the default listener name of "LISTENER"

    • Click "Next"

    • +
    +
  • +

    The "Listener Configuration, Select Protocols" screen +in the "Net 8 Configuration Assistant"

      +
    • The only choice in "Select protocols:" should be +"TCP/IP"

    • Click "Next"

    • +
    +
  • +

    The "Listener Configuration TCP/IP Protocol" screen in +the "Net 8 Configuration Assistant"

      +
    • Default Port should be 1521 and selected.

    • Click "Next"

    • +
    +
  • +

    The "Listener Configuration, More Listeners" screen in +the "Net 8 Configuration Assistant"

      +
    • Select "No"

    • Click "Next"

    • +
    +
  • +

    The "Listener Configuration Done" screen in the +"Net 8 Configuration Assistant"

    • Click "Next"

    +
  • +

    The "Naming Methods Configuration" screen in the +"Net 8 Configuration Assistant"

      +
    • Select "No"

    • Click "Next"

    • +
    +
  • +

    The "Done" screen in the "Net 8 Configuration +Assistant"

    • Click "Finish"

    +
  • +

    The "End of Installation" screen in the OUI

      +
    • Click "Exit"

    • Click "Yes" on the confirmation pop up window.

    • The Oracle Universal Installer window should have +disappeared!

    • +
    +
  • +

Congratulations, you have just installed Oracle 8.1.7 Server! +However, you still need to create a database which can take about +an hour of non-interactive time, so don't quit yet.

+
+

+Creating the First Database

This step will take you through the steps of creating a +customized database. Be warned that this process takes about an +hour on a Pentium II with 128 MB of RAM.

    +
  • +

    Make sure you are running X. Open up a terminal and su to oracle and then run the dbassist program.

    +[joeuser ~]$ xhost +localhost
    +[joeuser ~]$ su - oracle
    +Password: *********
    +[oracle ~]$ export DISPLAY=localhost:0.0
    +[oracle ~]$ dbassist
    +
    +
  • +

    The "Welcome" screen in the Oracle Database +Configuration Agent (ODCA)

      +
    • Select "Create a database"

    • Click "Next"

    • +
    +
  • +

    The "Select database type" screen in the ODCA

      +
    • Select "Custom"

    • Click "Next"

    • +
    +
  • +

    The "Primary Database Type" window in ODCA

      +
    • Select "Multipurpose"

    • Click "Next"

    • +
    +
  • +

    The "concurrent users" screen of the ODCA

      +
    • Select "60" concurrent users.

    • Click "Next"

    • +
    +
  • Select "Dedicated Server +Mode", click "Next"

  • Accept all of the options, and click Next Oracle Visual Information Retrieval +may be grayed out. If so, you can ignore it; just make sure that +everything else is checked.

  • For "Global Database Name", enter "ora8"; for "SID", also enter +"ora8" (it should do +this automatically). Click "Change Character Set and select +UTF8. Click "Next".

  • Accept the defaults for the next screen (control file location). +Click "Next"

  • Go to the "temporary" and "rollback" tabs, +and change the Size (upper-right text box) to 150MB. Click "Next"

  • Increase the redo log sizes to 10000K each. Click "Next"

  • Use the default checkpoint interval & timeout. Click +"Next"

  • Increase "Processes" to 100; "Block Size" to 4096 (better for small Linux boxes; use +8192 for a big Solaris machine).

  • Accept the defaults for the Trace File Directory. Click +"Next"

  • Finally, select "Save +information to a shell script" and click +"Finish" (We're +going to examine the contents of this file before creating our +database.)

  • Click the "Save" +button. Oracle will automatically save it to the correct directory +and with the correct file name. This will likely be /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh +

  • It will alert you that the script has been saved +successfully.

  • +

    Now we need to customize the database configuration a bit. While +still logged on as oracle, edit +the database initialization script (run when the db loads). The +scripts are kept in $ORACLE_HOME/dbs and the name of the script +is usually initSID.ora where SID is the SID of your database. +Assuming your $ORACLE_HOME +matches our default of /ora8/m01/app/oracle/product/8.1.7, the +following will open the file for editing.

    +[oracle ~]$ emacs /ora8/m01/app/oracle/product/8.1.7/dbs/initora8.ora
    +
    +
  • +

    Add the following line to the end:

    +nls_date_format = "YYYY-MM-DD"
    +
    +
  • +

    Now find the open_cursors +line in the file. If you're using emacs scroll up to the top of the buffer +and do CTRL-S and type +open_cursors to find the line. +The default is 100. Change it +to 500.

    +open_cursors = 500
    +
    +
  • Save the file. In emacs, do CTRL-X +CTRL-S to save followed by CTRL-X CTRL-C to exit or use the menu.

  • At this point, you are ready to initiate database creation. We +recommend shutting down X to free up some RAM unless you have 256 +MB of RAM or more. You can do this quickly by doing a CRTL-ALT-BACKSPACE, but make sure you have +saved any files you were editing. You should now be returned to a +text shell prompt. If you get sent to a graphical login screen +instead, switch to a virtual console by doing CRTL-ALT-F1. Then login as oracle.

  • +

    Change to the directory where the database creation script is +and run it:

    +[oracle ~]$ cd /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib
    +oracle:/ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib$ ./sqlora8.sh
    +

    In some instances, Oracle will save the file to /ora8/m01/app/oracle/product/8.1.7/assistants/dbca +Try running the script there if your first attempt does not +succeed.

    +
  • +

    Your database will now be built. It will take > 1 hour - no +fooling. You will see lots of errors scroll by (like: +"ORA-01432: public synonym to be dropped does not exist") +Fear not, this is normal.

    Eventually, you'll be returned to your shell prompt. In the +meantime, relax, you've earned it.

    +
  • +
+
+

+Acceptance Test

For this step, open up a terminal and su to oracle as usual. You should be running X +and Netscape (or other web browser) for this phase.

    +
  • You need to download the "Oracle Acceptance Test" +file. It's available here and at http://philip.greenspun.com/wtr/oracle/acceptance-sql.txt. +Save the file to /var/tmp +

  • +

    In the oracle shell, copy the file.

    +[oracle ~]$ cp /var/tmp/acceptance-sql.txt /var/tmp/acceptance.sql
    +
    +
  • +

    Once you've got the acceptance test file all set, stay in +your term and type the following:

    +[oracle ~]$ sqlplus system/manager
    +

    SQL*Plus should startup. If you get an ORA-01034: Oracle not Available error, it +is because your Oracle instance is not running. You can manually +start it as the oracle +user.

    +[oracle ~]$ svrmgrl
    +SVRMGR> connect internal
    +SVRMGR> startup
    +
    +
  • +

    Now that you're into SQL*Plus, change the default passwords +for system, sys, and ctxsys to "alexisahunk" (or to +something you'll remember):

    +SQL> alter user system identified by alexisahunk;
    +SQL> alter user sys identified by alexisahunk;
    +SQL> alter user ctxsys identified by alexisahunk;
    +
    +
  • +

    Verify that your date settings are correct.

    +SQL> select sysdate from dual;
    +

    If you don't see a date that fits the format YYYY-MM-DD, please read the section called +“Troubleshooting Oracle +Dates”.

    +
  • +

    At this point we are going to hammer your database with an +intense acceptance test. This usually takes around 30 minutes.

    +SQL> \@ /var/tmp/acceptance.sql
    +
    +; A bunch of lines will scroll by.  You'll know if the test worked if
    +; you see this at the end:
    +
    +SYSDATE
    +----------
    +2000-06-10
    +
    +SQL>
    +

    Many people encounter an error regarding maximum key length:

    +ERROR at line 1:
    +ORA-01450: maximum key length (758) exceeded
    +

    This error occurs if your database block size is wrong and is +usually suffered by people trying to load OpenACS into a +pre-existing database. Unfortunately, the only solution is to +create a new database with a block size of at least 4096. For instructions on how to do this, +see the section called +“Creating the First Database” +above. You can set the parameter using the dbassist program or by setting the +DB_BLOCK_SIZE parameter in your +database's creation script.

    If there were no errors, then consider yourself fortunate. Your +Oracle installation is working.

    +
  • +
+
+

+Automating Startup & +Shutdown

You will want to automate the database startup and shutdown +process. It's probably best to have Oracle spring to life when +you boot up your machine.

    +
  • +

    Oracle includes a script called dbstart that can be used to automatically +start the database. Unfortunately, the script shipped in the Linux +distribution does not work out of the box. The fix is simple. +Follow these directions to apply it. First, save dbstart to /var/tmp. Then, as oracle, do the following:

    +[oracle ~]$ cp /var/tmp/dbstart.txt /ora8/m01/app/oracle/product/8.1.7/bin/dbstart 
    +[oracle ~]$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/dbstart
    +
    +
  • +

    While you're logged in as oracle, you should configure the +oratab file to load your +database at start. Edit the file /etc/oratab:

      +
    • +

      You will see this line.

      +ora8:/ora8/m01/app/oracle/product/8.1.7:N
      +

      By the way, if you changed the service name or have multiple +databases, the format of this file is:

      service_name:$ORACLE_HOME:Y || N (for +autoload)

      +
    • +

      Change the last letter from "N" to "Y". This +tells Oracle that you want the database to start when the machine +boots. It should look like this.

      +ora8:/ora8/m01/app/oracle/product/8.1.7:Y
      +
      +
    • Save the file & quit the terminal.

    • +
    +
  • +

    You need a script to automate startup and shutdown. Save +oracle8i.txt in /var/tmp. Then login as root and install the script. (Debian users: +substitute /etc/init.d for +/etc/rc.d/init.d throughout +this section)

    +[oracle ~]$ su -
    +[root ~]# cp /var/tmp/oracle8i.txt /etc/rc.d/init.d/oracle8i
    +[root ~]# chown root.root /etc/rc.d/init.d/oracle8i
    +[root ~]# chmod 755 /etc/rc.d/init.d/oracle8i
    +
    +
  • +

    Test the script by typing the following commands and checking +the output. (Debian Users: as root, do mkdir /var/lock/subsys first)

    +[root ~]# /etc/rc.d/init.d/oracle8i stop
    +Oracle 8i auto start/stop
    +Shutting Oracle8i:
    +Oracle Server Manager Release 3.1.7.0.0 - Production
    +
    +Copyright (c) 1997, 1999, Oracle Corporation.  All
    +Rights Reserved.
    +
    +Oracle8i Enterprise Edition Release 8.1.7.0.1 -
    +Production
    +With the Partitioning option
    +JServer Release 8.1.7.0.1 - Production
    +
    +SVRMGR> Connected.
    +SVRMGR> Database closed.
    +Database dismounted.
    +ORACLE instance shut down.
    +SVRMGR>
    +Server Manager complete.
    +Database "ora8" shut down.
    +      
    +[root ~]# /etc/rc.d/init.d/oracle8i start
    +Oracle 8i auto start/stop
    +Starting Oracle8i: 
    +SQL*Plus: Release 8.1.7.0.0 - Production on Wed Mar 6 17:56:02 2002
    +
    +(c) Copyright 2000 Oracle Corporation.  All rights reserved.
    +
    +SQL> Connected to an idle instance.
    +SQL> ORACLE instance started.
    +
    +Total System Global Area   84713632 bytes
    +Fixed Size                    73888 bytes
    +Variable Size              76079104 bytes
    +Database Buffers            8388608 bytes
    +Redo Buffers                 172032 bytes
    +Database mounted.
    +Database opened.
    +SQL> Disconnected
    +
    +Database "ora8" warm started.
    +
    +Database "ora8" warm started.
    +
    +
  • +

    If it worked, then run these commands to make the startup and +shutdown automatic.

      +
    • +

      Red Hat users:

      +[root ~]# cd /etc/rc.d/init.d/                      
      +[root ~]# chkconfig --add oracle8i
      +[root ~]# chkconfig --list oracle8i
      +; You should see:
      +oracle8i        0:off   1:off   2:off   3:on    4:on    5:on    6:off
      +
      +
    • +

      Debian users:

      +[root ~]# update-rc.d oracle8i defaults
      + Adding system startup for /etc/init.d/oracle8i ...
      +   /etc/rc0.d/K20oracle8i -> ../init.d/oracle8i
      +   /etc/rc1.d/K20oracle8i -> ../init.d/oracle8i
      +   /etc/rc6.d/K20oracle8i -> ../init.d/oracle8i
      +   /etc/rc2.d/S20oracle8i -> ../init.d/oracle8i
      +   /etc/rc3.d/S20oracle8i -> ../init.d/oracle8i
      +   /etc/rc4.d/S20oracle8i -> ../init.d/oracle8i
      +   /etc/rc5.d/S20oracle8i -> ../init.d/oracle8i
      +
      +
    • +

      SuSE users:

      +[root ~]# cd /etc/rc.d/init.d
      +root:/etc/rc.d/init.d# ln -s /etc/rc.d/init.d/oracle8i K20oracle8i
      +root:/etc/rc.d/init.d# ln -s /etc/rc.d/init.d/oracle8i S20oracle8i
      +root:/etc/rc.d/init.d# cp K20oracle8i rc0.d
      +root:/etc/rc.d/init.d# cp S20oracle8i rc0.d
      +root:/etc/rc.d/init.d# cp K20oracle8i rc1.d
      +root:/etc/rc.d/init.d# cp S20oracle8i rc1.d 
      +root:/etc/rc.d/init.d# cp K20oracle8i rc6.d
      +root:/etc/rc.d/init.d# cp S20oracle8i rc6.d
      +root:/etc/rc.d/init.d# cp K20oracle8i rc2.d
      +root:/etc/rc.d/init.d# cp S20oracle8i rc2.d
      +root:/etc/rc.d/init.d# cp K20oracle8i rc3.d
      +root:/etc/rc.d/init.d# cp S20oracle8i rc3.d 
      +root:/etc/rc.d/init.d# cp K20oracle8i rc4.d  
      +root:/etc/rc.d/init.d# cp S20oracle8i rc4.d  
      +root:/etc/rc.d/init.d# cp K20oracle8i rc5.d
      +root:/etc/rc.d/init.d# cp S20oracle8i rc5.d
      +root:/etc/rc.d/init.d# rm K20oracle8i
      +root:/etc/rc.d/init.d# rm S20oracle8i
      +root:/etc/rc.d/init.d# cd
      +[root ~]# SuSEconfig
      +Started the SuSE-Configuration Tool.
      +Running in full featured mode.
      +Reading /etc/rc.config and updating the system...
      +Executing /sbin/conf.d/SuSEconfig.gdm...   
      +Executing /sbin/conf.d/SuSEconfig.gnprint...
      +Executing /sbin/conf.d/SuSEconfig.groff...   
      +Executing /sbin/conf.d/SuSEconfig.java...    
      +Executing /sbin/conf.d/SuSEconfig.kdm...   
      +Executing /sbin/conf.d/SuSEconfig.pcmcia...
      +Executing /sbin/conf.d/SuSEconfig.perl...
      +Executing /sbin/conf.d/SuSEconfig.postfix...
      +Executing /sbin/conf.d/SuSEconfig.sendmail...
      +Executing /sbin/conf.d/SuSEconfig.susehilf...
      +Executing /sbin/conf.d/SuSEconfig.susehilf.add...
      +Executing /sbin/conf.d/SuSEconfig.susewm...
      +Executing /sbin/conf.d/SuSEconfig.tetex...
      +Executing /sbin/conf.d/SuSEconfig.ypclient...
      +Processing index files of all manpages...
      +Finished.
      +
      +
    • +
    +
  • +

    You also need some scripts to automate startup and shutdown of +the Oracle8i listener. The listener is a name server that allows +your Oracle programs to talk to local and remote databases using a +standard naming convention. It is required for Intermedia Text and +full site search.

    Download these three scripts into /var/tmp +

    Now issue the following commands (still as root).

    +[root ~]# su - oracle
    +[oracle ~]$ cp /var/tmp/startlsnr.txt /ora8/m01/app/oracle/product/8.1.7/bin/startlsnr
    +[oracle ~]$ cp /var/tmp/stoplsnr.txt /ora8/m01/app/oracle/product/8.1.7/bin/stoplsnr    
    +[oracle ~]$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/startlsnr
    +[oracle ~]$ chmod 755 /ora8/m01/app/oracle/product/8.1.7/bin/stoplsnr
    +[oracle ~]$ exit
    +[root ~]# cp /var/tmp/listener8i.txt /etc/rc.d/init.d/listener8i
    +[root ~]# cd /etc/rc.d/init.d
    +root:/etc/rc.d/init.d# chmod 755 listener8i
    +

    Test the listener automation by running the following commands +and checking the output.

    +root:/etc/rc.d/init.d# ./listener8i stop
    +Oracle 8i listener start/stop
    +Shutting down Listener for 8i: 
    +LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 06-MAR-2002 18:28:49
    +
    +(c) Copyright 1998, Oracle Corporation.  All rights reserved.
    +
    +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
    +The command completed successfully
    +
    +    
    +root:/etc/rc.d/init.d# ./listener8i start
    +Oracle 8i listener start/stop
    +Starting the Listener for 8i: 
    +LSNRCTL for Linux: Version 8.1.7.0.0 - Production on 06-MAR-2002 18:28:52
    +
    +(c) Copyright 1998, Oracle Corporation.  All rights reserved.
    +
    +Starting /ora8/m01/app/oracle/product/8.1.7/bin/tnslsnr: please wait...
    +
    +TNSLSNR for Linux: Version 8.1.7.0.0 - Production
    +System parameter file is /ora8/m01/app/oracle/product/8.1.7/network/admin/listener.ora
    +Log messages written to /ora8/m01/app/oracle/product/8.1.7/network/log/listener.log
    +Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
    +Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
    +
    +Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
    +STATUS of the LISTENER
    +------------------------
    +Alias                     LISTENER
    +Version                   TNSLSNR for Linux: Version 8.1.7.0.0 - Production
    +Start Date                06-MAR-2002 18:28:53
    +Uptime                    0 days 0 hr. 0 min. 0 sec
    +Trace Level               off
    +Security                  OFF
    +SNMP                      OFF
    +Listener Parameter File   /ora8/m01/app/oracle/product/8.1.7/network/admin/listener.ora
    +Listener Log File         /ora8/m01/app/oracle/product/8.1.7/network/log/listener.log
    +Services Summary...
    +  PLSExtProc        has 1 service handler(s)
    +  ora8      has 1 service handler(s)
    +The command completed successfully
    +

    This test will verify that the listener is operating normally. +Login into the database using the listener naming convention.

    +sqlplususername/password/\@SID +

    +[root ~]# su - oracle
    +[oracle ~]$ sqlplus system/alexisahunk\@ora8
    +
    +SQL> select sysdate from dual;
    +
    +SYSDATE
    +----------
    +2002-02-22
    +
    +SQL> exit
    +[oracle ~]$ exit
    +[root ~]#
    +
      +
    • +

      RedHat users:

      Now run chkconfig on the +listener8i script.

      +[root ~]# cd /etc/rc.d/init.d/
      +root:/etc/rc.d/init.d# chkconfig --add listener8i
      +root:/etc/rc.d/init.d# chkconfig --list listener8i
      +listener8i      0:off   1:off   2:off   3:on    4:on    5:on    6:off
      +
      +
    • +

      Debian users:

      Now run update-rc.d on the +listener8i script.

      +[root ~]# update-rc.d listener8i defaults 21 19
      + Adding system startup for /etc/init.d/listener8i ...
      +   /etc/rc0.d/K19listener8i -> ../init.d/listener8i
      +   /etc/rc1.d/K19listener8i -> ../init.d/listener8i
      +   /etc/rc6.d/K19listener8i -> ../init.d/listener8i
      +   /etc/rc2.d/S21listener8i -> ../init.d/listener8i
      +   /etc/rc3.d/S21listener8i -> ../init.d/listener8i
      +   /etc/rc4.d/S21listener8i -> ../init.d/listener8i
      +   /etc/rc5.d/S21listener8i -> ../init.d/listener8i
      +
      +
    • +
    +
  • +

    Test the automation

    As a final test, reboot your computer and make sure Oracle comes +up. You can do this by typing

    +[root ~]# /sbin/shutdown -r -t 0 now
    +

    Log back in and ensure that Oracle started automatically.

    +[joeuser ~]$ su - oracle
    +[oracle ~]$ sqlplus system/alexisahunk\@ora8
    +
    +SQL> exit
    +
    +
  • +

Congratulations, your installation of Oracle 8.1.7 is +complete.

+
+

+Troubleshooting Oracle +Dates

Oracle has an internal representation for storing the data based +on the number of seconds elapsed since some date. However, for the +purposes of inputing dates into Oracle and getting them back out, +Oracle needs to be told to use a specific date format. By default, +it uses an Oracle-specific format which isn't copacetic. You +want Oracle to use the ANSI-compliant date format which is of form +'YYYY-MM-DD'.

To fix this, you should include the following line in +$ORACLE_HOME/dbs/initSID.ora or for the default case, $ORACLE_HOME/dbs/initora8.ora +

+nls_date_format = "YYYY-MM-DD"
+

You test whether this solved the problem by firing up +sqlplus and typing:

+SQL> select sysdate from dual;
+

You should see back a date like 2000-06-02. If some of the date is chopped +off, i.e. like 2000-06-0, +everything is still fine. The problem here is that sqlplus is simply truncating the output. +You can fix this by typing:

+SQL> column sysdate format a15
+SQL> select sysdate from dual;
+

If the date does not conform to this format, double-check that +you included the necessary line in the init scripts. If it still +isn't working, make sure that you have restarted the database +since adding the line:

+[joeuser ~]$ svrmgrl
+SVRMGR> connect internal
+Connected.
+SVRMGR> shutdown
+Database closed.
+Database dismounted.
+ORACLE instance shut down.
+SVRMGR> startup
+ORACLE instance started.
+

If you're sure that you have restarted the database since +adding the line, check your initialization scripts. Make sure that +the following line is not included:

+export nls_lang = american
+

Setting this environment variable will override the date +setting. Either delete this line and login again or add the +following entry to your login scripts after the nls_lang line:

+export nls_date_format = 'YYYY-MM-DD'
+

Log back in again. If adding the nls_date_format line doesn't help, you +can ask for advice in our OpenACS +forums.

+
+

+Useful Procedures

  • +

    Dropping a tablespace

      +
    • +

      Run sqlplus as the dba:

      +[oracle ~]$ sqlplus system/changeme
      +
      +
    • +

      To drop a user and all of the tables and data owned by that +user:

      +SQL> drop user oracle_user_name cascade;
      +
      +
    • +

      To drop the tablespace: This will delete everything in the +tablespace overriding any referential integrity constraints. Run +this command only if you want to clean out your database +entirely.

      +SQL> drop tablespace table_space_name including contents cascade constraints;
      +
      +
    • +
    +

For more information on Oracle, please consult the documentation.

+
+

+Defaults

We used the following defaults while installing Oracle.

+++ + + + + + + + + + + + + + + +
VariableValueReason
ORACLE_HOME/ora8/m01/app/oracle/product/8.1.7This is the default Oracle installation directory.
ORACLE_SERVICEora8The service name is a domain-qualified identifier for your +Oracle server.
ORACLE_SIDora8This is an identifier for your Oracle server.
ORACLE_OWNERoracleThe user who owns all of the oracle files.
ORACLE_GROUPdbaThe special oracle group. Users in the dba group are authorized +to do a connect internal within +svrmgrl to gain full system +access to the Oracle system.
($‌Id: oracle.xml,v 1.21.14.6 2017/06/17 +08:29:28 gustafn Exp $)
+
+
+ + \ No newline at end of file