In sweet memories of my ever loving brother "kutty thambi " ARUN KUMAR

Friday, March 26, 2010

Oracle 10gR2 RAC Installation in Linux 5, RHEL5 using VMware Server2

Oracle 10gR2 RAC Installation in RedHat 5 Linux Using VMware.
Important points to install 10gR2 oracle RAC in linux5.
1.LINUX 5(Redhat 5) doesn't have /etc/sysconfig/rawdevices file. so we have to configure it.
2. Edit the /etc/redhat-release version to redhat-4 and and to invoke the runInstaller  use the command
$runInstaller -ignoreSysPrereqs. //this will bypass the os check //
3. Next during clusterware installation at the end of root.sh in node 2 end with error message.So we have adjust the parameters in vipca and srvctl files.
4. vipca will fail to run. so we have to adjust some parameters and configure it manually.

rest of things are similar like RAC 11gR1 installation in linux5 using VMware.
please refer the documentation installing oracle 11gR1 RAC in LINUX5 using vmware. if you have any doubts in my installation steps.

step 1: vmware installation
step 2: guest 0S (LINUX 5) INSTALLATION.
step 3: pre installation steps for installing clusterware.
step 4: Install Vmware tools
step 5: creating  shared storage.
step 6: clone virtual machine.
step 7: Installing clusterware.
step 8: Installing oracle software.

Step 1.for vmware installation refer below link to install.


Step 2.Guest Operating system installation: Redhat 5 Linux .




















note: create tmp and swap with enough space. 
Continue through the OEL 5 installation as you would for a normal server. A general pictorial guide to the installation can be found here. More specifically, it should be a server installation with a minimum of 2G swap, firewall and SELinux disabled and the following package groups installed:
  • GNOME Desktop Environment
  • Editors
  • Graphical Internet
  • Text-based Internet
  • Development Libraries
  • Development Tools
  • Server Configuration Tools
  • Administration Tools
  • Base
  • System Tools
  • X Window System
To be consistent with the rest of the article, the following information should be set during the installation:
  • hostname: rac1.localdomain
  • IP Address eth0: 192.168.1.121 (public address)
  • Default Gateway eth0: 192.168.1.102
  • IP Address eth1: 192.168.2.131 (private address)
  • Default Gateway eth1: none
You are free to change the IP addresses to suit your network, but remember to stay consistent with those adjustments throughout the rest of the article.

Once the basic installation is complete, install the following packages whilst logged in as the root user.
# From Enterprise Linux 5 Disk 1
cd /media/cdrom/Server
rpm -Uvh binutils-2.*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh libaio-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh make-3.*
cd /
eject

# From Enterprise Linux 5 Disk 2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-devel-*
rpm -Uvh glibc-headers*
rpm -Uvh glibc-devel-2.*
rpm -Uvh libgomp*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*
cd /
eject

# From Enterprise Linux 5 Disk 3
cd /media/cdrom/Server
rpm -Uvh sysstat-7.*
cd /
eject
if you have any doubts in installing 10g in linux please refer below link:

3. Pre Installation steps for installing clusterware and oracle software.
Oracle Installation Prerequisites
Perform the following steps whilst logged into the RAC1 virtual machine as the root user.

The /etc/hosts file must contain the following information.

    127.0.0.1       localhost.localdomain   localhost
    # Public
    192.168.1.121   rac1.localdomain        rac1
    192.168.1.122   rac2.localdomain        rac2
    #Private
    192.168.2.131   rac1-priv.localdomain   rac1-priv
    192.168.2.132   rac2-priv.localdomain   rac2-priv
    #Virtual
    192.168.1.111   rac1-vip.localdomain    rac1-vip
    192.168.1.112   rac2-vip.localdomain    rac2-vip

Add the following lines to the /etc/sysctl.conf file.

    kernel.shmmni = 4096
    # semaphores: semmsl, semmns, semopm, semmni
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 1024 65000
    net.core.rmem_default=4194304
    net.core.rmem_max=4194304
    net.core.wmem_default=262144
    net.core.wmem_max=262144

