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.
- Determine the domain, hostname and IP address.
- Add a host entry to /etc/host.
- Retrieve public yum repository configuration file from Oracle.
- Add an entry for EL4 update 4.
- Append kernel parameters to sysctl.conf
- Modify limits of the operating system for oracle.
- Install the following rpms required by Oracle.
- Setup users and groups.
- Prepare the basic file structure for 9i.
- Make sure the environmental variables are correct.
- Decompress Oracle 9.2.0.4 software files.
- Install 9.2.0.4 software and database.
- Welcome
- Inventory Location
- Unix Group Name
- Execute orainstRoot.sh Open another console to execute the script.
- File Locations
- Available Products
- Installation Types
- Database Identification
- Database File Location
- Database Character Set
- Summary
- Install
- Execute root.sh
- Database Configuration Assistant
- Password Management
- An Error Message (it can be passed)
- Configuration Tools
- End of Installation
- Decompress 9.2.0.8 patch.
- Install 9.2.0.8 patch.
- Welcome
- Specify File Locations
- Select a Product to Install
- Summary
- Install
- Execute root.sh
- End of Installation
- Start listener.
- Check version after installation.
[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
...
[root@oracle9i ~]$ echo "192.168.0.151 oracle9i.example.com oracle9i" >> /etc/hosts
[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]
Since Oracle support only EL4 update 6 and above of yum service, so we take the baseurl of update 6 as our baseurl and change 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
[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
[root@oracle9i ~]# vi /etc/security/limits.conf
...
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
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
[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.
[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
...
[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
[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
[oracle@oracle9i tmp]$ cd Disk1
[oracle@oracle9i Disk1]$ ./runInstaller
[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.
[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.
It seems OUI has bugs that repeat some nonsense steps after end of installation.
[oracle@oracle9i tmp]$ unzip p4547809_92080_LINUX.zip
inflating: ...
creating: ...
[oracle@oracle9i tmp]$ cd Disk1
[oracle@oracle9i Disk1]$ ./runInstaller
[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
[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>