CCL Home Page
Up Directory CCL oracle-install.html
Installing Oracle 8.1.6
Previous: Installing Red Hat Linux 6.2

Installing Oracle 8.1.6

Next: Installing AOLServer 3.0
ACS Documentation : ACS Installation Guide : Installing Oracle 8.1.6

Oracle is the RDBMS utilized by the ArsDigita Community System. If you have trouble installing it, please refer to Oracle's documentation.

Table of Contents

  1. Acquire Oracle 8.1.6 Enterprise Edition for Linux
  2. Things to keep in mind
  3. Pre-Installation Tasks
  4. Installing Oracle 8.1.6 Server
  5. Creating your first database
  6. Acceptance Test
  7. Automating Startup and Shutdown
  8. Appendix A: What to do about wrong dates
  9. Appendix B: Useful Procedures
  10. Appendix C: Oracle Defaults

Acquire Oracle 8.1.6 Enterprise Edition

You can obtain the software through a variety of methods.

  1. Order a CD from the Oracle Store. There is a link under the heading Buying Tips that says "Learn how to trial Oracle software." Click this for instructions on how to make your order. The cost is currently $39.95 with delivery estimated between 3-4 business days.

  2. Request a free demonstration CD. At the Oracle Downloads page, click on the appropriate version of Oracle 8.1.6 Release 2 for your OS. You should see a "Try Online" link. After filling out some information forms, you should be able to order a version of the CD. This takes about 2-3 weeks for delivery.

  3. You can download Oracle from the Technet ftp site. The Linux version is at ftp://ftp.oracle.com/pub/www/otn/linux/oracle8i/oracle8161_tar.gz.

    Note that the Oracle tarball that you will download is huge (> 250Mb).

    • Oracle 8.1.6 now comes with a Java RunTime Environment built-in to the distribution, so you no longer have to download and install it separately.

    • After the download is complete, untar the file to a convenient location. To do this, you will need to login and cd to the directory where the archive is.
      $ cd /directory/where/oracle/is
      $ tar -xzvf oracle8161_tar.gz
      

TOP

Things to Keep in Mind

Throughout these instructions, we will refer to a number of configurable settings. We will 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 Appendix 3.

TOP

Pre-Installation Tasks

Though Oracle 8.1.6 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 user other than root and then doing a su -. This command gives you full root access.

  • Login in as a non-root user.

  • Start X by typing startx.
  • Open a terminal window type and login as root.
    $ su -
    ; Enter the root password when prompted.
    #
    
  • 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.

    # groupadd dba
    # groupadd oinstall
    # groupadd oracle
    # useradd -g dba -G oinstall,oracle -m oracle
    
    Now change the oracle account password

    # 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, ArsDigita has adopted '/ora8' as the base directory.

    Note: the oracle install needs about 1 Gb free on '/ora8' to install successfully.

    # mkdir /ora8
    # cd /ora8
    # mkdir -p m01 m02 m03/oradata/ora8
    # chown -R oracle.dba /ora8
    # exit                  ; Logs out.
    
  • Set up the oracle user Environment

    • Log in as the user oracle

      In the same terminal window, type the following.

      $ su - oracle
      ; Enter oracle's password
      
    • Use a text editor to edit the .bash_profile file in the oracle account home directory.
      $ emacs ~oracle/.bash_profile
      
      You may get this error:
      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, do the following.
      Open a new terminal window.
      $ xhost +localhost
      Now, back in the oracle terminal
      $ export DISPLAY=localhost:0
      $ emacs ~oracle/.bash_profile
      
      Try this procedure anytime you get an Xlib connection refused error.

    • Add the following lines to this file:

      export ORACLE_BASE=/ora8/m01/app/oracle
      export ORACLE_HOME=$ORACLE_BASE/product/8.1.6
      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 the ArsDigita Community System (ACS) because ACS depends on the ANSI date format, YYYY-MM-DD dates.

  • Log out as oracle.

    $ exit
    
  • Log back in as oracle and double check that your environment variables are as intended.

    $ su - oracle
    $ env | grep ORACLE
    
    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.6
    
    If not, try adding the files to ~oracle/.bashrc. Then logout and log back in again. Also, be certain you are doing su - and not just su. 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:

    $ echo $PATH
    /bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/oracle/bin:/ora8/m01/app/oracle/product/8.1.6/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).

