Wednesday, February 14, 2007

Oracle 10g RAC installation: 04 System Requirement

Let's continue setting up the system requirement for our first node.
First of all we have to edit the /etc/sysctl.conf file, so type

vi /etc/sysctl.conf
and then add the following lines:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
Now we have to permanently change the current kernel parameters so we have to issue the following command:
/sbin/sysctl -p
Add the following lines to the /etc/security/limits.conf file:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Edit the /etc/hosts file: localhost rac1 rac1-vip rac1-priv rac2 rac2-vip rac2-priv

Add the following line to the /etc/pam.d/login file, if it does not already exist:
session required /lib/security/
Some packages are required for Oracle Database 10g setup. Issue the following commands to see which versions of these packages are installed on our system:
rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver openmotif21 libaio
Mount Enterprise-R4-U4-i386-disc3.iso into vmWare's CDROM device and then type:
cd /media/cdrom/Enterprise/RPMS
rpm -Uvh libaio-0*
rpm -Uvh openmotif21*
Issue the following commands as root user to create the Linux groups and user account that will be used to install and maintain the Oracle Database 10g software. The user account will be called oracle, and the groups will be oinstall and dba.
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba -s /bin/ksh oracle
Then set the password for the oracle account:
passwd oracle
I will use oracle/oracle :)
Issue the following commands to create the directories in which the Oracle software will be installed:
mkdir -p /u01/app/oracle
chown -R oracle.oinstall /u01
chmod -R 775 /u01
Add at the end of the /etc/profile file the following command:
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
ulimit -u 16384 -n 65536
umask 022
Add at the end of the /etc/csh.login file the following command:
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
Type vi /home/oracle/.profile after logged in as oracle user and add the following lines at the end of the file:
# Oracle Settings
export ORACLE_SID=racdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/bin:
umask 022
Always as oracle user type:
mkdir -p $ORACLE_BASE/admin
mkdir -p $ORACLE_HOME
mkdir -p $ORA_CRS_HOME
mkdir -p /u01/oradata/racdb
As root user edit /etc/modprobe.conf to set the hangcheck kernel module parameters:
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
and then type
modprobe -v hangcheck-timer

In the next step we'll configure the ocfs and ASM partitions...