Run the following command to change the current kernel parameters.

    /sbin/sysctl -p

Add the following lines to the /etc/security/limits.conf file.

    oracle               soft    nproc   2047
    oracle               hard    nproc   16384
    oracle               soft    nofile  1024
    oracle               hard    nofile  65536

Add the following lines to the /etc/pam.d/login file, if it does not already exist.

    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

Create the new groups and users.

    groupadd oinstall
    groupadd dba
    groupadd oper
    groupadd asmadmin

    useradd -u 500 -g oinstall -G dba,oper,asmadmin oracle
    passwd oracle

Create the directories in which the Oracle software will be installed.

    mkdir -p /u01/crs/oracle/product/10.2..0/crs
    mkdir -p /u01/app/oracle/product/10.2.0/db_1
    chown -R oracle:oinstall /u01

Edit the /etc/redhat-release file replacing the current release information (Red Hat Enterprise Linux Server release 5) with the following:
redhat-4
eg:
[root@rac1 ~]# vi /etc/redhat-release
redhat-4

Login as the oracle user and add the following lines at the end of the .bash_profile file.

    # Oracle Settings
    TMP=/tmp; export TMP
    TMPDIR=$TMP; export TMPDIR

    ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME
    ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
    ORACLE_TERM=xterm; export ORACLE_TERM
    PATH=/usr/sbin:$PATH; export PATH
    PATH=$ORACLE_HOME/bin:$PATH; export PATH

    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

    if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
      else
        ulimit -u 16384 -n 65536
      fi
    fi

The packages listed in this section (or later versions) are required for Oracle Clusterware 10g Release 2 and Oracle RAC 10g Release 2 running on the Oracle Enterprise Linux 5 platform.

32-bit (x86) Installations

    * binutils-2.17.50.0.6-2.el5
    * compat-libstdc++-296-2.96-138
    * compat-libstdc++-33-3.2.3-61
    * elfutils-libelf-0.125-3.el5
    * elfutils-libelf-devel-0.125
    * gcc-4.1.1-52
    * gcc-c++-4.1.1-52
    * glibc-2.5-12
    * glibc-common-2.5-12
    * glibc-devel-2.5-12
    * glibc-headers-2.5-12
    * libaio-0.3.106
    * libaio-devel-0.3.106
    * libgcc-4.1.1-52
    * libstdc++-4.1.1
    * libstdc++-devel-4.1.1-52.e15
    * libXp-1.0.0-8
    * make-3.81-1.1
    * openmotif-2.2.3
    * sysstat-7.0.0
    * unixODBC-2.2.11
    * unixODBC-devel-2.2.11

Step 4: Installing VMware tools

Login as the root user on the RAC1 virtual machine, then select the "Install VMware Tools" as shown in below picture.






Once the package is loaded, the CD should unmount automatically. You must then run the "vmware-config-tools.pl" script as the root user.
# vmware-config-tools.pl
Accept all the default settings and pick the screen resolution of your choice. Ignore any warnings or errors. The VMware client tools are now installed. Reboot the server before proceeding. After the reboot, it is possible the monitor will not be recognised. If this is the case don't panic. Follow the instructions provided on the screen and reconfigure the monitor setting, which will allow the XServer to function correctly.
Shut down the RAC1 virtual machine using the following command.
# shutdown -h now

Step 5: CREATE SHARED STORAGE DISKS

creating a shared storage disks
ocr 
votingdisk
asm1
asm2
asm3

here is a steps to create a ocr disk of size 1GB. follow the same steps to create voting disk and asm disks.

select add hardware button and then select HARD DISK.
Click browse button to select the shared storage disk.
create a folder shared for storage storage and select shared and type ocr.
select allocate all disk button.
its very important to select Independent persistent
select virtual device mode scsi1
select optimize for performance
and then click finish after than you can see the new added hard disk with size 1 gb and its properties.