TOP

Installing Oracle 8.1.6 Server

  • Log in as the user oracle and start X if not already running.

    Start a new terminal
    $ xhost +localhost
    $ su - oracle
    Enter oracle password
    $ 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

      $ su - root
      # mount -t iso9660 /dev/cdrom /mnt/cdrom
      # exit
      $ cd /mnt/cdrom
      
    • If you are installing from the tarball, the install script is located in the 'Oracle8iR2' directory that was cerated when you expanded the archive.

      $ cd /where/oracle/archive/is/Oracle8iR2
      
    Check to make sure the file is there.
    $ ls
    doc  index.htm  install  runInstaller  stage  starterdb
    
    If you don't see runInstaller you are in the wrong directory.

  • Run the installer.

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

  • 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.6."

      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 ~oracle/.bash_profile as you did in the pre-installation steps.

    • 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 a root:

    • Open a new terminal window, then type:

      $ su
      # cd /ora8/m01/app/oracle/product/8.1.6
      # ./orainstRoot.sh  
      ; You should see:
      Creating Oracle Inventory pointer file (/etc/oraInst.loc)
      Changing groupname of /ora8/m01/app/oracle/oraInventory to oinstall.	  
      # exit
      $ exit
      
    • Click "Retry."


  • The "Available Products" screen in the OUI:

    • Select "Oracle 8i Enterprise Edition 8.1.6.1.0" is selected.

    • 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.6.0," "Oracle Protocol Support 8.1.6.1.0," and "Linux Documentation 8.1.6.0.0" are also checked (they were not in releases 8.1.5 and 8.1.6).

    • 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 "Create a Database" screen in the OUI.

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

    • 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 "(91 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.

      $ su -
      Enter root password
      # /ora8/m01/app/oracle/product/8.1.6/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.6/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.6
          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 Assistant 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.

    # exit
    $ 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.6 Server! However, you still need to create a database which can take about an hour of non-interactive time, so don't quit yet. TOP

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.
    $ xhost +localhost
    $ su - oracle
    ; Enter oracle password
    $ export DISPLAY=localhost:0
    $ 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 "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; aD uses 8192 on the big Solaris machines).

  • 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 be /ora8/m01/app/oracle/product/8.1.6/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.6, the following will open the file for editing.
    $ emacs /ora8/m01/app/oracle/product/8.1.6/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 the script.
    $ cd /ora8/m01/app/oracle/product/8.1.6/assistants/dbca/jlib
    $ ./sqlora8.sh
    
  • 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.

TOP

Acceptance Test

For this step, open up a terminal and su to oracle as usual. You should be running X and Netscape for this step.
  • You need to download the "Oracle Acceptance Test" file. It's available here and at http://photo.net/wtr/oracle/acceptance-sql.txt. Save the file to /tmp.

  • In the oracle shell, copy the file.

    $ cp /tmp/acceptance-sql.txt /tmp/acceptance.sql
    
  • Once you've got the acceptance test file all set, stay in your term and type the following:

    $ 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.
    $ 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 change them 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 this section..

  • At this point we are going to hammer your database with an intense acceptance test. This usually takes around 30 minutes.
    SQL> @ /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> 
    If there were no errors, then consider yourself fortunate. Your Oracle installation is working.

