You are on page 1of 21

Posted by Zahid on April 29, 2010.

http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

Install Oracle 11g Release 2 on RHEL 5
This is a step by step guide, which will walk you through the installation of Oracle 11g Release 2 on
RHEL 5.5 (Red Hat Enterprise Linux 5.5) 32-bit architecture. Oracle recommends a default server
installation, but for these installations the following package groups installed:
Desktop Environments > GNOME Desktop Environment
Applications > Editors
Applications > Graphical Internet
Development > Development Libraries
Development > Development Tools
Servers > Server Configuration Tools
Base System > Administration Tools
Base System > Base
Base System > System Tools
Base System > X Window System
Preparing for install: Pre-Installation Configurations
Check Hardware Requirements:
The first thing we need to verify is, if the hardware we have is okay for an Oracle 11g Installation.
-- Check Physical RAM.
# grep MemTotal /proc/meminfo
MemTotal: 2075424 kB
/*
We need at least 1GB of physical RAM.
In my case I have 2GB.
*/

-- Check Swap Space.
# grep SwapTotal /proc/meminfo
SwapTotal: 3148732 kB

/*
RAM between 1GB and 2GB then Swap = 1.5 times the size of RAM
RAM between 2GB and 16GB then Swap = equal to the size of RAM
RAM more than 16GB then Swap Size = 16GB
Since my RAM is 2GB, so I have 3GB of Swap Size.
*/

# df -h /dev/shm/
Filesystem Size Used Avail Use% Mounted on
tmpfs 1014M 0 1014M 0% /dev/shm


/*
What ever you are going to use your Automatic Memory Management
Targets later on this database, you need to have shared memory
file system size at lease equal to those settings. In my case I
have plans to use memory management targets lower then 1000M
so 1014 M of shared memory file system is sufficient for me.
But if you would like to have a bigger shared memory (/dev/shm)
size then do the following:
*/

# mount -t tmpfs tmpfs -o size=1500m /dev/shm
# df -h /dev/shm/
Filesystem Size Used Avail Use% Mounted on
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

tmpfs 1.5G 0 1.5G 0% /dev/shm

-- Check space available in /tmp
# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 1.5G 35M 1.4G 3% /tmp

/*
You need to have at least 1GB of space in the /tmp directory.
Make sure you have 1GB in the column "Avail" in the above output.
In my case I have 1.4G space available in /tmp.
*/

-- Check space for Oracle Software and pre configured database.
-- I have created a separate partition "/u01" for Oracle Software
-- and database files
# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 166M 14G 2% /u01

-- I have 14G available space on the partition /u01.
/*
Space requirement for Oracle 11g Release 2 Software:
Enterprise Edition 3.95G
Standard Edition 3.88G

Space requirement for Oracle Database Files:
1.7 G
(
creating a database is always optional with oracle installation.
Can be done later.
)
*/

/*
To install Oracle 11g Release 2 your system should be running
on at least 1024x768 screen resolution.
*/
# xdpyinfo | grep 'dimensions:'
dimensions: 1280x720 pixels (433x244 millimeters)

/*
To install Oracle 11g Release 2 on RHEL 5 you should be running
a kernel version 2.6.18 or later.
*/
# uname -r
2.6.18-194.el5
Pre-Installation Configurations: Meeting the software requirements:
Once all hardware requirements are verified, we will proceed with further configuration.
Make sure that there is an entry in /etc/hosts file for your machine like this:
[IP-address] [fully-qualified-machine-name] [machine-name]

/*
Where "fully-qualified-machine-name" is your
"machine_name"."domain_name"
*/
Next we need to adjust the Linux Kernel Parameters to support Oracle.
Open /etc/sysctl.conf and add the following lines:
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

# Oracle settings
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
Note: You may find the parameters mentioned above already present in the /etc/sysctl.conf file. If
they have a value lower then mentioned above then make sure you change it, but if they have a larger
value then perhaps its safe to leave it as is.
-- Make the kernel parameters changes effective immediately:
# /sbin/sysctl -p

-- Verify the parameters are changed or not?
# /sbin/sysctl -a | grep name_of_kernel_parameter -- e.g. shmall
Now setup User that we will use as Oracle owner and the groups that it will need for installing and
managing Oracle.
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd oper
/usr/sbin/useradd -g oinstall -G dba,oper oracle
/usr/bin/passwd oracle
Create directories where the Oracle Software and database will be installed.
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 0775 /u01