Repeat the previous hard disk creation steps 4 more times, using the following values:
  • File Name: votingdisk
    Virtual Device Node: SCSI 1:1
    Mode: Independent and Persistent
  • File Name: asm1
    Virtual Device Node: SCSI 1:2
    Mode: Independent and Persistent
  • File Name: asm2
    Virtual Device Node: SCSI 1:3
    Mode: Independent and Persistent
  • File Name: asm3
    Virtual Device Node: SCSI 1:4
    Mode: Independent and Persistent
At the end of this process, the virtual machine should look something like the picture below.
Edit the contents of the "/u01/VM/RAC1/RAC1.vmx" file using a text editor, making sure the following entries are present. Some of the tries will already be present, some will not.
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "VIRTUAL"

scsi1:0.present = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.fileName = "/u01/VM/shared/ocr.vmdk"
scsi1:0.deviceType = "plainDisk"
scsi1:0.redo = ""

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "/u01/VM/shared/votingdisk.vmdk"
scsi1:1.deviceType = "plainDisk"
scsi1:1.redo = ""

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "/u01/VM/shared/asm1.vmdk"
scsi1:2.deviceType = "plainDisk"
scsi1:2.redo = ""

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.fileName = "/u01/VM/shared/asm2.vmdk"
scsi1:3.deviceType = "plainDisk"
scsi1:3.redo = ""

scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.fileName = "/u01/VM/shared/asm3.vmdk"
scsi1:4.deviceType = "plainDisk"
scsi1:4.redo = ""
Start the RAC1 virtual machine by clicking the "Power on this virtual machine" button on the VMware Server Console. When the server has started, log in as the root user so you can partition the disks. The current disks can be seen by issueing the following commands.
# cd /dev
# ls sd*
sda  sda1  sda2  sdb  sdc  sdd  sde  sdf
#
Use the "fdisk" command to partition the disks sdb to sdf. The following output shows the expected fdisk output for the sdb disk.
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305):
Using default value 1305

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#
In each case, the sequence of answers is "n", "p", "1", "Return", "Return", "p" and "w".

Once all the disks are partitioned, the results can be seen by repeating the previous "ls" command.
# cd /dev
# ls sd*
sda  sda1  sda2  sdb  sdb1  sdc  sdc1  sdd  sdd1  sde  sde1  sdf  sdf1
#
/etc/sysconfig/rawdevices file is not available in the Linux 5 OS. SO we have to create a below file.

[root@rac1 ~]# vi /etc/udev/rules.d/63-oracle-raw.rules                                             
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"                  
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"                  
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"                  
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"                  
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"                   
KERNEL=="raw[1]*", OWNER="root", GROUP="oinstall", MODE="640"                      
KERNEL=="raw[2-5]*", OWNER="oracle", GROUP="oinstall", MODE="644"                


[root@rac1 ~]# /bin/raw /dev/raw/raw1 /dev/sdb1                                                    
/dev/raw/raw1:  bound to major 8, minor 17                                                              
[root@rac1 ~]# /bin/raw /dev/raw/raw2 /dev/sdc1                                                    
/dev/raw/raw2:  bound to major 8, minor 33                                                              
[root@rac1 ~]# /bin/raw /dev/raw/raw3 /dev/sdd1                                                    
/dev/raw/raw3:  bound to major 8, minor 49                                                              
[root@rac1 ~]# /bin/raw /dev/raw/raw4 /dev/sde1                                                    
/dev/raw/raw4:  bound to major 8, minor 65                                                              
[root@rac1 ~]# /bin/raw /dev/raw/raw5 /dev/sdf1                                                     
/dev/raw/raw5:  bound to major 8, minor 81                                                              
[root@rac1 ~]# chown root:oinstall /dev/raw/raw1                                                   
[root@rac1 ~]# chown oracle:oinstall /dev/raw/raw2                                                
[root@rac1 ~]# chown oracle:oinstall /dev/raw/raw3                                                
[root@rac1 ~]# chown oracle:oinstall /dev/raw/raw4                                                
[root@rac1 ~]# chown oracle:oinstall /dev/raw/raw5                                                
[root@rac1 ~]# chmod 640 /dev/raw/raw1                                                               
[root@rac1 ~]# chmod 640 /dev/raw/raw2                                                               
[root@rac1 ~]# chmod 640 /dev/raw/raw3                                                               
[root@rac1 ~]# chmod 640 /dev/raw/raw4                                                               
[root@rac1 ~]# chmod 640 /dev/raw/raw5                                                               
      