TOP

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 /tmp. Then login, and su to oracle.
    $ cp /tmp/dbstart.txt /ora8/m01/app/oracle/product/8.1.6/bin/dbstart 
    $ chmod 755 /ora8/m01/app/oracle/product/8.1.6/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.6: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.6:Y

  • Save the file & quit the terminal.

  • You need a script to automate startup and shutdown. Save oracle8i.txt in /tmp. Then login as root and install the script.
     
    $ su -
    # cp /tmp/oracle8i.txt /etc/rc.d/init.d/oracle8i
    # chown root.root /etc/rc.d/init.d/oracle8i
    # chmod 700 /etc/rc.d/init.d/oracle8i      
    
  • Test the script by typing the following commands and checking the output.
    # /etc/rc.d/init.d/oracle8i stop
    Oracle 8i auto start/stop
    Shutting Oracle8i:
    Oracle Server Manager Release 3.1.6.0.0 - Production
    
    Copyright (c) 1997, 1999, Oracle Corporation.  All Rights Reserved.
    
    Oracle8i Enterprise Edition Release 8.1.6.1.0 - Production
    With the Partitioning option
    JServer Release 8.1.6.0.0 - Production
    
    SVRMGR> Connected.
    SVRMGR> Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SVRMGR> 
    Server Manager complete.
    Database "ora8" shut down.
          
    # /etc/rc.d/init.d/oracle8i start
    Oracle 8i auto start/stop
    Starting Oracle8i: 
    SQL*Plus: Release 8.1.6.0.0 - Production on Sat Jun 10 17:56:02 2000
    
    (c) Copyright 1999 Oracle Corporation.  All rights reserved.
    
    SQL> Connected to an idle instance.
    SQL> ORACLE instance started.
    
    Total System Global Area   85004272 bytes
    Fixed Size		      69616 bytes
    Variable Size		   76374016 bytes
    Database Buffers	    8388608 bytes
    Redo Buffers		     172032 bytes
    Database mounted.
    Database opened.
    SQL> Disconnected
    
    Database "ora8" warm started.
    
  • If it worked, then run these commands to make the startup and shutdown automatic.
    # cd /etc/rc.d/init.d/                      
    # chkconfig --add oracle8i
    # chkconfig --list oracle8i
    ; You should see:
    oracle8i       	0:off	1:off	2:off	3:on	4:on	5:on	6:off
    
  • 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 /tmp

    Now issue the following commands (still as root).

    # su - oracle
    # cp /tmp/startlsnr.txt /ora8/m01/app/oracle/product/8.1.6/bin/startlsnr
    $ cp /tmp/stoplsnr.txt /ora8/m01/app/oracle/product/8.1.6/bin/stoplsnr    
    $ chmod 700 /ora8/m01/app/oracle/product/8.1.6/bin/startlsnr
    $ chmod 700 /ora8/m01/app/oracle/product/8.1.6/bin/stoplsnr
    $ exit
    ; You should now be back as root.
    # cp /tmp/listener8i.txt /etc/rc.d/init.d/listener8i
    # cd /etc/rc.d/init.d
    # chmod 700 listener8i
    

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

    # ./listener8i stop
    Oracle 8i listener start/stop
    Shutting down Listener for 8i: 
    LSNRCTL for Linux: Version 8.1.6.0.0 - Production on 10-JUN-2000 18:28:49
    
    (c) Copyright 1998, 1999, Oracle Corporation.  All rights reserved.
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
    The command completed successfully
    
        
    # ./listener8i start
    Oracle 8i listener start/stop
    Starting the Listener for 8i: 
    LSNRCTL for Linux: Version 8.1.6.0.0 - Production on 10-JUN-2000 18:28:52
    
    (c) Copyright 1998, 1999, Oracle Corporation.  All rights reserved.
    
    Starting /ora8/m01/app/oracle/product/8.1.6/bin/tnslsnr: please wait...
    
    TNSLSNR for Linux: Version 8.1.6.0.0 - Production
    System parameter file is /ora8/m01/app/oracle/product/8.1.6/network/admin/listener.ora
    Log messages written to /ora8/m01/app/oracle/product/8.1.6/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.6.0.0 - Production
    Start Date                10-JUN-2000 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.6/network/admin/listener.ora
    Listener Log File         /ora8/m01/app/oracle/product/8.1.6/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.

    sqlplus username/password@SID

    # su - oracle
    $ sqlplus system/alexisahunk@ora8
    
    SQL> select sysdate from dual;
    
    SYSDATE
    ----------
    2000-06-10
    
    SQL> exit
    $ exit
    #
    

    Now run chkconfig on the listener8i script.

    # cd /etc/rc.d/init.d/
    # chkconfig --add listener8i
    # chkconfig --list listener8i
    listener8i     	0:off	1:off	2:off	3:on	4:on	5:on	6:off
    

  • Test the automation

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

    # /sbin/shutdown -r -t 0 now
    
    Log b ack in and ensure that Oracle started automatically.
    $ su - oracle
    $ sqlplus system/alexisahunk@ora8
    
    SQL> exit
    