/*
The above directory structure is designed to comply with OFA
(Oracle Flexible Architecture) i.e. a directory structure to
support multiple oracle software installations.

ORACLE_BASE=/u01/app/oracle
-- Base directory for all oracle installations.

ORACLE_HOME=ORACLE_BASE/product/11.2.0/db_1 -- 11.2.0 installation 1.
ORACLE_HOME=ORACLE_BASE/product/11.2.0/db_2 -- 11.2.0 installation 2.
ORACLE_HOME=ORACLE_BASE/product/10.2.0/db_1 -- 10.2.0 installation 1.

and so on....
*/
Now set the shell limits for the user Oracle.
Open /etc/security/limits.conf and add these lines.
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

Where "nproc" is the maximum number of processes available to the user and "nofiles" is the number
of open file descriptors.
Open /etc/pam.d/login and add the following line if it is already not there.
session required pam_limits.so
Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as
follows:
SELINUX=disabled
If you leave SELINUX=enforcing then you may get an error later while starting sqlplus:
sqlplus: error while loading shared libraries:
/usr/lib/oracle/default/client64/lib/libclntsh.so.11.1: cannot restore segment
prot after reloc: Permission denied
Now we need to make sure we have all necessary packages for Oracle. Put your Linux Media into
DVD and go to the "Server" directory.
cd /dvd_mount_point/Server

For RHEL 5 (32-bit):

rpm -Uvih binutils-2*
rpm -Uvih compat-libstdc++-33*
rpm -Uvih elfutils-libelf-0*
rpm -Uvih elfutils-libelf-devel-0*
rpm -Uvih elfutils-libelf-devel-static-0*
rpm -Uvih gcc-4*
rpm -Uvih gcc-c++-4*
rpm -Uvih glibc-2*`uname -p`*
rpm -Uvih glibc-common-2*
rpm -Uvih glibc-devel-2*
rpm -Uvih glibc-headers-2*
rpm -Uvih kernel-headers-2*
rpm -Uvih ksh-20*
rpm -Uvih libaio-0*
rpm -Uvih libaio-devel-0*
rpm -Uvih libgcc-4*
rpm -Uvih libgomp-4*
rpm -Uvih libstdc++-4*
rpm -Uvih libstdc++-devel-4*
rpm -Uvih make-3*
rpm -Uvih numactl-devel-0*
rpm -Uvih sysstat-7*
rpm -Uvih unixODBC-2*
rpm -Uvih unixODBC-devel-2*

For RHEL 5 (64-bit):

rpm -Uvih binutils-2*`uname -p`*
rpm -Uvih compat-libstdc++-33*`uname -p`*
rpm -Uvih compat-libstdc++-33*i386*
rpm -Uvih elfutils-libelf-0*`uname -p`*
rpm -Uvih elfutils-libelf-devel-0*`uname -p`*
rpm -Uvih gcc-4*`uname -p`*
rpm -Uvih gcc-c++-4*`uname -p`*
rpm -Uvih glibc-2*`uname -p`*
rpm -Uvih glibc-2*i686*
rpm -Uvih glibc-common-2*`uname -p`*
rpm -Uvih glibc-devel-2*`uname -p`*
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

rpm -Uvih glibc-devel-2*i386*
rpm -Uvih glibc-headers-2*`uname -p`*
rpm -Uvih ksh-20*`uname -p`*
rpm -Uvih libaio-0*`uname -p`*
rpm -Uvih libaio-0*i386*
rpm -Uvih libaio-devel-0*`uname -p`*
rpm -Uvih libaio-devel-0*i386*
rpm -Uvih libgcc-4*`uname -p`*
rpm -Uvih libgcc-4*i386*
rpm -Uvih libstdc++-4*`uname -p`*
rpm -Uvih libstdc++-4*i386*
rpm -Uvih libstdc++-devel-4*`uname -p`*
rpm -Uvih make-3*`uname -p`*
rpm -Uvih numactl-devel-0*`uname -p`*
rpm -Uvih sysstat-7*`uname -p`*
rpm -Uvih unixODBC-2*`uname -p`*
rpm -Uvih unixODBC-2*i386*
rpm -Uvih unixODBC-devel-2*`uname -p`*
rpm -Uvih unixODBC-devel-2*i386*
NOTE: If you are using RHEL5 DVD then you should find them all in the "Server" directory in your
DVD. And if you don't find one there you may download it from the Linux vendor's Web site.
If you have your Linux distribution in 3 CDs then these will be scattered on all three CDs in the Server
directory on all CDs.
Allow the user oracle to use X server, which it will need to run Oracle Universal Installer.
# xhost +SI:localuser:oracle
Now switch to the user oracle.
# su - oracle