add the following files in the file /etc/rc.local
                                                          
chown oracle:oinstall /dev/raw/raw1                                                  
chown oracle:oinstall /dev/raw/raw2                                               
chown oracle:oinstall /dev/raw/raw3                                               
chown oracle:oinstall /dev/raw/raw4                                               
chown oracle:oinstall /dev/raw/raw5                                               
chmod 640 /dev/raw/raw1                                                              
chmod 640 /dev/raw/raw2                                                              
chmod 640 /dev/raw/raw3                                                              
chmod 640 /dev/raw/raw4                                                              
chmod 640 /dev/raw/raw5                                                              
     
 Step 6: CLONE THE VIRTUAL MACHINE
The current version of VMware Server does not include an option to clone a virtual machine, but the following steps illustrate how this can be achieved manually.

Shut down the RAC1 virtual machine using the following command.
# shutdown -h now
Copy the RAC1 virtual machine using the following command.
# cp -R RAC1 RAC2
Edit the contents of the "/u01/VM/RAC2/RAC1.vmx" file, making the following change.
displayName = "RAC2"
 And then follow the steps as below:


 Edit the hostname to rac2.localdomain
#vi /etc/sysconfig/network
and
#hostname rac2.localdomain 
#vi /etc/hosts 
check the public,private and virtuals ips are correctly configured.

Start the RAC1 virtual machine and restart the RAC2 virtual machine. When both nodes have started, check they can both ping all the public and private IP addresses using the following commands. 
login as oracle user
ping -c 3 rac1
ping -c 3 rac1-priv
ping -c 3 rac2
ping -c 3 rac2-priv
Configure SSH on each node in the cluster. Log in as the "oracle" user and perform the following tasks on each node.
su - oracle
mkdir ~/.ssh
chmod 700 ~/.ssh
/usr/bin/ssh-keygen -t rsa # Accept the default settings.
The RSA public key is written to the ~/.ssh/id_rsa.pub file and the private key to the ~/.ssh/id_rsa file.

Log in as the "oracle" user on RAC1, generate an "authorized_keys" file on RAC1 and copy it to RAC2 using the following commands.
su - oracle
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp authorized_keys rac2:/home/oracle/.ssh/
Next, log in as the "oracle" user on RAC2 and perform the following commands.
su - oracle
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp authorized_keys rac1:/home/oracle/.ssh/
The "authorized_keys" file on both servers now contains the public keys generated on all RAC nodes.

To enable SSH user equivalency on the cluster member nodes issue the following commands on each node.
ssh rac1 date
ssh rac2 date
ssh rac1.localdomain date
ssh rac2.localdomain date
exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add
You should now be able to SSH and SCP between servers without entering passwords.

Before installing the clusterware, check the prerequisites have been met using the "runcluvfy.sh" utility in the clusterware root directory.
while running this you will get unsuccessful message no need to worry about this. ignore this only for vmware setup testing and education purpose, testing time no need to worry.
/home/oracle/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
 Step 7: Installing Clusterware Software

Install the Clusterware Software

Start the RAC1 and RAC2 virtual machines, login to RAC1 as the oracle user and start the Oracle installer.
$cd clusterware

To install 10gR2, you must first install the base release, which is 10.2.0.1. As these version of OS are newer, you should use the following command to invoke the installer:
$ runInstaller -ignoreSysPrereqs        // This will bypass the OS check //
note: Edit the /etc/redhat-release file replacing the current release information (Red Hat Enterprise Linux Server release 5 ) with the following:
redhat-4
./runInstaller -ignoreSysPrereqs

change the clusterware directory

if you didn't edit the redhat-release file,you will get error here, and it checks for required rpm packages.

add the rac2 host information



change eth0 to public


NEXT ,the ocr disk information, actually i forgot to take the snapshot              
select external redundancy and ocr disk location: /dev/raw/raw1  

