How To

Install Oracle RDBMS 10g R2 on Red Hat

This page is a fast and easy (trivial) guide to install Oracle RDBMS 10g R2 into a fresh installed Red Hat Enterprise Server 4 (Linux RH). For other releases see below.

Prerequisites:

1GB RAM, 2*RAM swap
4GB disk x sw, 2GB disk local DB
400MB on /tmp (or where TEMP TMPDIR vars refer)
OS RH ES 3
Oracle 10g R2 (10.2.0.1)
root access to the system, X11 working!
Packages: Default Installation +
 pdksh.5.2
 binutils-2.11
 cpp-2.96
 compat-glibc-6.2
 kernel-headers-2.4
 glibc-devel-2.2
 libstdc++-devel-2.96
 openmotif-devel-2.1
 piranha-0.7
 gcc-c++-2.96
 make-3.80


Preparation (as root)

Prepare FSs with the required size (eg. 2x10GB (SW, stage)).

Download all the required CDs, put them on the system (mount /dev/cdrom; cd media; cp ...)

Create oracle user, groups, ... configure profile
 # groupadd -g 500 oinstall
 # groupadd -g 501 dba
 # useradd -u 500 -d /home/oracle -g "oinstall" -G "dba" -m  -s /bin/bash oracle
 # grep nobody /etc/passwd
 Nobody:x:99:99:Nobody:/:/sbin/nobody
  
 $ vi ~oracle/.bash_profile
 umask 022
 ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
 TMP=/u01/bigtmp; export TMP
 TMPDIR=$TMP; export TMPDIR
 
Check system prerequisites (requires RDA tool):
 ./rda.pl -T hcve

Configure kernel parameters (Oracle 10g R2):
 vi /etc/sysctl.conf
  # Oracle RDBMS kernel parameters -- BEGIN
  kernel.shmall = 2097152
  kernel.shmmax = 536870912
  kernel.shmmni = 4096
  kernel.sem = 250 32000 100 128
  fs.file-max = 65536
  net.ipv4.ip_local_port_range = 1024 65000
  net.core.rmem_default=262144
  net.core.wmem_default=262144
  net.core.rmem_max=262144
  net.core.wmem_max=262144
  # Oracle RDBMS kernel parameters -- END
 then use /sbin/sysctl -p to update kernel values
Note (Oracle 10g R1):
  kernel.sem = 256 32000 100 142
  kernel.shmmax = 2147483648
  kernel.shmmni = 4096
  kernel.shmall = 2097152
  fs.file-max = 131072
  net.ipv4.ip_local_port_range = 20000 65000
Note (easier but not saved):
  echo 256 32000 100 142 > /proc/sys/kernel/sem
  echo 2147483648 > /proc/sys/kernel/shmmax
  echo 4096 > /proc/sys/kernel/shmmni
  echo 2097152 > /proc/sys/kernel/shmall
  echo 131072 > /proc/sys/fs/file-max
  echo 20000 65000 > /proc/sys/net/ipv4/ip_local_port_range

Configure ulimit vi /etc/security/limits.conf
 # Oracle Limits Configuration
 *               soft    nproc           2047
 *               hard    nproc           16384
 *               soft    nofile          2048
 *               hard    nofile          16384

For RHEL4:
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then 
 if [ \$SHELL = "/bin/ksh" ]; then
 ulimit -p 16384
 ulimit -n 65536
 else
 ulimit -u 16384 -n 65536
 fi
 umask 022
fi
EOF

cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
 limit maxproc 16384
 limit descriptors 65536
 umask 022
endif
EOF

 ln -s /sbin/fuser /bin/fuser

Installation (as oracle)

Uncompress Oracle SW (unzip)

Start installation (xhost +; set DISPLAY then ./runInstaller)
 Use default replies to all the questions!
 There are some scripts to be run as root...
 You are prompted to define the SYS/SYSTEM/... password. Do not forget it!


Post Installation

Check if Oracle is working (sqlplus http://hostname:1158/em)

Configure startup (/etc/rc3.d /etc/oratab /etc/rc3.d/S35vncserver ...)

Many manual configuration are useful: tuning parameters, SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF, ...


Different versions (eg. 10g on RH5 64bit, 9.2 on RH4 64bit, ...)
You can install Oracle 32 or 64 on Linux 64 (check with uname -a).
You can install only Oracle 32 on Linux 32.
Avoid SE-Linux... put SELINUX=disabled in /etc/selinux/config (it is not certified and difficoult to configure)

10g on RH5 64bit
# Ignore prerequisites:
./runInstaller -ignoreSysPrereqs

# Modify the oraparam.ini file to read redhat-5 as a certified version:
[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2,redhat-5

Packages
(i) gcc-c++-4.1.1-52.el5.i386.rpm and all its dependent packages. The dependent packages are
gcc-4.1.1-52.el5.i386.rpm
libstdc++-devel-4.1.1-52.el5.i386.rpm
glibc-devel-2.5-12.i386.rpm
glibc-headers-2.5-12.i386.rpm
libgomp-4.1.1-52.el5.i386.rpm
(ii) libXp-1.0.0-8.i386.rpm
(iii) compat-libstdc++-296-2.96-138.i386.rpm
(iv) compat-libstdc++-33-3.2.3-61.i386.rpm
(v) compat-db-4.2.52-5.1.i386.rpm
This packages are available in the directory Server in CD#3 of RHEL 5.

Carefully check RPMs version and architecture with rpm -aq --queryformat "%{NAME}-%{VERSION}-%{RELEASE} %{ARCH}\n"
runInstaller needs some 386i packages...

Kernel parameters
Add the following the lines in the file /etc/sysctl.conf:
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144


10g R2 on RH5.3 64bit
Prerequisites:
binutils-2.17.50.0.6-2 (x86_64)
compat-db-4.2.52-5.1 (x86_64)
compat-libstdc++-296-2.96-138 (i386)
compat-libstdc++-33-3.2.3-61(x86_64)
compat-libstdc++-33-3.2.3-61 (i386)
control-center-2.16.0-14 (x86_64)
gcc-4.1.1-52 (x86_64)
gcc-c++-4.1.1-52 (x86_64)
glibc-2.5-12 (x86_64)
glibc-2.5-12 (i686)
glibc-common-2.5-12 (x86_64)
glibc-devel-2.5-12 (x86_64)
glibc-devel-2.5-12 (i386)
glibc-headers-2.5-12 (x86_64)
ksh-20060214-1.4 (x86_64)
libaio-0.3.106-3.2 (x86_64)
libgcc-4.1.1-52 (i386)
libgcc-4.1.1-52 (x86_64)
libgnome-2.16.0-6 (x86_64)
libgnomeui-2.16.0-5 (x86_64)
libgomp-4.1.1-52 (x86_64)
libstdc++-4.1.1-52 (x86_64)
libstdc++-devel-4.1.1-52 (x86_64)
libXp-1.0.0-8 (i386)
libXtst-1.0.1-3.1 (i386) 
make-3.81-1.1 (x86_64)
sysstat-7.0.0-3 (x86_64) 


9.2 on RH4 64bit
# if runInstaller does not start!
Check, carefully, the prerequisites!
Check PATH, 32bit libraries, unset CLASSPATH.

# if runInstaller hangs!
Try:
export LD_ASSUME_KERNEL=2.4.19 # on RHEL 4; 2.4.1 on RHEL 3, RH 9; 2.2.5 on RHAS 2.1; 2.4.21 on SLES8, SLES9; unset on RHEL5, SLES10
export LDEMULATION=elf_i386

# if it does not compile sqlplus, ... it does not matter!

Buon divertimento! Have a lot of Fun! Que te diviertas! Diverte-te!


More info...

To create new DBs use dbca

Configuring DB Storage requires a specific design

There are a lot of options in the OUI...

Official documentation: http://www.oracle-base.com/articles/10g/OracleDB10gR2InstallationOnRHEL5.php
Better than Oracle doc: http://www.puschitz.com/InstallingOracle10g.shtml

If You prefer the italian version of this document...


Version: 1.0.4
Author: mail@meo.bogliolo.name