Your installation of Oracle 8.1.6 is complete. Congratulations.


TOP

Appendix A: 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 if you didn't do it prior to database creation.

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, then let me know about it. TOP

Appendix B: Useful Procedures

  • Dropping a tablespace

    • run sqlplus as the dba
      $ 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;
      
    • 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.

TOP

Appendix C: Defaults

We used the following defaults while installing Oracle.

VariableValueReason
ORACLE_HOME/ora8/m01/app/oracle/product/8.1.6This 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.


Previous: Installing Red Hat Linux 6.2 Installing Oracle 8.1.6
part of the ACS Installation Guide
Next: Installing AOLServer 3.0

bquinn@arsdigita.com

Reader's Comments

For those of you installing under Debian (potato) Linux instead of Red Hat, everythings works just fine. The only differences in the above directions is with the startup and shutdown scripts. The init.d files live in /etc/init.d instead of /etc/rc.d/init.d and Debian uses update-rc.d instead of chkconfig. For example, to automatically start oracle:
$ su -
# cp /tmp/oracle8i.txt /etc/init.d/oracle8i
# chown root.root /etc/init.d/oracle8i
# chmod 700 /etc/init.d/oracle8i
# update-rc.d oracle8i defaults


-- Jason Waterman, June 24, 2000
If you are failing the acceptance tests with messages like:
ORA-01562: failed to extend rollback segment number 0
ORA-01628: max # extents (249) reached for rollback segment SYSTEM
ORA-06512: at "SYSTEM.THRASH_DATABASE", line 6
ORA-06512: at line 1
Then look at the following references: It may offer at least a place to begin.

-- Jade Rubick, June 26, 2000
8.1.6 is a much easier install than 8.1.5. If you are trying to make 8.1.5 work and still have problems with the AOL or ACS install after the 8.1.5 install, consider starting over with 8.1.6. The Oracle download site seems to be working a little better recently and I could actually download a copy of 8.1.6 from the site (280MB). For some reason I could never get a proper connection through Netscape under Linux (it tries to display the file on the screen or declines to connect at all), and anonymous ftp direct to the Oracle ftp server wouldn't login, but I could connect with IE under Windows. So I downloaded 8.1.6 under Windows and ftp'd it over to my Linux box. I used a Windows download manager (Netzip Download Demon from Real (RealAudio, etc.), available at www.tucows.com as freeware/adware). The Oracle download took several hours overnight on an ISDN connection. You might first want to disable any screensavers and/or powersaver features that could shut down your machine after a certain amount of time with no keyboard or mouse activity. Also make sure your hard drive has available space on your target partition.

-- Dave Darden, June 28, 2000

Weirdness Xdisplaying Oracle Installer Programs

A funny thing happened when I ran the Oracle installers under the Exceed X server: they seem to disable the window manager. The titlebars and frames on all X windows from that machine disappeared, and buttons near the bottom were (sometimes) turned into lines. Also, stacking order of the windows could no longer be changed, nor could they be moved around. (N.b. I'm using Exceed 6.1.0.0 under NT4SP6; it happened on two different machines.)

Upshots: The install can still be done, you just have to click on the "button" lines (hint: Next = rightmost), and won't see the titles of the windows (referred to in the docs above -- easy to guess, though). Getting the focus to the input fields (database sizes, etc.) can be stubborn. Try clicking on another window, then back to the installer, etc. Be patient when you click Next, as the cursor doesn't immediately turn into an hourglass. You have to run scripts from 'root' twice during the install; you may have to open a new xterm, run the script, and close it again each time.

The saving of the shell script to create the database (pretty much the last step) used a different path (actually one directory higher) than the one in the docs above. I had to type the filename in manually. It still runs, though.

SuSE Linux 6.4 Issues

The install went as described, except that SuSE already has some Oracle provisions, and the auto-startup/shutdown stuff is different. (Seems like every Unix I've ever used has a different way of doing this . :-)

Oracle User

SuSE comes with an oracle user and oinstall and (I think) dba groups. You'll have to check these and make sure they're set up the ACS way.

ORACLE_HOME & Co. Variables

SuSE stores its commands to set ORACLE_HOME etc. in /etc/profile.d/oracle.sh. I set this with the ACS values, and call it from the various .profile files. The ACS scripts set them internally, so these will still work. (As long as you used the ACS directory names!)

Disabling X Server

SuSE gives you a nice GUI login screen by default (kdm). Hitting Ctrl-Alt-Backspace does indeed kill your running X session, but then it will just start up again and ask you to login. (You have to kill xdm from a root prompt to make it stay dead.)

The official way to disable that is to use YaST's sysadmin menu. This didn't work for me; I had to manually edit /etc/rc.config, set DISPLAYMANAGER = "" and run SuSEconfig to make it take effect.

Doing so will change your default runlevel. SuSE defines runlevel 3 as the default, and runlevel 2 as the default minus the GUI login. So, after doing the above, your system will boot up to runlevel 2. (Why do you care? Read on...)

Automated Start & Stop

SuSE doesn't have the 'chkconfig' command. So, you have to deal with runlevels and a subdirectory for each.

SuSE comes with some Oracle autostart scripts already enabled. I disabled these, and replaced them with the ACS ones, to have a cleaner install.

  • Copy your oracle8i and listener8i files into /etc/rc.d, instead of /etc/rc.d/init.d.
  • Create symbolic links to them from the subdirectories for runlevels 2 and 3 (here are the commands for runlevel 3):
    loki:/etc/rc.d # cd rc3.d
    loki:/etc/rc.d/rc3.d # mkdir ../rc3.d.NOT
    loki:/etc/rc.d/rc3.d # ls *oracle*
    K10oracle  S40oracle
    loki:/etc/rc.d/rc3.d # mv *oracle* ../rc3.d.NOT
    loki:/etc/rc.d/rc3.d # ln -s ../oracle8i S40oracle8i
    loki:/etc/rc.d/rc3.d # ln -s ../oracle8i K10oracle8i
    loki:/etc/rc.d/rc3.d # ln -s ../listener8i S40listener8i
    loki:/etc/rc.d/rc3.d # ln -s ../listener8i K10listener8i
    
  • The S and K files here are run with a parameter of start and stop, respectively, when the system enters and leaves runlevel 3. The number (10, 40) determines the order things in this directory are run -- if you do an 'ls' you will see that oracle gets started basically last, and stopped basically first. It's ok to have several items with the same number.
  • At this point (if you've copied the other files into $ORACLE_HOME/bin), you can test these out by typing things like 'K10listener8i stop'. Make sure the permissions are set correctly on the scripts in /etc/rc.d, so you can execute them.
  • Don't forget to do the same thing in directory /etc/rc.d/rc2.d!

"Have a lot of fun..." (SuSE unofficial slogan)

-- Thomas Hundt, June 29, 2000

I would like to add a critical step that is necessary to install under Solaris. Upon creation of the database, Oracle startup will fail with "Out of Memory" errors unless you set shared memory parameters according to Oracle installation manual. At a minimum, for the settings recommended in this article, the additions to the /etc/system file should be as follows:

* Oracle 8i settings
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=110
set semsys:seminfo_semmsl=100
set semsys:seminfo_semmns=220
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767

After this, shut down the server with init 0 (from root) and reboot with boot -r from the PROM prompt.

-Craig

-- Craig Steinberger, June 30, 2000

I installed Oracle 8.1.6 EE on Slackware 7.0, and ran into a snag when dbassist wouldn't run. I found this solution on the Oracle technet forum which solves the problem:
# ln -s /bin/free /usr/bin
Slackware puts the "free" program in /bin, while Red Hat puts it in /usr/bin. One would think that it wouldn't matter if both are in your path, but the dbassist program apparently looks only in the hard /usr/bin location, so you have to create a symlink. So far this is the only problem I've had using the elegant Slackware distribution vice Red Hat.



-- Ben Ballard, July 6, 2000
Additional debian notes:

I, too, used a 2.2/potato system.

1. You want to create the directory /var/lock/subsys before you test your /etc/init.d/oracle8i script, so as to avoid a little error message. The "lock" file placed therein isn't used for anything; perhaps it's a Red Hat cosmetic thing, perhaps aD or Oracle might have some future use for it. No harm in putting it there, methinks.

2. When you automate the listener startup/shutdown, you want to make sure that the listener starts after the instance, and shuts down before it. if you used the command,

update-rc.d oracle8i defaults

as suggested above when automating the instance, then for the listener, you want this command:

update-rc.d listener8i defaults 21 19

For the record, I agree with the other posters here-- the 8.1.6 install was much easier for me than 8.1.5 . If you're stuck with a dial-up connection and find yourself tempted by a copy of 8.1.5 on CD, don't do it-- wait for 8.1.6 on CD or avail yourself of a friend with a DSL line and a CD burner.

In particular, do not buy the $89 shrinkwrapped box published by MacMillan that includes the "standard edition of Oracle 8i for linux" (no version specified, but it's 8.1.5), an EUL prohibiting commercial use thereof, and a crappy doorstop of a book that you'd never buy if you had the chance to pick it up off the shelf and leaf through it for a minute. Do not be reassured by the Standard Linux Penguin on the box.

-- Ed Slocomb, July 9, 2000

When running Debian Potato, the root.sh scripts specify /bin/awk as the default awk. I had to change that to /usr/bin/awk.

Also, with the new Oracle 8.1.6 Standard release, if you enable archive logging during installation, the install puts the wrong type of LOG_ARCHIVE_DEST parameter in the init<sid>.ora file. The parameter specifies an archive log for a database on standby, which appears not to be supported in standard edition. When starting the newly created database Oracle throws an error "Managed Standby Not Supported" or somesuch. The fix is to change

LOG_ARCHIVE_DEST_1 = (location=<pathname>)

to

LOG_ARCHIVE_DEST = <pathname>.

in the init<sid>.ora file.

-- C. R. Oldham, July 14, 2000

If you have troubles getting the Net8 configuration to work, a discussion and working listener.ora and tnsnames.ora files can be found at http://www.arsdigita.com/bboard/q-and-a-fetch-msg?msg_id=0008cj&topic_id=21&topic=web%2fdb.

-- Jade Rubick, July 25, 2000
If you have to reinstall Oracle, the Oracle installer doesn't deinstall everything. I'm not sure if it is important to actually go through and delete the leftovers, but here are files that looked like Oracle's installer missed (on RH6.2):
  • /etc/oraInst.loc
  • /etc/oratab
  • /usr/local/bin/coraenv
  • /usr/local/bin/dbhome
  • /usr/local/bin/oraenv
I also deleted the /ora8 directory and all subdirectories after uninstalling, just to be sure.

-- Jade Rubick, July 26, 2000
For the Oracle 8.1.6.1 Standard Edition (which is now available, and much easier to install than 8.1.5), the Net8 Configuration Assistant didn't come up for me before the screen with the "Configuration Tools" button. I received the following error message:
SIGSEGV received at befffa34 in /usr/X11R6/lib/libXt.so.6. Processing terminated
Writing stack trace to javacore2387.txt ... OK
See my previous comment for a link to a web/db thread which discusses this problem.

Also, for the Standard Edition, the number of products it installs is 88, not 91, as in the Enterprise Edition.

-- Jade Rubick, July 26, 2000

I got the SIGSEGV error as well. Mike Bonnet's suggestion in the q-and-a thread, which is to disable access control with the command
xhost +
solved the problem for me.

-- Paul Epps, July 28, 2000
If you get a 'permission denied' when running runInstaller, create a new mountpoint for the cdrom, chmod it (777) and manually mount the cdrom there. This fixes the above problem.

Possibly it's ok to just chmod the current mountpoint and then remount the cdrom. (I didn't test).

-- Gustaf Björklund, August 22, 2000

The runInstaller executable does not work on redhat 6.2, perhaps other versions as well.

There appears to be a problem with it finding the jre, even though the correct version (they recommend 1.1.6, although the error message suggests 1.1.8, and I've tried every release yet put on the market anyway) is set up with the correct links according to the documentation. runInstaller always seems to look for /jre/bin in a path lead by some bizarre ASCII character.

It's too bad they've done away with the editable shell script launcher, as any problems could have been quickly eliminated, instead of my wasting 4 hours on this one install.

-- fn ord, August 22, 2000

Another possible resolution to the error (below) that occurs whenever trying to start dbassist or the DB Configuration Assistant and it will not start at all:

JNLS Exception:oracle.ntpg.jnls.JNLSException Unable to find any National Character Sets. Please check your Oracle installation and make sure that the ORACLE_HOME environment variable is defined correctly.

Try changing/adding the following in oracle's profile: ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

Marco marco@nbnet.nb.ca

-- Marco Shaw, August 26, 2000

I ordered the Oracle CDs from their website, and received a package with 15 (!) CDs. Average cost ? $3. each.

More about Oracle 8i on SuSE 6.4 : by default, it creates some groups needed, the one you have to add is 'oracle' . It also creates the *user* oracle during install, and it goes on the /opt dir . I chose to delete it altogether and follow the instructions from these pages line by line, to add the user and configure its environment. Guaranteed success !



-- Fernando Rabelo, August 27, 2000

Installation on SuSE Linux 7.0

I ran into problems at the point where the Net8 Config. Assistant was supposed to come up, which it did not. Looking at the /ora8/m01/app/oracle/oraInventory/logs/installActions.log there was no trace of an error. But when I ran the same command manually, it failed with a seg.fault.
Solution:Mike Bonnet mentioned netca as an alternative way to configure Net8 in his posting on the web&db forum and it worked for me.

Another problem was that the "Database Creation Assistant" (or whatever it is called) did not run. Running the command line from the log produced an error saying that the argument "-createtype none" is invalid.
Solution: Just leave this out or replace none with NO_VALUE.

Except for the minor troubles mentioned above, the installation worked like a charm.



-- Michael Hanisch, October 6, 2000
I started from an existing Redhat 6.2 system, and didn't go back to read the previous material. My Oracle installation failed a couple of times, with no useful messages that I could find.

In desparation, I went back and reviewed the earlier sections, set up my Linux with 400Mb of swap space, and the installation went fine. (If slowly, given only 96Mb RAM.)

-- Steven Graham, October 7, 2000

Another Installation on SuSE 7.0

After much pain trying to install Oracle 8.1.6.1 on Red Hat 7.0, I switched over to SuSE 7.0 Professional and everything worked fine. Why SuSE? They published a web page listing version compatibilities (http://www.suse.com/en/support/oracle/), and 8.1.6.1 is listed as compatible with SuSE 7.0.

I still don't know why Red Hat 7.0 didn't work out. Everything was fine up until the instance creation step (where you run sqlora8.sh). At this step, the first script (ora8run.sh) generates an oracleora8 process which becomes a zombie after a couple of minutes. I tried re-compiling the kernel with the recommended parameters (e.g. larger SHMMAX) -- an ordeal in itself since things appear to be in flux with gcc -- but this did not help.

-- Andrew Grumet, October 8, 2000

Redhat 7.0


REDHAT 7.0 : Oracle8i doesn't work with Redhat 7.0 yet--at least not for this configuration. After getting hacked and having to turn my hard drives over to the FBI as evidence I decided to rebuild my box on Redhat 7.0. The Oracle8i install seemed to go fine up to the point that I ran the sqlora8.sh script to build the database. It hangs indefinitely.

Rather than try to troubleshoot I reverted back to 6.2 and had the database built in no time. If this is relevant to your situtation I recommend you consult Oracle and/or Redhat to see if they have a patch or new version out yet. I'm sure they will soon. (Oct 2000)

-- Joshua Stout, October 17, 2000

Oracle 8.1.6 vs. Redhat 7.0:

It looks like Oracle 8i really wants to link against glibc-2.1. So much so that it doesn't work on RH7, which uses glibc 2.2. Much more information, including a workaround is available at Red Hat's Bugzilla page about this.

Here are links (copied from the Bugzilla comments) to valinux' workaround:

This patch worked perfectly. Or, at least, far better than all my previous efforts combined :)

Oracle 8.1.6 vs. Shared Memory (perhaps less relevant; no one else has posted a problem with this)

When following these instructions for installing Oracle, the resulting initora8.ora file includes the line

shared_pool_size = 524288 00
which seems to tell Oracle to use 50MB of shared memory. The kernel shipped with RedHat has a limit of 32MB of shared memory (SHMMAX in /usr/src/linux/include/asm-i386/shmparm.h). The first system I installed Oracle on (with only 128MB of RAM) ran fine with the kernel from the distribution. On the second (and fourth) systems (which both had 512MB of RAM), Oracle was cranky until I recompiled the kernel with a larger SHMMAX.



-- Eric Northup, October 24, 2000
Slackware 7 Install

.I ran into two small things I had to fix to install Oracle on Slackware 7.. one is to copy the free command from /bin to /usr/bin otherwise dbassist will error out with java errors regarding number format. The other fix I can't remember... wish I had posted this at the time, but was also a command in a different directory in Slackware than RH, but as I remember it was easier to figure out

-- James Ross, October 31, 2000

If the installer chokes with a grey box upon install, you may want to look at this link: http://www.arsdigita.com/bboard/q-and-a-fetch-msg?msg_id=000H6a&topic_id=web%2fdb&topic=. The source of the problem seems to be one of the security updates for Linux.

This is related to the runInstall script not working.

-- Jade Rubick, November 1, 2000

I cannot get oracle installed. Tried 3 times now. Running redhat 6.2 on a pIII 800mhz, 256 ram and 20 gig hd. I have a 600mb swap also. THe installation fails up to the acceptance test. I go into oracle first. i type svrmgrl then connect internal then startup Then i recieve a oracle error ora- 02050 i think ...controle file error. Whats up? i followed the directions ..no results? :( HELP ME !!!!!!~

-- ahmed ahmed, December 4, 2000
I'm installing on Redhat 7.0 everything works except the autostart script It won't autostart and when I go to start it as root, which is what the auto start does I get thois message.
 /database/m01/app/oracle/product/8.1.6/bin/svrmgrl

Oracle Server Manager Release 3.1.6.0.0 - Production

Message 4505 not found; No message file for product=SVRMGR, facility=MGR

Error while trying to retrieve text for error ORA-12545
SVRMGR> connect internal
Message 701 not found; No message file for product=SVRMGR, facility=MGR
Message 701 not found; No message file for product=SVRMGR, facility=MGR
Error while trying to retrieve text for error ORA-12545 SVRMGR>
Anyone have an answer.
Thanks,


-- Christopher Brown, December 15, 2000
Add a comment | Add a link
Modified: Wed Feb 7 05:17:18 2001 GMT
Page accessed 36636 times since Mon Feb 19 04:45:08 2001 GMT