For voting disk
select external redundancy and voting disk location:/dev/raw/raw2    


 first run /u01/app/oracle/oraInventory/oraInstRoot.sh in RAC1 after completion run it in RAC2
Second run /u01/crs/oracle/product/10.2.0/crs/root.sh in RAC1 after completion run it in RAC2
while running root.sh in RAC2 NODE it ends with warning message. so follow the below steps
[root@rac1 ~]# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete

[root@rac2 ~]# /u01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oracle/oraInventory to 770.
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
The execution of the script is complete

[root@rac1 ~]# /u01/crs/oracle/product/10.2.0/crs/root.sh
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.

Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
assigning default hostname rac1 for node 1.
assigning default hostname rac2 for node 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node :
node 1: rac1 rac1-priv rac1
node 2: rac2 rac2-priv rac2
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Now formatting voting device: /dev/raw/raw2
Format of 1 voting devices complete.
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
        rac1
CSS is inactive on these nodes.
        rac2
Local node checking complete.
Run root.sh on remaining nodes to start CRS daemons.


[root@rac2 ~]# /u01/crs/oracle/product/10.2.0/crs/root.sh
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.

Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
assigning default hostname rac1 for node 1.
assigning default hostname rac2 for node 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node :
node 1: rac1 rac1-priv rac1
node 2: rac2 rac2-priv rac2
clscfg: Arguments check out successfully.

NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry for cluster has already been initialized
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
        rac1
        rac2
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
/u01/crs/oracle/product/10.2.0/crs/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

At end of root.sh on the last node vipca will fail to run with the following error:

Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
/home/oracle/crs/oracle/product/10/crs/jdk/jre//bin/java: error while loading
shared libraries: libpthread.so.0: cannot open shared object file:
No such file or directory

Also, srvctl will show similar output if workaround below is not implemented.

edit vipca (in the CRS bin directory on all nodes) to undo the setting of LD_ASSUME_KERNEL. After the IF statement around line 123 add an unset command to ensure LD_ASSUME_KERNEL is not set as follows:
if [ "$arch" = "i686" -o "$arch" = "ia64" -o "$arch" = "x86_64" ]
then
  LD_ASSUME_KERNEL=2.4.19
  export LD_ASSUME_KERNEL
fi

unset LD_ASSUME_KERNEL         <<<== Line to be added

Similarly for srvctl (in both the CRS and, when installed, RDBMS and ASM bin directories on all nodes), unset LD_ASSUME_KERNEL by adding one line, around line 168 should look like this:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL

unset LD_ASSUME_KERNEL          <<<== Line to be added

Remember to re-edit these files on all nodes:
/bin/vipca
/bin/srvctl
/bin/srvctl
/bin/srvctl


after successful editing of files vipca and srvctl files in bin folder of CRS_HOME directory.

run ./vipca to configure virtual ip manually you will get this error.

 vipca will fail to run with the following error if the VIP IP's are in a non-routable range [10.x.x.x, 172.(16-31).x.x or 192.168.x.x]:
# vipca
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
(vipca failing on non-routable VIP IP ranges, manually or during root.sh), if you still have the OUI window open, click OK and it will create the "oifcfg" information, then cluvfy will fail due to vipca not completed successfully, skip below in this note and run vipca manually then return to the installer and cluvfy will succeed.  Otherwise you may configure the interfaces for RAC manually using the oifcfg command as root, like in the following example (from any node):


click ok button.


it wills gives the error. follow the steps. dont click next button.

login as root user in node RAC2,
/bin # ./oifcfg setif -global eth0/192.168.1.122:public
/bin # ./oifcfg setif -global eth1/192.168.2.132:cluster_interconnect

/bin # ./oifcfg getif


The goal is to get the output of "oifcfg getif" to include both public and cluster_interconnect interfaces, of course you should exchange your own IP addresses and interface name from your environment. To get the proper IPs in your environment run this command:
/bin # ./oifcfg iflist


