1. Overview
This guide assumes a server with the following hardware requirements:
- A single CPU,
- 1024 Mb of RAM,
- and one disk drive (IDE, SCSI, or FireWire) with at least 7 Gb of free space:
1024 Mb of disk space in the /tmp directory,
3.8 Gb of local disk space for the database software,
and about 1.5 Gb of swap disk space.
This procedure is based on Metalink Note: 880936.1: Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 5 on 32-bit x86
As preliminary step, let us verify the prerequisites for installing Oracle 11gR2 RDBMS:
- Required kernel version:
Red Hat Enterprise Linux Server 5.2 (or greater), which is Kernel 2.6.18-92 or ewer.
- Required packages versions:
C.f. Oracle Metalink Note: 880936.1
- Swap Disk Space Considerations:
Installing Oracle Database 11g Release 2 requires a minimum of 1024Mb of memory. Swap disk space should be proportional to the system’s physical memory:
With RAM as 1024 Mb to 2048 Mb, Swap Disk Space should be 1.5 x RAM
To check the amount of memory we have:
$ cat /proc/meminfo | grep MemTotal
MemTotal: 1048576 kB
To check the amount of swap space we have allocated:
$ cat /proc/meminfo | grep SwapTotal
SwapTotal: 1572864 kB
2. Configuring Linux for the Installation of Oracle Database 11g Release 2
2.1 Setting Kernel Parameters
The kernel parameters presented in this section are recommended values as documented by Oracle Metalink note 880936.1.
i. Setting Shared Memory
Setting SHMMAX
We can determine the value of SHMMAX by performing the following:
$ cat /proc/sys/kernel/shmmax
536870912
Should you need to alter the default setting for SHMMAX without rebooting the machine:
$ sysctl -w kernel.shmmax=536870912
Should you need to make this change permanent, insert the kernel parameter in the /etc/sysctl.conf startup file:
$ echo “kernel.shmmax=536870912” >> /etc/sysctl.conf
Setting SHMMNI
We can determine the value of SHMMNI by performing the following:
$ cat /proc/sys/kernel/shmmni
4096
The default setting for SHMMNI should be adequate for the Oracle11g Release 2 installation.
Setting SHMALL
The default size of SHMALL is 2097152 and can be queried using:
$ cat /proc/sys/kernel/shmall
2097152
The default setting for SHMALL should be adequate for the Oracle11g Release 2 installation.
To determine all shared memory limits:
$ ipcs -lm
—— Shared Memory Limits ——–
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 1073741824
min seg size (bytes) = 1
ii. Setting Semaphore Kernel Parameters
We can alter the default setting for all semaphore settings without rebooting the machine by making the changes directly using the following command:
$ sysctl -w kernel.sem=”250 32000 100 128″
We should then make this change permanent by inserting the kernel parameter in the /etc/sysctl.conf startup file:
$ echo “kernel.sem=250 32000 100 128” >> /etc/sysctl.conf
To determine all semaphore limits:
$ ipcs -ls
—— Semaphore Limits ——–
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
We can also use the following command:
$ cat /proc/sys/kernel/sem
250 32000 100 128
iii. Setting File Handles
To determine the maximum number of file handles for the entire system:
$ cat /proc/sys/fs/file-max
6815744
Should you need to alter the default setting for the maximum number of file handles without rebooting the machine:
$ sysctl -w fs.file-max=6815744
Should you need to make this change permanent, insert the kernel parameter in the /etc/sysctl.conf startup file:
$ echo “fs.file-max=6815744” >> /etc/sysctl.conf
We can query the current usage of file handles by using the following:
$ cat /proc/sys/fs/file-nr
825 0 6815744
iv. Setting IP Local Port Range
We should configure the system to allow a local port range of 9000 through 65500 as recommended by Oracle.
We Use the following command to determine the value of ip_local_port_range:
$ cat /proc/sys/net/ipv4/ip_local_port_range
9000 65500
Should you need to alter the default setting for the local port range without rebooting the machine:
$ sysctl -w net.ipv4.ip_local_port_range=”9000 65500″
Should you need to make this change permanent, insert the kernel parameter in the /etc/sysctl.conf startup file:
$ echo “net.ipv4.ip_local_port_range = 9000 65500” >> /etc/sysctl.conf
v. Activating All Kernel Parameters for the System
At this point, we have covered all the required Linux kernel parameters needed for a successful Oracle Database 11gR2 installation and configuration.
We can reboot to ensure all of these parameters are set in the kernel or we can run the following command as root.
$ /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
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.shmmax = 536870912
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
2.2 Creating Groups and User for Oracle
Open a terminal window and login as the root user.
$ /usr/sbin/groupadd -g 501 oinstall
$ /usr/sbin/groupadd -g 502 dba
$ /usr/sbin/groupadd -g 503 oper
$ /usr/sbin/groupadd -g 504 asm
$ /usr/sbin/groupadd -g 505 asmdba
$ /usr/sbin/useradd -m -u 501 -g oinstall -G dba,oper,asm, asmdba -d /home/oracle -s /bin/bash -c “Oracle Software Owner” oracle
$ id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall), 502(dba), 503(oper), 504(asm), 505(asmdba)
Set the password for the oracle account:
$ /usr/sbin/passwd oracle
Verify That the User nobody exists
$ id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
2.3 Creating the Oracle Base Directory
Create the directory for the software installation and assign ownership to oracle:oinstall.
$ mkdir -p /u01/app/oracle
$ chown -R oracle:oinstall /u01/app
$ chmod -R 775 /u01/app
- /u01 owned by root.
- /u01/app owned by oracle:oinstall with 775 permissions.
- /u01/app/oracle owned by oracle:oinstall with 775 permissions.
2.4 Setting /home/oracle/.bash_profile for the Oracle user
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
umask 022
# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_TERM=xterm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export TEMP=/tmp
export TMPDIR=/tmp
2.5 Setting Shell Limits for the Oracle User
To improve the performance of the software on Linux systems, Oracle recommends to increase the following shell limits for the oracle user:
Shell Limit Item in limits.conf Hard Limit
- Maximum number
of open file descriptors nofile 65536
- Maximum number
of processes available to a single user nproc 16384
To make these changes, the following is run as root:
$ cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
$ cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
session required pam_limits.so
EOF
Update the default shell startup file for the “oracle” UNIX account.
For the Bourne, Bash, or Korn shell, we add the following lines to the /etc/profile file by running the following command:
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
3. Installing Oracle Database 11g Release 2
1. Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86
linux_11gR2_database_1of2.zip (1,285,396,902 bytes)
linux_11gR2_database_2of2.zip (995,359,177 bytes)
2. Oracle Database 11gR2 Examples:
linux_11gR2_examples.zip (505,570,137 bytes)
3. Oracle De-install Utility (11.2.0.1.0) for Linux x86
linux_11gR2_deinstall.zip (124,457,540 bytes)
As the “oracle” user account, we extracted the three downloaded packages to a temporary directory.
We used “/home/oracle/wkdir/11gr2”.
$ su – oracle
$ mkdir -p /home/oracle/wkdir/11gr2
$ cd /home/oracle/wkdir/11gr2
$ unzip linux_11gR2_database_1of2.zip
$ unzip linux_11gR2_database_2of2.zip
Installing the Oracle Database 11gR2 software procedure step-by step:
$ cd /home/oracle/wkdir/11gr2
$ cd database
$ ./runInstaller
Make sure the Install database software only is selected and click Next.
Make sure the Single instance database installation is selected and click Next.
At the Language Selection screen, make sure English is on the list of Selected Languages and click Next.
Make sure the Installation Type Enterprise Edition is selected and click Next.
At the Installation Location window, make sure that the Oracle Base and Oracle Home are set and click Next.
You need to specify your Inventory Directory. The location should be set to /u01/app/oraInventory. Accept the default Operating System Group Name, oinstall. Click Next.
Product-specific Prerequisite Checks.
At the Summary screen, review what will be installed and click Finish.
You will see the progress window.
When prompted, execute /u01/app/orainstRoot.sh and /u01/app/oracle/product/11.2.0/dbhome_1/root.sh as the root user and then click Ok.
End of Installation
4. Verifying Oracle Database 11g Release 2 Software Installation
To verify the Oracle Database 11gR2 software installation on Linux, open a terminal window as the user oracle, and run:
$ /u01/app/oracle/product/11.2.0/dbhome_1/oui/bin/runInstaller
5. De-Installing Oracle Database 11g Release 2
With Oracle Database 11gR2, Oracle Corp. delivers a new utility named Oracle De-install Utility.
From OTN, download and unzip the following software:
Oracle De-install Utility (11.2.0.1.0) for Linux x86
linux_11gR2_deinstall.zip (124,457,540 bytes)
Its syntax is as follows:
To deinstall the Oracle Database 11gR2 software on Linux, open a terminal window as the user oracle, and run:
$ /home/oracle/wkdir/11gr2/deinstall/deinstall –home $ORACLE_HOME –local