In this post I'll show you the steps required to install Oracle Database 10g Release 2 on Red Hat Enterprise Linux 5.4 (64-bit)
Assuming you have downloaded Oracle Database 10g R2 from their official website.
If not you can get it from the below mentioned link
Oracle Database 10g R2 for Linux 64-bit
For my case I have disable Selinux. Please make sure you apply relevant policy for selinux in case you have it enforcing state.
Prerequisites before installing Oracle 10gR2
- GUI Environment
Make sure you have a running GUI environment with all the packages inside group GNOME or KDE package installed.
You can do the same using
# yum groupinstall "GNOME Desktop Environment" "X Window System"
In case you want to use KDE desktop you can select the KDE group package instead of GNOME
- Memory and Swap space
You can follow the below table which is as per the Oracle standards for installing Oracle Database 10g in a 64 bit Linux machine
| RAM | Swap Space |
| Up to 512 MB | 2 times the size of RAM |
| Between 1024 MB and 2048 MB | 1.5 times the size of RAM |
| Between 2049 MB and 8192 MB | Equal to the size of RAM |
| More than 8192 MB | 0.75 times the size of RAM |
NOTE: In case you donot have enough swap memory space in your machine the follow this page for
How to increase Swap Memory size in Linux
You can check the RAM and SWAP space using this command
# free -m
total used free shared buffers cached
Mem: 4392 4352 39 0 149 3828
-/+ buffers/cache: 374 4018
Swap: 6399 0 6399
NOTE: In case you have assigned a different partition size for /tmp directory then make sure it has minimum 400 MB free space.
- Hosts File
Your hosts file should be proper as shown below
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
10.10.20.41 test.example test
Your machine should have a proper hostname. To check use the below command
# hostname
test.example
- Kernel Parameters
For Oracle 10g, the following kernel parameters have to be set to values greater than or equal to the recommended values.
To verify shmmax
# cat /proc/sys/kernel/shmmax
shmmax = 2147483648
To verify shmmni
# cat /proc/sys/kernel/shmmni
shmmni = 4096
To verify the shmall parameter
# cat /proc/sys/kernel/shmall
shmall = 2097152
To verify shmmin
# ipcs -lm |grep "min seg size"
shmmin = 1
Note that shmseg is hardcoded in the kernel, the default is much higher.
shmseg = 10
To verify semmsl
# cat /proc/sys/kernel/sem | awk '{print $1}'
semmsl = 250
To verify semmns
# cat /proc/sys/kernel/sem | awk '{print $2}'
semmns = 32000
To verify semopm
# cat /proc/sys/kernel/sem | awk '{print $3}'
semopm = 100
To verify semmni
# cat /proc/sys/kernel/sem | awk '{print $4}'
semmni = 128
To verify file-max
# cat /proc/sys/fs/file-max
file-max = 65536
To verify ip_local_port_range
# cat /proc/sys/net/ipv4/ip_local_port_range
ip_local_port_range = 1024 65000
In case your default kernel parameter is less than the above mentioned parameters then you will have to change them. This is how you can add or change these parameters:
Add the following lines in sysctl.conf
# vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
Run the following command to refresh the kernel parameters just added
# sysctl -p
To view all the kernel parameters
# sysctl -a
Add the following lines to the "/etc/security/limits.conf" file.
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Add the following line to the "/etc/pam.d/login" file, if it does not already exist.
session required pam_limits.so
- RPM pre-requisites
Make sure the following rpm version is equal or greater installed in your machine
gcc-3.4.4-2
gcc-c++-3.4.4-2
libstdc++-devel-3.4.4-2
libgcc-4.1.2-50
cpp-3.4.4-2
compat-libf2c-34-3.4.6-4.1
compat-libcom_err-1.0-7
glibc-2.3.4-2.13
glibc-common-2.3.4-2.13
glibc-devel-2.3.4-2.13
glibc-headers-2.3.4-2.13
gnome-libs-1.4.1.2.90-44.1
compat-db-4.1.25-9
sysstat-5.0.5-1
libaio-0.3.103-3
openmotif21-2.1.30-11
xorg-x11-deprecated-libs-6.8.2-1
compat-libstdc++-33-3.2.3-47.3
make-3.80-5libXp-1.0.0
- User and Group
You have to create a different user and group who will run the database
# useradd oracle
# groupadd dba
# usermod -G dba oracle
So we have added oracle user to dba group using the above command.
- Create home directory
# mkdir -p /u01/oracle/product/10.2.0/db_3/
# mkdir /u01/oraInventory
# chown -R /u01
# chmod -R oracle:dba /u01
We will use the standard format for creating the oracle database. Create a directory with the name used above.
- Specify the Display protocol
Log in to oracle user
# su - oracle
$ export $DISPLAY=localhost:0.0
NOTE: In case you get DISPLAY related errors at the installation stage follow this page
How to specify DISPLAY protocol
- Installation
Go to the location where you have downloaded and unzipped the database setup file using oracle user
# su - oracle
$ cd /database10gr2/database/
$ ./runInstaller
You will get the below screen. Change the Oracle Home location as the directory row created in "Create Home Directory" section of this blog
(Click on the images in case you find trouble reading the texts)
Give database password in the provided section
Give the directory path as mentioned below
Make sure you get "Succeeded" in all the pre-requisite section. In case you get a failure at any of the parameter, Re-check the failed parameter and it is advised not to move to next step until and unless all the pre-requisite are "Passed"
Click on Next and Finish the installation
Follow the link for step by step installation guide of Oracle Database 11gR2 in Red Hat Linux