[root@rac2 bin]# ./oifcfg setif -global eth0/192.168.1.122:public
[root@rac2 bin]# ./oifcfg setif -global eth1/192.168.2.132:cluster_interconnect
[root@rac2 bin]# ./oifcfg getif
eth0  192.168.1.0  global  public
eth0  192.168.1.122  global  public
eth1  192.168.2.0  global  cluster_interconnect
eth1  192.168.2.132  global  cluster_interconnect
[root@rac2 bin]# ./oifcfg iflist
eth0  192.168.1.0
eth1  192.168.2.0
[root@rac2 bin]#

And then run vipca.
/bin # ./vipca

click next
click next

enter rac1-vip.localdomain




click the retry button

[root@rac1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
[root@rac1 bin]# ./crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2       
[root@rac1 bin]#

 [root@rac2 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
[root@rac2 bin]# ./crs_stat -t
Name           Type           Target    State     Host      
------------------------------------------------------------
ora.rac1.gsd   application    ONLINE    ONLINE    rac1      
ora.rac1.ons   application    ONLINE    ONLINE    rac1      
ora.rac1.vip   application    ONLINE    ONLINE    rac1      
ora.rac2.gsd   application    ONLINE    ONLINE    rac2      
ora.rac2.ons   application    ONLINE    ONLINE    rac2      
ora.rac2.vip   application    ONLINE    ONLINE    rac2      
[root@rac2 bin]# 



step 8: Installing oracle software

 follow the same steps given in the below link. except invoking runInstaller.

Start the RAC1 and RAC2 virtual machines, login to RAC1 as the oracle user and start the Oracle installer.
To install 10gR2, you must first install the base release, which is 10.2.0.1. As these version of OS are newer, you should use the following command to invoke the installer:
$ runInstaller -ignoreSysPrereqs        // This will bypass the OS check //

 
./runInstaller -ignoreSysPrereqs
On the "Welcome" screen, click the "Next" button.
rest of the things are similar in the given link documentation
 installing database software and create asm

for any queries please contact me any time.
Regards,
Rajeshkumar Govindarajan
Oracle DBA
ConscientiaDBS
grk.oracle@gmail.com

26 comments:

doris.wochele said...

Pefect! You saved my life today! Thanks a lot! Doris

just4you said...

Hi,
After clone the second rac (RAC2) I can't run both nodes at the same time, vmware gives an error ((("Power On Virtual Machine" failed to complete
If these problems persist, please contact your system administrator.
Details: Cannot open the disk 'C:\Virtual Machines\Shared\ocr.vmdk' or one of the snapshot disks it depends on.
Reason: Failed to lock the file)))
How to solve this issue !!??

Rajeshkumar Govindarajan said...

Hi friend,

add into archive.vmx ‘disk.locking = “FALSE”‘

just try it...

regards,
rajesh

just4you said...

Dear rajesh,

Thank you for your fast reply.

Actually I don't have archive.vmx on my pc, do I have to create it or where can I found it??

Thank you for your help.
Regards,

Rajeshkumar Govindarajan said...

Hi friend,

in your machine you can find your .vmx file in the folder where you created or installed your guest operating systems , in your machine check 'C:\Virtual Machines\\

ok bye , all the best...

regards,
rajesh

Harikumar said...

Looks very clean and nice. Would be better if screenshots are resized properly

Rajeshkumar Govindarajan said...

thanks hari,
as per your advice and suggestion. i reduced the size of snapshots.

hearty thanks for your support.

Anonymous said...

after runnig roort.sh on second node follwoing error occured.
failure at final check of oracle CRS stack. 10

Form ocrd.log:

CRSRTI ocss is not ready received status 3 from css in crsd.log
CSSCLNT classInitNative :connect failed
COMMCRS CLSC_CONNECT :NO LISTENE

Any ides?

Rajeshkumar Govindarajan said...

refer the link and follow the step:
http://dsstos.blogspot.com/2009/03/linux-oracle-rac-and-bonding-conundrum.html

Anonymous said...

June 19, 2010 11:59 PM for this post, its resolved with following solution.

Disable iptables on both nodes.
#service iptables off.

Santanu said...

hi, this is santanu.
I am totally new to 10g RAC env.
plz help me to start the steps from the beginning.

My email ID
santanudipdas@gmail.com

Naveen said...

Firstly Thanks Alot.....




After runnig roort.sh on second node(RAC2) follwoing error occured.

Failure at final check of oracle CRS stack. 10

From csrd.log:

2011-02-17 06:32:39.966: [ CRSRTI][1128128]0CSS is not ready. Received status 3 from CSS. Waiting for good status ..

2011-02-17 06:32:41.456: [ COMMCRS][128535440]clsc_connect: (0xa319f98) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_rac2_crs))

2011-02-17 06:32:41.456: [ CSSCLNT][1128128]clsssInitNative: connect failed, rc 9

2011-02-17 06:32:41.456: [ CRSRTI][1128128]0CSS is not ready. Received status 3 from CSS. Waiting for good status ..

2011-02-17 06:32:42.458: [ CRSMAIN][1128128][PANIC]0CRSD exiting: Could not init the CSS context

2011-02-17 06:32:42.461: [ default][1128128]Terminating clsd session


So many people are facing this error. I think its due to cloned VM.

I have stopped
#service iptables stop
#chkconfig iptables off

I have also checked out "http://dsstos.blogspot.com/2009/03/linux-oracle-rac-and-bonding-conundrum.html "
but there is no bonding directory in '/proc/net '

I dont know how to create interface bonding .



This problem may be due to NIC MAC Addresses because second node creates eth0.bak and eth1.bak automatically .

I hope you will be able to resolve it . Waiting for reply.

ashraf said...

hi... am ashraf

am very new in RAC configuration...

if you have any document pls share to me....
my gmail ID :ashraf083@gmail.com

ashraf said...

Hi all,

am Ashraf , am very new in RAC configuration...
if you have any document related on this..pls share to me...

my gmail ID: ashraf083@gmail.com

sap testing said...

Awesome post. I followed each step and successfully installed Oracle Rac on my system. You have brilliantly explained all the steps and have also added the necessary screen shots of the steps that are a great help. I will share this post to all my friends too. Thanks for making this post.

Anonymous said...

Hi,
Sir tons of thanks to u for posting this article . i tried the installation on vmware workstation that didnt't worked .. then on vmware server but i was using ole4.4 so there was an issue prkc 1002 as times of nodes were not in sync i used ntp but couldn't install it on ole4.4 so then from above article i successfully installed rac of 10gr2 on ole5.5

Thanks a lot and it really helped me to finally atlast install my rac

keep posting such articles

god bless u

Anonymous said...

Hi,
From above i was able to succesfully install rac ... Could u show how to corrupt and recover voting disk and ocr

Thanks in Advance :)

Beta said...

I have just installed Oracle 10g on my Redhat, thank you guidance on this install.

Rehan said...

Dear Arun,

PLease create a blog for the same work when our base machine is running on Windows Plateform.

murali krishna said...

Hi Hero,

Excellent documentation.........

armagan ozdemir said...

how can ı fixed this problem.
11g r2 the scan adress how to register in dns.ı taked this warning when ı was installing INS-40922 AND INS 40718.

armagan ozdemir said...

how can i register scan adress to dns at 11g R2. because ı taked this fail INS-40922 AND INS-40718.
thanx.

udit said...

hello sir,

could u tell me ,where i can find eth1 in linux..because it shows only one network eth0,i m new for rac installation,,but i'll try to configure it myself..,if u help me,

udit said...

hello sir,

could u tell me ,where i can find eth1 in linux..because it shows only one network eth0,i m new for rac installation,,but i'll try to configure it myself..,if u help me,

Rajeshkumar Govindarajan said...

hi Udit,

Poweroff the vmware machine. you can find edit virtual machine option in home tab of VMware. click the edit virtual machine and then you can see add option click add. then you need to select network adaptor. click ok and then finish.

any doubts you can reach me in mobile no: 8754481083

Anonymous said...

Hi Rajeshkumar

Thanks for sharing a good and very clear article, I followed and installed 10g RAC.

best regards

khalil

 
Share/Bookmark