Installing
Oracle Database 11g Release 2 on Linux x86 (RHEL and OEL 5 )
1.
Overview
For the purpose of education and
evaluation only, we provide a walkthrough of installing Oracle Database 11g
Release 2 on Linux. We take the approach of using minimum number of steps for
accomplishing this installation. Note that this guide does not cover the
installation of the Linux operating system.
This guide assumes a server with the
following hardware requirements:
- A single CPU,
- 1024 Mb of RAM,
- and one disk drive (IDE, SCSI, or FireWire) with at least 7 Gb of free space:
1024 Mb of disk space in the /tmp
directory,
3.8 Gb of local disk space for the
database software, and about 2.0 Gb of swap disk space.
As preliminary step, let us verify
the prerequisites for installing Oracle 11gR2 RDBMS:
- Required kernel version:
- Required packages versions:
Installing Oracle Database 11g
Release 2 requires a minimum of 1024Mb of memory. Swap disk space should be
proportional to the system’s physical memory:
With RAM as 1024 Mb to 2048 Mb, Swap
Disk Space should be 1.5 x RAM
To check the amount of memory we
have:
$ cat /proc/meminfo |
grep MemTotal
MemTotal:
1048576 kB
To check the amount of swap space we
have allocated:
$ cat /proc/meminfo |
grep SwapTotal
SwapTotal:
1572864 kB
2.
Configuring Linux for the Installation of Oracle Database 11g Release 2
This section walks through the steps
required to configure Linux for installing Oracle Database 11g Release 2. These
steps are written for Bourne, Korn and bash shells.Firstly, open a terminal
window and login as the root user.
2.1
Setting Kernel Parameters
The kernel parameters presented in
this section are recommended values as documented by Oracle Metalink note
880936.1.
i.
Setting Shared Memory
Setting
SHMMAX
We can determine the value of SHMMAX
by performing the following:
$ cat
/proc/sys/kernel/shmmax
536870912
Should you need to alter the default
setting for SHMMAX without rebooting the machine:
$ sysctl -w
kernel.shmmax=536870912
Should you need to make this change
permanent, insert the kernel parameter in the /etc/sysctl.conf startup file:
$ echo “kernel.shmmax=536870912″
>> /etc/sysctl.conf
Setting
SHMMNI
We can determine the value of SHMMNI
by performing the following:
$ cat
/proc/sys/kernel/shmmni
4096
The default setting for SHMMNI
should be adequate for the Oracle11g Release 2 installation.
Setting
SHMALL
The default size of SHMALL is
2097152 and can be queried using:
$ cat
/proc/sys/kernel/shmall
2097152
The default setting for SHMALL
should be adequate for the Oracle11g Release 2 installation.
To determine all shared memory
limits:
$ ipcs -lm
—— Shared Memory Limits ——–
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) =
1073741824
min seg size (bytes) = 1
ii.
Setting Semaphore Kernel Parameters
We can alter the default setting for
all semaphore settings without rebooting the machine by making the changes
directly using the following command:
$ sysctl -w
kernel.sem=”250 32000 100 128″
We should then make this change
permanent by inserting the kernel parameter in the /etc/sysctl.conf startup
file:
$ echo “kernel.sem=250
32000 100 128″ >> /etc/sysctl.conf
To determine all semaphore limits:
$ ipcs -ls
—— Semaphore Limits ——–
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
We can also use the following
command:
$ cat
/proc/sys/kernel/sem
250
32000 100 128
iii.
Setting File Handles
To determine the maximum number of
file handles for the entire system:
$ cat
/proc/sys/fs/file-max
6815744
Should you need to alter the default
setting for the maximum number of file handles without rebooting the machine:
$ sysctl -w
fs.file-max=6815744
Should you need to make this change
permanent, insert the kernel parameter in the /etc/sysctl.conf startup file:
$ echo
“fs.file-max=6815744″ >> /etc/sysctl.conf
We can query the current usage of
file handles by using the following:
$ cat
/proc/sys/fs/file-nr
825
0 6815744
iv.
Setting IP Local Port Range
We should configure the system to
allow a local port range of 9000 through 65500 as recommended by Oracle.
We Use the following command to
determine the value of ip_local_port_range:
$ cat
/proc/sys/net/ipv4/ip_local_port_range
9000 65500
Should you need to alter the default
setting for the local port range without rebooting the machine:
$ sysctl -w
net.ipv4.ip_local_port_range=”9000 65500″
Should you need to make this change
permanent, insert the kernel parameter in the /etc/sysctl.conf startup file:
$ echo
“net.ipv4.ip_local_port_range = 9000 65500″ >> /etc/sysctl.conf
v.
Activating All Kernel Parameters for the System
At this point, we have covered all
the required Linux kernel parameters needed for a successful Oracle Database
11gR2 installation and configuration.
We can reboot to ensure all of these
parameters are set in the kernel or we can run the following command as root.
$ /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
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.shmmax = 536870912
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000
65500
2.2
Creating Groups and User for Oracle
Open a terminal window and login as
the root user.
$ /usr/sbin/groupadd -g
501 oinstall
$ /usr/sbin/groupadd -g
502 dba
$ /usr/sbin/groupadd -g
503 oper
$ /usr/sbin/groupadd -g
504 asm
$ /usr/sbin/groupadd -g
505 asmdba
$ /usr/sbin/useradd -m -u
501 -g oinstall -G dba,oper,asm, asmdba -d /home/oracle -s /bin/bash -c “Oracle
Software Owner” oracle
$ id oracle
uid=501(oracle) gid=501(oinstall)
groups=501(oinstall), 502(dba), 503(oper), 504(asm), 505(asmdba)
Set the password for the oracle
account:
$ /usr/sbin/passwd oracle
Verify That the User nobody exists
$ id nobody
uid=99(nobody) gid=99(nobody)
groups=99(nobody)
2.3
Creating the Oracle Base Directory
Create the directory for the
software installation and assign ownership to oracle:oinstall.
$ mkdir -p
/u01/app/oracle
$ chown -R
oracle:oinstall /u01/app
$ chmod -R 775 /u01/app
- /u01 owned by root.
- /u01/app owned by oracle:oinstall with 775 permissions.
- /u01/app/oracle owned by oracle:oinstall with 775 permissions.
2.4
Setting /home/oracle/.bash_profile for the Oracle user
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
umask 022
# User specific environment and startup
programs
export ORACLE_BASE=/u01/app/oracle
export
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_TERM=xterm
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export TEMP=/tmp
export TMPDIR=/tmp
2.5
Setting Shell Limits for the Oracle User
To improve the performance of the
software on Linux systems, Oracle recommends to increase the following shell
limits for the oracle user:
Shell Limit
Item in limits.conf Hard Limit
- Maximum number
of open file descriptors
nofile
65536
- Maximum number
of processes available to a single
user nproc
16384
To make these changes, the following
is run as root:
$ cat >> /etc/security/limits.conf
<<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
$ cat >>
/etc/pam.d/login <<EOF
session
required /lib/security/pam_limits.so
session
required pam_limits.so
EOF
Update the default shell startup
file for the “oracle” UNIX account.
For the Bourne, Bash, or Korn shell,
we add the following lines to the /etc/profile file by running the following
command:
cat >> /etc/profile
<<EOF
if [ \$USER =
"oracle" ]; then
if [ \$SHELL =
"/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
3.
Installing Oracle Database 11g Release 2
Login as operating system user
“oracle” to the Linux box. To install the Oracle Database 11gR2 software on
linux, you must user the GUI installer.From OTN website, we downloaded Oracle
11gR2 software:
1. Oracle Database 11g Release 2
(11.2.0.1.0) for Linux x86
linux_11gR2_database_1of2.zip
(1,285,396,902 bytes)
linux_11gR2_database_2of2.zip
(995,359,177 bytes)
2. Oracle Database 11gR2 Examples:
linux_11gR2_examples.zip
(505,570,137 bytes)
3. Oracle De-install Utility
(11.2.0.1.0) for Linux x86
linux_11gR2_deinstall.zip (124,457,540
bytes)
As the “oracle” user account, we
extracted the three downloaded packages to a temporary directory.
We used “/home/oracle/wkdir/11gr2″.
$ su – oracle
$ mkdir -p
/home/oracle/wkdir/11gr2
$ cd
/home/oracle/wkdir/11gr2
$ unzip
linux_11gR2_database_1of2.zip
$ unzip
linux_11gR2_database_2of2.zip
Installing
the Oracle Database 11gR2 software procedure step-by step:
$ cd
/home/oracle/wkdir/11gr2
$ cd database
$ ./runInstaller
Make sure the Install
database software only is selected and click Next.
Make sure the Single
instance database installation is selected and click Next.
At the Language Selection screen,
make sure English is on the list of Selected Languages and
click Next.
Make sure the Installation
Type Enterprise Edition is selected and click Next.
At the Installation Location
window, make sure that the Oracle Base and Oracle Home are set and click Next.
You need to specify your Inventory
Directory. The location should be set to /u01/app/oraInventory. Accept the
default Operating System Group Name, oinstall. Click Next.
Product-specific Prerequisite
Checks.
At the Summary screen,
review what will be installed and click Finish.
You will see the progress window.
When prompted, execute
/u01/app/orainstRoot.sh and /u01/app/oracle/product/11.2.0/dbhome_1/root.sh as
the root user and then click Ok.
End of Installation