Did You Set Linux Kernel Parameters For Oracle Installation?

Installing oracle in a Linux box requires several requirements and modifications to your kernel. I will show you the requirements to install ORACLE 11g on centos 6.2. To make it complete, I am going to show other requirements also.

Hardware requirements.

According to ORACLE, your Linux box should have at least 1GB of RAM and twice that of SWAP partition size. Also you should have /tmp size more than 400MB.

[[email protected] Desktop]# grep MemTotal /proc/meminfo
MemTotal: 723740 kB
[[email protected] Desktop]# grep SwapTotal /proc/meminfo
SwapTotal: 1500000 kB

Modify the kernel parameters.

To check and change the kernel parameters, you can open sysctl.conf using vi or any other editor.

[[email protected] Desktop]#vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verificationnet.ipv4.conf.default.rp_filter = 1
# Do not accept source routingnet.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernelkernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename# Useful for debugging multi-threaded applicationskernel.core_uses_pid = 1
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1

# Controls whether core dumps will append the PID to the core filename# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

You can see the kernel entries above. As per the oracle requirements, the above entries should be greater than or equal to below values.

Parameter Value

semmsl - 250
semmns - 32000
semopm - 100
semmni - 128

shmall - 2097152

shmmax - Half the size of physical memory (in bytes)

shmmni - 4096

file-max - 65536

ip_local_port_range - Minimum:1024

Maximum - 65000

rmem_default - 1048576

rmem_max - 1048576

wmem_default - 262144

wmem_max - 262144

[[email protected] Desktop]# sysctl -a |grep kernel.sem
kernel.sem = 250 32000 32 128
[[email protected] Desktop]# sysctl -a |grep kernel.shm
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
[[email protected] Desktop]# sysctl -a |grep file-max
fs.file-max = 70692
[[email protected] Desktop]# sysctl -a |grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
[[email protected] Desktop]# sysctl -a |grep rmem_default
net.core.rmem_default = 112640
[[email protected] Desktop]# sysctl -a |grep rmem_max
net.core.rmem_max = 131071
[[email protected] Desktop]# sysctl -a |grep wmem_default
net.core.wmem_default = 112640
[[email protected] Desktop]# sysctl -a |grep wmem_max
net.core.wmem_max = 131071
[[email protected] Desktop]# sysctl -a |grep aio-max-nr
fs.aio-max-nr = 65536

The above changes had been made to parameters. If you know how to work around vi editor, this is nothing. After changing the values, you should commit using below command:

[[email protected] Desktop]# 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
kernel.shmmax = 4294967295
kernel.shmall = 268435456
[[email protected] Desktop]#

What are all these parameters about?

Shared memory.

Oracle uses shared memory in Unix to access different data structures.

SHMMAX - maximum shared memory and should be large enough.
SHMMNI - minimum required memory and default set to 4096.
SHMALL - total shared memory in pages and default set to 2097152.


These are the counters used to access shared resources. This is use for the integrity of the shared resources.

SEMMSL - Used to control the maximum number of semaphores per set.
SEMMNI - Used to control the maximum number of semaphore sets in full Unix system.
SEMMNS - Used to control the maximum number of semaphores in full Unix system.
SEMOPM - Used to control the number of semaphore operations per semop system call.

jomos 5:47 pm

Have anything to say?

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

All comments are subject to moderation.