How to Install Oracle 9i Database on Enterprise Linux 4

  • by
Here I show my experience on the steps to install 9.2.0.4 and patch it up to 9.2.0.8 on Enterprise Linux 4.4. In general, Oracle 9.2.0.4 is easy to be installed with the type of a standalone database.
  1. Determine the domain, hostname and IP address.
  2. [oracle@oracle9i ~]$ vi /etc/resolv.conf
    search example.com
    nameserver 168.95.1.1
    [oracle@oracle9i ~]$ vi /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=oracle9i.example.com
    GATEWAY=192.168.0.1
    [oracle@oracle9i ~]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
    ...
    IPADDR=192.168.0.151
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
    ...

  3. Add a host entry to /etc/host.
  4. [root@oracle9i ~]$ echo "192.168.0.151 oracle9i.example.com oracle9i" >> /etc/hosts
  5. Retrieve public yum repository configuration file from Oracle.
  6. [root@oracle9i ~]# cd /etc/yum.repos.d
    [root@oracle9i yum.repos.d]# mv ULN-Base.repo ULN-Base.repo.disabled
    [root@oracle9i yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el4.repo
    --20:51:52--  http://public-yum.oracle.com/public-yum-el4.repo
               => `public-yum-el4.repo'
    Resolving public-yum.oracle.com... 141.146.44.34
    Connecting to public-yum.oracle.com|141.146.44.34|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1,236 (1.2K) [text/plain]

    100%[====================================================================================================>] 1,236         --.--K/s

    20:51:52 (3.01 MB/s) - `public-yum-el4.repo' saved [1236/1236]

  7. Add an entry for EL4 update 4.
  8. Since Oracle support only EL4 update 6 and above of yum service, so we take the baseurl of update 6 as our baseurl and chenage an attribute "enabled" to "1".
    [root@oracle9i yum.repos.d]# vi public-yum-el4.repo
    ...
    [el4_u4_base]
    name=Enterprise Linux $releasever Update 4 installation media copy ($basearch)
    baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL4/6/base/$basearch/
    gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el4
    gpgcheck=1
    enabled=1

  9. Append kernel parameters to sysctl.conf
  10. [root@oracle9i ~]# vi /etc/sysctl.conf
    ...
    kernel.shmmax = 2147483648
    kernel.shmmni = 100
    kernel.shmall = 2097152
    kernel.sem = 100 256 100 100
    fs.file-max = 327679
    kernel.hostname   = oracle9i.example.com
    kernel.domainname = example.com
    ...
    [root@oracle9i ~]# /sbin/sysctl -p
    net.ipv4.ip_forward = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    kernel.shmmax = 2147483648
    kernel.shmmni = 100
    kernel.shmall = 2097152
    kernel.sem = 256 32678 100 256
    fs.file-max = 327679
    kernel.hostname = oracle9i.example.com
    kernel.domainname = example.com

  11. Modify limits of the operating system for oracle.
  12. [root@oracle9i ~]# vi /etc/security/limits.conf
    ...
    oracle soft nofile 65536
    oracle hard nofile 65536
    oracle soft nproc 16384
    oracle hard nproc 16384

  13. Install the following rpms required by Oracle.
  14. compat-db-4.1.25-9
    compat-gcc-32-3.2.3-47.3
    compat-gcc-32-c++-3.2.3-47.3
    compat-libgcc-296-2.96-132.7.2
    compat-libstdc++-296-2.96-132.7.2
    compat-libstdc++-33-3.2.3-47.3
    gcc-3.4.3-9.EL4
    gcc-c++-3.4.3-9.EL4
    gnome-libs-1.4.1.2.90-44
    gnome-libs-devel-1.4.1.2.90-44
    libaio-devel-0.3.102-1
    libaio-0.3.102-1
    make-3.80-5
    openmotif21-2.1.30-11
    xorg-x11-deprecated-libs-devel-6.8.1-23.EL
    xorg-x11-deprecated-libs-6.8.1-23.EL

    Furthermore, two rpms inclued in patch 4198954 should be installed:
    compat-oracle-rhel4-1.0-5.i386.rpm
    compat-libcwait-2.0-2.i386.rpm

  15. Setup users and groups.
  16. [root@oracle9i ~]# groupadd oinstall
    [root@oracle9i ~]# groupadd dba
    [root@oracle9i ~]# groupadd oper
    [root@oracle9i ~]# groupadd apache
    [root@oracle9i ~]# useradd -g oinstall -G dba oracle
    [root@oracle9i ~]# passwd oracle
    Changing password for user oracle.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
    [root@oracle9i ~]# useradd -g oinstall -G apache apache
    [root@oracle9i ~]# passwd apache
    Changing password for user apache.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

  17. Prepare the basic file structure for 9i.
  18. [root@oracle9i ~]# mkdir -p /u01/app/oracle/product/9.2.0
    [root@oracle9i ~]# chown -R oracle.oinstall /u01
    [root@oracle9i ~]# su - oracle
    [oracle@oracle9i ~]$ vi .bash_profile
    # Oracle 9i
    ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/9.2.0; export ORACLE_HOME
    ORACLE_TERM=xterm; export ORACLE_TERM
    PATH=$ORACLE_HOME/bin:$PATH; export PATH
    ORACLE_OWNER=oracle; export ORACLE_OWNER
    ORACLE_SID=ORACLE9I; export ORACLE_SID

    LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/network/jlib; export CLASSPATH

    LD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL
    TMP=/tmp; export TMP
    TMPDIR=$TMP; export TMPDIR
    ...

  19. Make sure the environmental variables are correct.
  20. [oracle@oracle9i ~]$ . .bash_profile
    [oracle@oracle9i ~]$ echo $ORACLE_SID
    ORACLE9I
    [oracle@oracle9i ~]$ echo $ORACLE_BASE
    /u01/app/oracle
    [oracle@oracle9i ~]$ echo $ORACLE_HOME
    /u01/app/oracle/product/9.2.0

  21. Decompress Oracle 9.2.0.4 software files.
  22. [oracle@oracle9i ~]$ cd /tmp
    [oracle@oracle9i tmp]$ gunzip ship_9204_linux_disk1.cpio.gz
    [oracle@oracle9i tmp]$ gunzip ship_9204_linux_disk2.cpio.gz
    [oracle@oracle9i tmp]$ gunzip ship_9204_linux_disk3.cpio.gz
    [oracle@oracle9i tmp]$ cpio -idmv < ship_9204_linux_disk1.cpio
    ...
    Disk1
    1288238 blocks
    [oracle@oracle9i tmp]$ cpio -idmv < ship_9204_linux_disk2.cpio
    ...
    Disk2
    1263504 blocks
    [oracle@oracle9i tmp]$ cpio -idmv < ship_9204_linux_disk3.cpio
    ...
    Disk3
    585396 blocks

  23. Install 9.2.0.4 software and database.
  24. [oracle@oracle9i tmp]$ cd Disk1
    [oracle@oracle9i Disk1]$ ./runInstaller

    • Welcome
    • Inventory Location
    • Unix Group Name
    • Execute orainstRoot.sh
    • Open another console to execute the script.
      [root@oracle9i ~]# cd /tmp
      [root@oracle9i tmp]# ./orainstRoot.sh
      Creating Oracle Inventory pointer file (/etc/oraInst.loc)
      Changing groupname of /u01/app/oracle/oraInventory to oinstall.

    • File Locations
    • Available Products
    • Installation Types
    • Database Identification
    • Database File Location
    • Database Character Set
    • Summary
    • Install
    • Execute root.sh
    • [root@oracle9i tmp]# cd /u01/app/oracle/product/9.2.0/
      [root@oracle9i 9.2.0]# ./root.sh
      Running Oracle9 root.sh script...
      nThe following environment variables are set as:
          ORACLE_OWNER= oracle
          ORACLE_HOME=  /u01/app/oracle/product/9.2.0

      Enter the full pathname of the local bin directory: [/usr/local/bin]:
         Copying dbhome to /usr/local/bin ...
         Copying oraenv to /usr/local/bin ...
         Copying coraenv to /usr/local/bin ...

      nCreating /etc/oratab file...
      Adding entry to /etc/oratab file...
      Entries will be added to the /etc/oratab file as needed 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.

    • Database Configuration Assistant
    • Password Management
    • An Error Message (it can be passed)
    • Configuration Tools
    • End of Installation
    It seems OUI has bugs that repeat some nonsense steps after end of installation.
  25. Decompress 9.2.0.8 patch.
  26. [oracle@oracle9i tmp]$ unzip p4547809_92080_LINUX.zip
      inflating: ...
      creating: ...

  27. Install 9.2.0.8 patch.
  28. [oracle@oracle9i tmp]$ cd Disk1
    [oracle@oracle9i Disk1]$ ./runInstaller

    • Welcome
    • Specify File Locations
    • Select a Product to Install
    • Summary
    • Install
    • Execute root.sh
    • End of Installation
  29. Start listener.
  30. [oracle@oracle9i ~]$ lsnrctl start

    LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 15-NOV-2012 20:18:09

    Copyright (c) 1991, 2006, Oracle Corporation.  All rights reserved.

    Starting /u01/app/oracle/product/9.2.0/bin/tnslsnr: please wait...

    TNSLSNR for Linux: Version 9.2.0.8.0 - Production
    System parameter file is /u01/app/oracle/product/9.2.0/network/admin/listener.ora
    Log messages written to /u01/app/oracle/product/9.2.0/network/log/listener.log
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle9i.example.com)(PORT=1521)))

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 9.2.0.8.0 - Production
    Start Date                15-NOV-2012 20:18:09
    Uptime                    0 days 0 hr. 0 min. 0 sec
    Trace Level               off
    Security                  OFF
    SNMP                      OFF
    Listener Parameter File   /u01/app/oracle/product/9.2.0/network/admin/listener.ora
    Listener Log File         /u01/app/oracle/product/9.2.0/network/log/listener.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle9i.example.com)(PORT=1521)))
    Services Summary...
    Service "ORACLE9I" has 1 instance(s).
      Instance "ORACLE9I", status UNKNOWN, has 1 handler(s) for this service...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully

  31. Check version after installation.
  32. [oracle@oracle9i ~]$ sqlplus /nolog

    SQL*Plus: Release 9.2.0.8.0 - Production on Thu Nov 15 20:26:35 2012

    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

    SQL> conn / as sysdba
    Connected to an idle instance.
    SQL> startup
    ORACLE instance started.

    Total System Global Area  235999648 bytes
    Fixed Size                   450976 bytes
    Variable Size             201326592 bytes
    Database Buffers           33554432 bytes
    Redo Buffers                 667648 bytes
    Database mounted.
    Database opened.
    SQL> select * from v$version;

    BANNER
    ----------------------------------------------------------------
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
    PL/SQL Release 9.2.0.8.0 - Production
    CORE    9.2.0.8.0       Production
    TNS for Linux: Version 9.2.0.8.0 - Production
    NLSRTL Version 9.2.0.8.0 - Production

    SQL>
Many thanks to the guidance from ORACLE-BASE.COM, make the installation more smoothly.

Leave a Reply

Your email address will not be published. Required fields are marked *