-- Let's see which shell is being used by the user Oracle.
$ echo $SHELL
/bin/bash
If the returned shell is bash then open ~/.bash_profile and add these lines:

If using C shell then open ~/.login and add these lines:
# Oracle settings
setenv TMP=/tmp
setenv TMPDIR=$TMP

# If /tmp doesn't have 1G space free then you can workaround it
# by pointing the variables TMP AND TMPDIR to a location where you
# have sufficient space. Oracle will then use this directory for
# temporary files.

setenv ORACLE_HOSTNAME ora11g.home.com
setenv ORACLE_BASE /u01/app/oracle
setenv ORACLE_HOME $ORACLE_BASE/product/11.2.0/db_1
setenv ORACLE_SID ora11g
setenv ORACLE_TERM xterm
setenv PATH /usr/sbin:$PATH
setenv PATH $ORACLE_HOME/bin:$PATH

setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/lib:/usr/lib
setenv CLASSPATH $ORACLE_HOME/JRE:$ORACLE_HOME/jlib
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

setenv CLASSPATH $CLASSPATH:$ORACLE_HOME/rdbms/jlib

if ( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
endif

umask 022
Now run the following command to make these changes effective in the current session of user oracle.
-- for bash shell
$ source ~/.bash_profile
-- for C shell
$ source ~/.login
Install Oracle 11g Release 2 on RHEL 5:
The environment is ready for oracle installation. Its time to prepare the oracle installation media now.
Download or Copy the oracle media to the oracle user home directory i.e. /home/oracle.
Once Download/Copy is done unzip the media as follows:
$ cd /home/oracle
$ ls
linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip
$
$ unzip linux_11gR2_database_1of2.zip
$ unzip linux_11gR2_database_2of2.zip
Once the unzip is finished go to the "database" directory unzipped in the previous step and start the
Oracle Universal Installer.
$ cd /home/oracle/database/
$ ./runInstaller
The OUI (Oracle Universal Installer) should start and you should see following screens in the order
given below:
1. Provide your email address and Oracle support password to get security updates from Oracle.
Configure Security Updates
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


2. Installation options like creating a database, installing oracle software only or upgrading the
database. Select "Create and configure a database".
Installation Options
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


3. Choose the system class here. Select "Server Class" it provides more advanced options.
System Class
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


4. Choose from creating a single node installation or RAC.
Node Selection
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html



5. Choose your installation Typical or Advanced. We will go with typical at this moment.
Install Type
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


6. If you choose typical install in previous screen, then you will see this page for Install Configurations.
Provide Oracle software installation location, database files location and administrator password etc.
Typical Install Configurations
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


7. Specify the Oracle install inventory location and Operating system group "oinstall".
Create Inventory
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


8. Now all prerequisite checks will be performed here and if every thing is ok you will be moved to the
install summary page. You can hit the "Back" button and come back to see the status of all the checks
performed.
Prerequisite Checks
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


9. Installation Summary page. Hit "Finish" to start the Installation.
Install Summary
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


10. Installation Progress. This will take several minutes and it will automatically invoke Database
COnfiguration Assistant to create a database.
Installation Progress
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html


11. Database Configuration Assistant invoked by the installer.
Database Configuration Assistant

Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

12. Once DBCA has finished creating the database, it will show a page like this. It is a summary of the
database that has just been created.
Database Creation Summary

13. As a last step you will be asked to execute some configuration scripts as root.
Execute Configuration Scripts
Open another console and login as root. Execute following once logged in successfully.
# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.

# /u01/app/oracle/product/11.2.0/db_1/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
14. When configuration scripts are executed successfully by root press OK in the installer and you will
see this "Finish" page. Note down the management URL and press "Close".
COMMON ISSUES
Server parameter file or parameter file doesn't
Init.ora
Which IFILE being used SQL> show parameter ifile
Create PFILE From SPFILE CREATE pfile=<pfile_name> FROM spfile=<spfile_name>;
CREATE PFILE='c: emp\initorabase.ora' FROMSPFILE='SPFILEORABASE.ORA';

create spfile='/u01/app/oracle/product/11.2.0/db_1/dbs/spfilecc.ora' from
pfile='init_20131230_2252.ora';
[oracle@oralab dbs]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue Sep 10 00:35:07 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn /as sysdba
Connected to an idle instance.
SQL> create pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initOCL.ora' from spfile='spfileorcl.ora';
File created.

SQL> exit

[oracle@oralab Desktop]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue Sep 10 00:38:45 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup pfile='initoralab.ora'
ORACLE instance started.

Total System Global Area 849530880 bytes
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

Fixed Size 1339824 bytes
Variable Size 499125840 bytes
Database Buffers 343932928 bytes
Redo Buffers 5132288 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

Reboot and startup the database.

[oracle@oralab Desktop]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue Sep 10 00:57:11 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup pfile='initoralab.ora'
ORACLE instance started.

Total System Global Area 849530880 bytes
Fixed Size 1339824 bytes
Variable Size 499125840 bytes
Database Buffers 343932928 bytes
Redo Buffers 5132288 bytes
Database mounted.
Database opened.


A database is started in EXCLUSIVE mode by default. Therefore, the
ORA-01102 error is misleading and may have occurred due to one of the
following reasons:

- there is still an "sgadef<sid>.dbf" file in the "ORACLE_HOME/dbs"
directory
- the processes for Oracle (pmon, smon, lgwr and dbwr) still exist
- shared memory segments and semaphores still exist even though the
database has been shutdown
- there is a "ORACLE_HOME/dbs/lk<sid>" file

The "lk<sid>" and "sgadef<sid>.dbf" files are used for locking shared memory.
It seems that even though no memory is allocated, Oracle thinks memory is
still locked. By removing the "sgadef" and "lk" files you remove any knowledge
oracle has of shared memory that is in use. Now the database can start.

POSSIBLE SOLUTION:
Verify that the database was shutdown cleanly by doing the following:

1. Verify that there is not a "sgadef<sid>.dbf" file in the directory
Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

"ORACLE_HOME/dbs".

% ls $ORACLE_HOME/dbs/sgadef<sid>.dbf

If this file does exist, remove it.

% rm $ORACLE_HOME/dbs/sgadef<sid>.dbf

2. Verify that there are no background processes owned by "oracle"

% ps -ef | grep ora_ | grep $ORACLE_SID

If background processes exist, remove them by using the Unix
command "kill". For example:

% kill -9 <Process_ID_Number>

3. Verify that no shared memory segments and semaphores that are owned
by "oracle" still exist

% ipcs -b

If there are shared memory segments and semaphores owned by "oracle",
remove the shared memory segments

% ipcrm -m <Shared_Memory_ID_Number>

and remove the semaphores

% ipcrm -s <Semaphore_ID_Number>

NOTE: The example shown above assumes that you only have one
database on this machine. If you have more than one
database, you will need to shutdown all other databases
before proceeding with Step 4.

4. Verify that the "$ORACLE_HOME/dbs/lk<sid>" file does not exist

5. Startup the instance

-----------------------------------------------------------------------------------------------

demarre la base en mode nomount
Code :Slectionner tout - Visualiser dans une fentre part


startup nomount
Pour voir sa valeur
Code :Slectionner tout - Visualiser dans une fentre part


Posted by Zahid on April 29, 2010.
http://www.oracleflash.com/19/Install-Oracle-11g-Release-2-on-RHEL-5.html

SELECT value FROM v$parameter WHERE name='memory_target';
Pour la modifier

Code :Slectionner tout - Visualiser dans une fentre part


ALTER system SET MEMORY_TARGET = 400M scope=spfile;
pour voir la memoire partag de ta machine
Code :Slectionner tout - Visualiser dans une fentre part


df -k /dev/shm/

You might also like