You are on page 1of 6


This manual is directed show how to install Oracle

database 10g on RedHat Enterprise Linux 5. The
article show the process from system administrator
point of view ad try to simplicity most of the tasks not
related to system administration will in deep
explanation of tasks and impacts of them. Be aware
RHEL 5 x86 is not supported platform (in this moment)
for Oracle 10g so when you ask questions in metalink
don't be surprised get no answer. According to the
product documentation supported platforms for x96
are RHEL AS/ES 3.4 or later, RHEL 4, SUSE Linux
Enterprise Server 9.0SP2 or later and Asianux 1.0 and
2.0. Additionally you can't expect reliability from this
system for production environment.

Hardware requirements
From documentation you read Oracle 10g need at
least 1 gigabyte of memory, but the absolute minimum
is 512 MB. OK, with so little memory you are on the
bottom line for required shared memory, but database
can start. for testing 768 MB sound's much better.
Similar is the situation with swap. Everything will work
fine with only 1024 MB of swap.

Software requirements
List of packages you will need for install Oracle 10g
on RHEL include
pdksh (RHEL 5 ships with ksh instead)
libXp (to start runInstaller)


Pre-installation tasks
Let's create users and groups for installation
# groupadd dba
# groupadd oinstall
# useradd -G dba -d /home/oracle -g oinstall oracle
# passwd oracle

Next create filesystem for oracle files and database.

Do not forget to create appropriate changes in
/etc/fstab to mount this filesystem on startup. In
documentation of product is mentioned to use only
RAID10 array(s) and for production is wise to use
hardware based arrays, but here we just play and any
filesystem and volume will be OK. Transfer files to the
machine and extract zip's somewhere. I write files,
because i recommend for installation not only Oracle
database server, but 10g Release 2 ( Patch Set
2 ever only for testing and playing. For more info
about the the patch set read document 316900.1 and
download file from
metalink. Now is time to login on the machine as root
to set some parameters in linux kernel and operating
- check if FQHN exist in /etc/hosts
- check the id of oracle user to ensure oinstall is primary group of user and
user is member of group dba
- check for existence of user nobody
- check and set if need the parameters for semaphors:
semmsl - 250
semmns - 32000
semopm - 100
semmni – 128

Semaphores explanation
semmsl – maximum number of semaphores per
semaphore identifier. Should be increased carefully
because very big number will eat memory not used
semmns - maximum number of semaphores in the
system. Size it carefully because of above reason
semopm - Define maximum number of semaphore
operations per system call
semmni – maximum number of semaphores per
semaphore identifier. Do not increase it over needed
limit, because of waste of memory
if you have attached to the server additional hardware
read carefully documentation of drivers for this
hardware, because for example some drivers for FC
controllers need additional semaphors to be set per
- check and set if need the parameters for shared memory
shmall 2097152
shmmax Half the size of physical memory (in bytes) or current value if bigger
shmmni 4096
Shared memory explanation
shmall - maximum number of shared memory pages. If
you set it to too low value can slowdown any program
usng shared memory
shmmax – maximum size of shared memory segment
that can be allocated in the memory. For servers with
lots of memory can be increased to 80% of memory to
avoid shared memory fragmentation
shmmni – maximum number of segments. It's good
idea to change it only by vendor recommendation
- check and set if need the parameters for maximum number of file handlers,
supported by system
file-max 65536

- check and set if need the parameters for network

ip_local_port_range Minimum:1024 Maximum:65000
rmem_default 1048576
rmem_max 1048576
wmem_default 262144
wmem_max 262144

Network setting explanation
ip_local_port_range – define full range of local ports
in Linux, normally upper limit is 32000
rmem_default Default Receive Window
rmem_max Maximum Receive Window
wmem_default Default Send Window
wmem_max Maximum Send Window

So you can add you /etc/sysctl.conf file something like

kernel.shmall = 2097152
kernel.shmmax = 2147483648
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

and execute
# sysctl -p

Next is time to set some environment variables for

oracle user. Do not forget to put the in shell profile for
oracle user. They should look's like

On this point it is very good idea to check the

available diskspace in directory where will be installed
oracle – you will need 4 GB average for software and
database. To start successfully installer it's need to
edit /etc/redhat-release and to change release from 5
to 4. Do not forget to return the value back later,
otherwise you will be no able to update your server.
Next is time to run runInstall. You will need running X
server, because interactive installation need graphic

Actual installation
On the first step we choose advanced installation to
have better control over the packages and options to
be installed on the server. Later if it's need we can
install additional packages almost seamless. Our
target is Enterprise Server as more powerful and
complex. on the next step Oracle Installer check for
prerequisites for installation as physical memory,
swap, networking, environment variables, etc. If you
get warning about the amount of memory you can skip
it without any problem. Next we will install only
software without create new database. There is
program, named dbca – database configuration
assistant which one can help to create new database.
Then read the summary screen and go back to change
some packages you do not need or other parameter.
It's out of scope of this document to discuss the idea
and purpose of packages you can find in oracle
database. Next we press install and wait a lot, because
of very long process of installation. On the bottom
part of the screen you can see the path to log file for
current installation and you can inspect it if you get
some errors or just from curiosity. In on of the stages
of installation (almost on the end) you should execute
2 scripts as root user. And at the end we have
installed Oracle database 10g. If you have patch
mentioned above installation process for patch is
similar: runInstaller....
Et voila, we are ready to play and test oracle on our
RHEL 5 server :-)