1. Overview

For the purpose of education and evaluation only, we provide a walkthrough of installing Oracle Database 11g Release 2 on Linux. We take the approach of using minimum number of steps for accomplishing this installation. Note that this guide does not cover the installation of the Linux operating system.

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:

This section walks through the steps required to configure Linux for installing Oracle Database 11g Release 2. These steps are written for Bourne, Korn and bash shells.Firstly, open a terminal window and login as the root user.

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: