Saturday, November 27, 2010

ORACLE 11gR2 stand alone installation on CentOS(RedHat) 5.5 with VMware

This document is based on my personal experience for installing Oracle 11gR2 on CentOS 5.5(RHEL) on VM ware(VM player)

This give no guarantee for production systems.This is done in a purely development and test enviornment. 


My VM(Virtual machine)configuration has 2896 MB RAM and 14GB free space for ORACLE installation.


STEP1: Download 2 zip files for 11gR2 for RHEL from ORACLE's site.


Here i have used "winscp" to move files(11gR2 dataase zip files) from windows to Unix box and vice verssa



  • Download & install winscp executables on your windows machine.
  • find the physical ip for your Linux box using ifconfig.It would be something like
    [root@localhost ~]# ifconfig

    eth0 : inet addr :192.168:80:130

  • Now you have your ip and connect to your linux machine...  :)


  


STEP2: Check if necessary Linux packages has installed or not

[root@localhost ~]#rpm -q binutils compat-libstdc++-33\
elfutils-libelf elfutils-libelf-devel \

elfutils-libelf-devel-static  gcc gcc-c++ glibc glibc-common glibc-devel\
 glibc-headers kernel-headers-2.6.18 ksh libaio\
 libaio-devel libgcc libgomp libstdc++ \

libstdc++-devel make sysstat unixODBC unixODBC-devel
if some packages are missing then install 
them using
yum install compat-db gcc gcc-c++ libstdc++ pdksh sysstat compat-libstdc++-33 \
elfutils-libelf-devel elfutils-libelf-devel-static unixODBC unixODBC-devel


STEP3:Create oinstall and dba groups & user "Oracle" for  as follows




[root@localhost /]# cd /usr
[root@localhost usr]# cd sbin
[root@localhost sbin]# pwd
/usr/sbin
[root@localhost sbin]# ls -ltr|grep group
-rwxr-xr-x 1 root root     24564 Oct 27  2009 lgroupmod
-rwxr-xr-x 1 root root     19168 Oct 27  2009 lgroupdel
-rwxr-xr-x 1 root root     20036 Oct 27  2009 lgroupadd
-rwxr-x--- 1 root root     30256 Mar 30  2010 groupmod
-rwxr-x--- 1 root root     30568 Mar 30  2010 groupdel
-rwxr-x--- 1 root root     39120 Mar 30  2010 groupadd
[root@localhost sbin]# /usr/sbin/groupadd oinstall
groupadd: group oinstall exists   [i had already created the group]
[root@localhost sbin]# /usr/sbin/groupadd dba
groupadd: group dba exists        [i had already created the group]




[root@localhost sbin]#/usr/sbin/useradd oracle
passwd <>
change the primary groups for the user "oracle" 
as below
[root@localhost sbin]# usermod  -g oinstall -G dba oracle
[root@localhost sbin]# cat /etc/passwd|grep oracle
oracle:x:500:501:Subhendra:/home/oracle:/bin/bash
[root@localhost sbin]# su - oracle
[oracle@localhost ~]$ id
uid=500(oracle) gid=501(oinstall) groups=501(oinstall),502(dba) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Step4: Setting up kernel parameter(take backup before modifying the sysctl.conf)

[root@localhost ~]# cd /etc
[root@localhost etc]# ls -ltr|grep sys
......
-rw-r--r--  1 root root     994 Sep 28  2009 sysctl.conf
.......
[root@localhost etc]# view sysctl.conf
[root@localhost etc]# pwd
/etc
[root@localhost etc]# cp sysctl.conf sysctl.conf.bkp
[append the below parameter values to the end of the file]
[root@localhost etc]# cat >> /etc/sysctl.conf << EOF
> # Added kernel parameters for Oracle setup
> kernel.shmmni = 4096
> kernel.sem = 250 32000 100 128
> fs.file-max = 6815744
> net.ipv4.ip_local_port_range = 9000 65500
> net.core.rmem_default=262144
> net.core.wmem_default=262144
> net.core.rmem_max=4194304
> net.core.wmem_max=1048576
> fs.aio-max-nr=1048576
> EOF

[root@localhost etc]# view /etc/sysctl.conf
<to make changes dynamically fire the below commands>
[root@localhost etc]# /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
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
[root@localhost etc]# hostname
localhost.localdomain
[root@localhost etc]# uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux
[root@localhost etc]# cd ~
[root@localhost ~]# pwd
/root
[root@localhost ~]# echo $SHELL
/bin/bash

STEP5:  Creating necessary directory structure for oracle installation <to find the free space for installation>
[root@localhost etc]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             3.8G  2.1G  1.6G  58% /
/dev/sda5              14G  2.4G   11G  18% /home
/dev/sda1              46M   11M   33M  25% /boot
tmpfs                 506M     0  506M   0% /dev/shm

Here i should have ideally chosen mount point /opt for installation but due to space constraints i have chosen mount point /home

mkdir -p /home/app/oracle/product/11.1.0
chown -R oracle:oinstall /opt/home
chmod -R 775 /opt/app

STEP 6:Setting up /etc/.bash_profile for default privileges for directories/files created after modification run .bash_profile for changes to take effect.



[oracle@localhost ~]$ pwd
/home/oracle
[oracle@localhost ~]$ ls -lart|grep profile
-rwxrwxr-x  1 oracle oinstall  176 Nov  8 17:43 .bash_profile
[oracle@localhost ~]$ cat .bash_profile
# .bash_profile


# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi


# User specific environment and startup programs


PATH=$PATH:$HOME/bin


export PATH
[oracle@localhost ~]$ vi .bash_profile
[oracle@localhost ~]$ cat .bash_profile
# .bash_profile


# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi


# User specific environment and startup programs


PATH=$PATH:$HOME/bin


export PATH
umask 022
[oracle@localhost ~]$ 
[oracle@localhost ~]$ . ./.bash_profile


STEP 7: Setting DISPLAY parameter <machine_ip:0.0>


[root@localhost ~]#export DISPLAY=192.168.80.130:0.0


STEP 8: Now we will unzip both the 11GR2 database files to /home




[root@localhost ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             3.8G  2.1G  1.6G  58% /
/dev/sda5              14G  2.4G   11G  18% /home
/dev/sda1              46M   11M   33M  25% /boot
tmpfs                 506M     0  506M   0% /dev/shm



[root@localhost ~]#nohup unzip linux_11gR2_database_1of2 /home &


[root@localhost ~]#nohup unzip linux_11gR2_database_2of2 /home &


STEP 9:Now we are all set for stand alone Oracle database installation


  open a terminal as root user and follow the steps as mentioned below in screen shots
















    


STEP10: Now it will open up with OUI universal installer.


       click next bottoms as you proceed 
note: In my case the screen flickers frequently may be due to insufficient memory
       But i managed to click on the bottoms after some trials
      this might take several hours. at some steps of installation it might ask some files are missing just ignore that message


Step11: At end of installation it would ask you to run 2 scripts just 
       
        open another terminal as root and copy paste the script names hit enter.
 Now you have your test database running on CentOS5.5(RedHat) with you.