Installing GI with role separation in RHEL 6 is identical to
installing on OEL 6. This blog post is not meant to be an extensive how to install GI on RHEL 6, it will highlight the key aspects relating to RHEL 6 and role separation. There's also a post on installing
standalone server with role separation on RHEL 6.
1. According to GI installation guide for RHEL 6 the kernel version must be 2.6.32-71.el6.x86_64 or later or if the RHEL 6 kernel is with unbreakable enterprise linux kernel then it must be 2.6.32-100.28.5.el6.x86_64 or later. In this case the kernel version is
uname -r
2.6.32-220.el6.x86_64
2. Create OS groups and users needed for role separation. Oracle user will own database software and grid user will own the clusterware.
create groups and users
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 505 asmadmin
groupadd -g 506 asmdba
groupadd -g 507 asmoper
useradd -u 501 -g oinstall -G dba,oper,asmdba oracle
useradd -u 502 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
grid user should be part of dba group as per metalink note
1084186.1
3. Create user equivalence for both grid user
and oracle user.
$ /usr/bin/ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa):
Created directory '/home/grid/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
...
...
4. Create directory structure for clusterware and Oracle base and set with relevant ownership and permission.
# mkdir -p /opt/app/11.2.0/grid
# chown grid:oinstall /opt/app/11.2.0/grid
# chmod 775 /opt/app/11.2.0/grid
oracle base
# mkdir -p /opt/app/oracle
# chown oracle:oinstall /opt/app/oracle
# chmod 775 /opt/app/oracle
oraInventory
# mkdir -p /opt/app/oraInventory
# chown grid:oinstall /opt/app/oraInventory
# chmod 775 /opt/app/oraInventory
5. Verify pre-req package list is installed. Follow GI installation guide and metalink note
Installing Oracle 11gR2 RDBMS on RHEL6 or OL6 64-bit (x86-64) [ID 1441282.1]
6.Set resource limit for both oracle
and grid user in /etc/security/limits.conf file
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
7. Disable x11 forward for grid
and oracle user by adding the following to each user's .ssh/config file
Host *
ForwardX11 no
8. Disable tty on .bashrc for both grid
and oracle user
if [ -t 0 ]; then
stty intr ^C
fi
and also set umask value in .bashrc for grid and oracle user
umask 022
9. As per metalink note (
1089399.1) for RHEL6/OEL6 to get oracleasm libraries it would require a UEL account . For this installation block devices will be used for ASM diskgroups. Setup udev rules for block devices with following ownerships and permissions.
#ASM OCR
KERNEL=="sdb[1]", OWNER="grid", GROUP="asmadmin", MODE="660"
KERNEL=="sdc[1]", OWNER="grid", GROUP="asmadmin", MODE="660"
KERNEL=="sdd[1]", OWNER="grid", GROUP="asmadmin", MODE="660"
# ASM DATA
KERNEL=="sde[1]", OWNER="grid", GROUP="asmadmin", MODE="660"
# ASM FLASH
KERNEL=="sdf[1]", OWNER="grid", GROUP="asmadmin", MODE="660"
If the permissions are incorrect this will be flagged during OUI pre-req check.
10. Edit the cvu_config file and set CV_ASSUME_DISTID=OEL6
(more on
1454982.1 and
explained here). This will prevent pdksh package check being flagged as failed when running the installer using OUI. Still running the cluster verification will flag this as failed but this could be ignored.
./runcluvfy.sh stage -pre crsinst -n rhel6m1,rhel6m2 -fixup -verbose
Performing pre-checks for cluster services setup
Checking node reachability...
Check: Node reachability from node "rhel6m1"
Destination Node Reachable?
------------------------------------ ------------------------
rhel6m1 yes
rhel6m2 yes
Result: Node reachability check passed from node "rhel6m1"
Checking user equivalence...
Check: User equivalence for user "grid"
Node Name Status
------------------------------------ ------------------------
rhel6m2 passed
rhel6m1 passed
Result: User equivalence check passed for user "grid"
Checking node connectivity...
Checking hosts config file...
Node Name Status
------------------------------------ ------------------------
rhel6m2 passed
rhel6m1 passed
Verification of the hosts config file successful
Interface information for node "rhel6m2"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.0.86 192.168.0.0 0.0.0.0 192.168.0.100 08:00:27:8C:E5:85 1500
eth0 192.168.0.90 192.168.0.0 0.0.0.0 192.168.0.100 08:00:27:8C:E5:85 1500
eth1 192.168.1.88 192.168.1.0 0.0.0.0 192.168.0.100 08:00:27:E7:2E:BB 1500
Interface information for node "rhel6m1"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.0.85 192.168.0.0 0.0.0.0 192.168.0.100 08:00:27:FF:7A:38 1500
eth0 192.168.0.89 192.168.0.0 0.0.0.0 192.168.0.100 08:00:27:FF:7A:38 1500
eth1 192.168.1.87 192.168.1.0 0.0.0.0 192.168.0.100 08:00:27:F7:AB:A0 1500
Check: Node connectivity of subnet "192.168.0.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rhel6m2[192.168.0.86] rhel6m2[192.168.0.90] yes
rhel6m2[192.168.0.86] rhel6m1[192.168.0.85] yes
rhel6m2[192.168.0.86] rhel6m1[192.168.0.89] yes
rhel6m2[192.168.0.90] rhel6m1[192.168.0.85] yes
rhel6m2[192.168.0.90] rhel6m1[192.168.0.89] yes
rhel6m1[192.168.0.85] rhel6m1[192.168.0.89] yes
Result: Node connectivity passed for subnet "192.168.0.0" with node(s) rhel6m2,rhel6m1
Check: TCP connectivity of subnet "192.168.0.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rhel6m1:192.168.0.85 rhel6m2:192.168.0.86 passed
rhel6m1:192.168.0.85 rhel6m2:192.168.0.90 passed
rhel6m1:192.168.0.85 rhel6m1:192.168.0.89 passed
Result: TCP connectivity check passed for subnet "192.168.0.0"
Check: Node connectivity of subnet "192.168.1.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rhel6m2[192.168.1.88] rhel6m1[192.168.1.87] yes
Result: Node connectivity passed for subnet "192.168.1.0" with node(s) rhel6m2,rhel6m1
Check: TCP connectivity of subnet "192.168.1.0"
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rhel6m1:192.168.1.87 rhel6m2:192.168.1.88 passed
Result: TCP connectivity check passed for subnet "192.168.1.0"
Interfaces found on subnet "192.168.0.0" that are likely candidates for VIP are:
rhel6m2 eth0:192.168.0.86 eth0:192.168.0.90
rhel6m1 eth0:192.168.0.85 eth0:192.168.0.89
Interfaces found on subnet "192.168.1.0" that are likely candidates for a private interconnect are:
rhel6m2 eth1:192.168.1.88
rhel6m1 eth1:192.168.1.87
Checking subnet mask consistency...
Subnet mask consistency check passed for subnet "192.168.0.0".
Subnet mask consistency check passed for subnet "192.168.1.0".
Subnet mask consistency check passed.
Result: Node connectivity check passed
Checking multicast communication...
Checking subnet "192.168.0.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.0.0" for multicast communication with multicast group "230.0.1.0" passed.
Checking subnet "192.168.1.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.1.0" for multicast communication with multicast group "230.0.1.0" passed.
Check of multicast communication passed.
Checking ASMLib configuration.
Node Name Status
------------------------------------ ------------------------
rhel6m2 passed
rhel6m1 passed
Result: Check for ASMLib configuration passed.
Check: Total memory
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 1.9597GB (2054884.0KB) 1.5GB (1572864.0KB) passed
rhel6m1 1.9597GB (2054884.0KB) 1.5GB (1572864.0KB) passed
Result: Total memory check passed
Check: Available memory
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 1.8421GB (1931556.0KB) 50MB (51200.0KB) passed
rhel6m1 1.7056GB (1788460.0KB) 50MB (51200.0KB) passed
Result: Available memory check passed
Check: Swap space
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 4GB (4194296.0KB) 2.9395GB (3082326.0KB) passed
rhel6m1 4GB (4194296.0KB) 2.9395GB (3082326.0KB) passed
Result: Swap space check passed
Check: Free disk space for "rhel6m2:/tmp"
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/tmp rhel6m2 / 22.5312GB 1GB passed
Result: Free disk space check passed for "rhel6m2:/tmp"
Check: Free disk space for "rhel6m1:/tmp"
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/tmp rhel6m1 / 21.4365GB 1GB passed
Result: Free disk space check passed for "rhel6m1:/tmp"
Check: User existence for "grid"
Node Name Status Comment
------------ ------------------------ ------------------------
rhel6m2 passed exists(502)
rhel6m1 passed exists(502)
Checking for multiple users with UID value 502
Result: Check for multiple users with UID value 502 passed
Result: User existence check passed for "grid"
Check: Group existence for "oinstall"
Node Name Status Comment
------------ ------------------------ ------------------------
rhel6m2 passed exists
rhel6m1 passed exists
Result: Group existence check passed for "oinstall"
Check: Group existence for "dba"
Node Name Status Comment
------------ ------------------------ ------------------------
rhel6m2 passed exists
rhel6m1 passed exists
Result: Group existence check passed for "dba"
Check: Membership of user "grid" in group "oinstall" [as Primary]
Node Name User Exists Group Exists User in Group Primary Status
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 yes yes yes yes passed
rhel6m1 yes yes yes yes passed
Result: Membership check for user "grid" in group "oinstall" [as Primary] passed
Check: Membership of user "grid" in group "dba"
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
rhel6m2 yes yes yes passed
rhel6m1 yes yes yes passed
Result: Membership check for user "grid" in group "dba" passed
Check: Run level
Node Name run level Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 3 3,5 passed
rhel6m1 3 3,5 passed
Result: Run level check passed
Check: Hard limits for "maximum open file descriptors"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rhel6m2 hard 65536 65536 passed
rhel6m1 hard 65536 65536 passed
Result: Hard limits check passed for "maximum open file descriptors"
Check: Soft limits for "maximum open file descriptors"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rhel6m2 soft 1024 1024 passed
rhel6m1 soft 1024 1024 passed
Result: Soft limits check passed for "maximum open file descriptors"
Check: Hard limits for "maximum user processes"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rhel6m2 hard 16384 16384 passed
rhel6m1 hard 16384 16384 passed
Result: Hard limits check passed for "maximum user processes"
Check: Soft limits for "maximum user processes"
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rhel6m2 soft 2047 2047 passed
rhel6m1 soft 2047 2047 passed
Result: Soft limits check passed for "maximum user processes"
Check: System architecture
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 x86_64 x86_64 passed
rhel6m1 x86_64 x86_64 passed
Result: System architecture check passed
Check: Kernel version
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 2.6.32-220.el6.x86_64 2.6.9 passed
rhel6m1 2.6.32-220.el6.x86_64 2.6.9 passed
Result: Kernel version check passed
Check: Kernel parameter for "semmsl"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 3010 3010 250 passed
rhel6m1 3010 3010 250 passed
Result: Kernel parameter check passed for "semmsl"
Check: Kernel parameter for "semmns"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 385280 385280 32000 passed
rhel6m1 385280 385280 32000 passed
Result: Kernel parameter check passed for "semmns"
Check: Kernel parameter for "semopm"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 3010 3010 100 passed
rhel6m1 3010 3010 100 passed
Result: Kernel parameter check passed for "semopm"
Check: Kernel parameter for "semmni"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 128 128 128 passed
rhel6m1 128 128 128 passed
Result: Kernel parameter check passed for "semmni"
Check: Kernel parameter for "shmmax"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 68719476736 68719476736 1052100608 passed
rhel6m1 68719476736 68719476736 1052100608 passed
Result: Kernel parameter check passed for "shmmax"
Check: Kernel parameter for "shmmni"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 4096 4096 4096 passed
rhel6m1 4096 4096 4096 passed
Result: Kernel parameter check passed for "shmmni"
Check: Kernel parameter for "shmall"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 4294967296 4294967296 2097152 passed
rhel6m1 4294967296 4294967296 2097152 passed
Result: Kernel parameter check passed for "shmall"
Check: Kernel parameter for "file-max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 6815744 6815744 6815744 passed
rhel6m1 6815744 6815744 6815744 passed
Result: Kernel parameter check passed for "file-max"
Check: Kernel parameter for "ip_local_port_range"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 passed
rhel6m1 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 passed
Result: Kernel parameter check passed for "ip_local_port_range"
Check: Kernel parameter for "rmem_default"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 4194304 4194304 262144 passed
rhel6m1 4194304 4194304 262144 passed
Result: Kernel parameter check passed for "rmem_default"
Check: Kernel parameter for "rmem_max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 4194304 4194304 4194304 passed
rhel6m1 4194304 4194304 4194304 passed
Result: Kernel parameter check passed for "rmem_max"
Check: Kernel parameter for "wmem_default"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 1048576 1048576 262144 passed
rhel6m1 1048576 1048576 262144 passed
Result: Kernel parameter check passed for "wmem_default"
Check: Kernel parameter for "wmem_max"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 2097152 2097152 1048576 passed
rhel6m1 2097152 2097152 1048576 passed
Result: Kernel parameter check passed for "wmem_max"
Check: Kernel parameter for "aio-max-nr"
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rhel6m2 3145728 3145728 1048576 passed
rhel6m1 3145728 3145728 1048576 passed
Result: Kernel parameter check passed for "aio-max-nr"
Check: Package existence for "make"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 make-3.81-19.el6 make-3.80 passed
rhel6m1 make-3.81-19.el6 make-3.80 passed
Result: Package existence check passed for "make"
Check: Package existence for "binutils"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 binutils-2.20.51.0.2-5.28.el6 binutils-2.15.92.0.2 passed
rhel6m1 binutils-2.20.51.0.2-5.28.el6 binutils-2.15.92.0.2 passed
Result: Package existence check passed for "binutils"
Check: Package existence for "gcc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 gcc(x86_64)-4.4.6-3.el6 gcc(x86_64)-3.4.6 passed
rhel6m1 gcc(x86_64)-4.4.6-3.el6 gcc(x86_64)-3.4.6 passed
Result: Package existence check passed for "gcc(x86_64)"
Check: Package existence for "libaio(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 libaio(x86_64)-0.3.107-10.el6 libaio(x86_64)-0.3.105 passed
rhel6m1 libaio(x86_64)-0.3.107-10.el6 libaio(x86_64)-0.3.105 passed
Result: Package existence check passed for "libaio(x86_64)"
Check: Package existence for "glibc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 glibc(x86_64)-2.12-1.47.el6 glibc(x86_64)-2.3.4-2.41 passed
rhel6m1 glibc(x86_64)-2.12-1.47.el6 glibc(x86_64)-2.3.4-2.41 passed
Result: Package existence check passed for "glibc(x86_64)"
Check: Package existence for "compat-libstdc++-33(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 compat-libstdc++-33(x86_64)-3.2.3-69.el6 compat-libstdc++-33(x86_64)-3.2.3 passed
rhel6m1 compat-libstdc++-33(x86_64)-3.2.3-69.el6 compat-libstdc++-33(x86_64)-3.2.3 passed
Result: Package existence check passed for "compat-libstdc++-33(x86_64)"
Check: Package existence for "elfutils-libelf(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 elfutils-libelf(x86_64)-0.152-1.el6 elfutils-libelf(x86_64)-0.97 passed
rhel6m1 elfutils-libelf(x86_64)-0.152-1.el6 elfutils-libelf(x86_64)-0.97 passed
Result: Package existence check passed for "elfutils-libelf(x86_64)"
Check: Package existence for "elfutils-libelf-devel"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 elfutils-libelf-devel-0.152-1.el6 elfutils-libelf-devel-0.97 passed
rhel6m1 elfutils-libelf-devel-0.152-1.el6 elfutils-libelf-devel-0.97 passed
Result: Package existence check passed for "elfutils-libelf-devel"
Check: Package existence for "glibc-common"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 glibc-common-2.12-1.47.el6 glibc-common-2.3.4 passed
rhel6m1 glibc-common-2.12-1.47.el6 glibc-common-2.3.4 passed
Result: Package existence check passed for "glibc-common"
Check: Package existence for "glibc-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 glibc-devel(x86_64)-2.12-1.47.el6 glibc-devel(x86_64)-2.3.4 passed
rhel6m1 glibc-devel(x86_64)-2.12-1.47.el6 glibc-devel(x86_64)-2.3.4 passed
Result: Package existence check passed for "glibc-devel(x86_64)"
Check: Package existence for "glibc-headers"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 glibc-headers-2.12-1.47.el6 glibc-headers-2.3.4 passed
rhel6m1 glibc-headers-2.12-1.47.el6 glibc-headers-2.3.4 passed
Result: Package existence check passed for "glibc-headers"
Check: Package existence for "gcc-c++(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 gcc-c++(x86_64)-4.4.6-3.el6 gcc-c++(x86_64)-3.4.6 passed
rhel6m1 gcc-c++(x86_64)-4.4.6-3.el6 gcc-c++(x86_64)-3.4.6 passed
Result: Package existence check passed for "gcc-c++(x86_64)"
Check: Package existence for "libaio-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 libaio-devel(x86_64)-0.3.107-10.el6 libaio-devel(x86_64)-0.3.105 passed
rhel6m1 libaio-devel(x86_64)-0.3.107-10.el6 libaio-devel(x86_64)-0.3.105 passed
Result: Package existence check passed for "libaio-devel(x86_64)"
Check: Package existence for "libgcc(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 libgcc(x86_64)-4.4.6-3.el6 libgcc(x86_64)-3.4.6 passed
rhel6m1 libgcc(x86_64)-4.4.6-3.el6 libgcc(x86_64)-3.4.6 passed
Result: Package existence check passed for "libgcc(x86_64)"
Check: Package existence for "libstdc++(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 libstdc++(x86_64)-4.4.6-3.el6 libstdc++(x86_64)-3.4.6 passed
rhel6m1 libstdc++(x86_64)-4.4.6-3.el6 libstdc++(x86_64)-3.4.6 passed
Result: Package existence check passed for "libstdc++(x86_64)"
Check: Package existence for "libstdc++-devel(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 libstdc++-devel(x86_64)-4.4.6-3.el6 libstdc++-devel(x86_64)-3.4.6 passed
rhel6m1 libstdc++-devel(x86_64)-4.4.6-3.el6 libstdc++-devel(x86_64)-3.4.6 passed
Result: Package existence check passed for "libstdc++-devel(x86_64)"
Check: Package existence for "sysstat"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 sysstat-9.0.4-18.el6 sysstat-5.0.5 passed
rhel6m1 sysstat-9.0.4-18.el6 sysstat-5.0.5 passed
Result: Package existence check passed for "sysstat"
Check: Package existence for "pdksh"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 missing pdksh-5.2.14 failed
rhel6m1 missing pdksh-5.2.14 failed
Result: Package existence check failed for "pdksh"
Check: Package existence for "expat(x86_64)"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 expat(x86_64)-2.0.1-9.1.el6 expat(x86_64)-1.95.7 passed
rhel6m1 expat(x86_64)-2.0.1-9.1.el6 expat(x86_64)-1.95.7 passed
Result: Package existence check passed for "expat(x86_64)"
Checking for multiple users with UID value 0
Result: Check for multiple users with UID value 0 passed
Check: Current group ID
Result: Current group ID check passed
Starting check for consistency of primary group of root user
Node Name Status
------------------------------------ ------------------------
rhel6m2 passed
rhel6m1 passed
Check for consistency of root user's primary group passed
Starting Clock synchronization checks using Network Time Protocol(NTP)...
NTP Configuration file check started...
Network Time Protocol(NTP) configuration file not found on any of the nodes. Oracle Cluster Time Synchronization Service(CTSS) can be used instead of NTP for time synchronization on the cluster nodes
No NTP Daemons or Services were found to be running
Result: Clock synchronization check using Network Time Protocol(NTP) passed
Checking Core file name pattern consistency...
Core file name pattern consistency check passed.
Checking to make sure user "grid" is not in "root" group
Node Name Status Comment
------------ ------------------------ ------------------------
rhel6m2 passed does not exist
rhel6m1 passed does not exist
Result: User "grid" is not part of "root" group. Check passed
Check default user file creation mask
Node Name Available Required Comment
------------ ------------------------ ------------------------ ----------
rhel6m2 0022 0022 passed
rhel6m1 0022 0022 passed
Result: Default user file creation mask check passed
Checking consistency of file "/etc/resolv.conf" across nodes
Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined
File "/etc/resolv.conf" does not have both domain and search entries defined
Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...
domain entry in file "/etc/resolv.conf" is consistent across nodes
Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...
search entry in file "/etc/resolv.conf" is consistent across nodes
Checking file "/etc/resolv.conf" to make sure that only one search entry is defined
All nodes have one search entry defined in file "/etc/resolv.conf"
Checking all nodes to make sure that search entry is "domain.net" as found on node "rhel6m2"
All nodes of the cluster have same value for 'search'
Checking DNS response time for an unreachable node
Node Name Status
------------------------------------ ------------------------
rhel6m2 passed
rhel6m1 passed
The DNS response time for an unreachable node is within acceptable limit on all nodes
File "/etc/resolv.conf" is consistent across nodes
Check: Time zone consistency
Result: Time zone consistency check passed
Pre-check for cluster services setup was unsuccessful on all the nodes.
If only the pdksh has the status as failed this could be ignored and consider the pre-check is successful.
11. Start the clusterware installation.
Since block devices are used for ASM disks set the disk discovery path to block devices.
Set OS group chosen for ASM administration
When CV_ASSUME_DISTID=OEL6 is set the OUI doesn't flag the pdksh but correctly identify the ksh pre-check requirement.
Summary
Begin the installation
12. Run root scripts when prompted
Running root.sh on first node (rhel6m1)
# /opt/app/11.2.0/grid/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /opt/app/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
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 script.
Now product-specific root actions will be performed.
Using configuration parameter file: /opt/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
OLR initialization - successful
root wallet
root wallet cert
root cert export
peer wallet
profile reader wallet
pa wallet
peer wallet keys
pa wallet keys
peer cert request
pa cert request
peer cert
pa cert
peer root cert TP
profile reader root cert TP
pa root cert TP
peer pa cert TP
pa peer cert TP
profile reader pa cert TP
profile reader peer cert TP
peer user cert
pa user cert
Adding Clusterware entries to upstart
CRS-2672: Attempting to start 'ora.mdnsd' on 'rhel6m1'
CRS-2676: Start of 'ora.mdnsd' on 'rhel6m1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'rhel6m1'
CRS-2676: Start of 'ora.gpnpd' on 'rhel6m1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rhel6m1'
CRS-2672: Attempting to start 'ora.gipcd' on 'rhel6m1'
CRS-2676: Start of 'ora.cssdmonitor' on 'rhel6m1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'rhel6m1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'rhel6m1'
CRS-2672: Attempting to start 'ora.diskmon' on 'rhel6m1'
CRS-2676: Start of 'ora.diskmon' on 'rhel6m1' succeeded
CRS-2676: Start of 'ora.cssd' on 'rhel6m1' succeeded
ASM created and started successfully.
Disk Group CLUSTER_DG created successfully.
clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 2c90c4f4a0fb4faebfb264244a836b96.
Successful addition of voting disk 1d7890a346284fa4bf0e278b2f3b1d3d.
Successful addition of voting disk 433f41571bf44fcebfe636a97d94777a.
Successfully replaced voting disk group with +CLUSTER_DG.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 2c90c4f4a0fb4faebfb264244a836b96 (/dev/sdb1) [CLUSTER_DG]
2. ONLINE 1d7890a346284fa4bf0e278b2f3b1d3d (/dev/sdc1) [CLUSTER_DG]
3. ONLINE 433f41571bf44fcebfe636a97d94777a (/dev/sdd1) [CLUSTER_DG]
Located 3 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'rhel6m1'
CRS-2676: Start of 'ora.asm' on 'rhel6m1' succeeded
CRS-2672: Attempting to start 'ora.CLUSTER_DG.dg' on 'rhel6m1'
CRS-2676: Start of 'ora.CLUSTER_DG.dg' on 'rhel6m1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
Running root.sh on the second node (rhel6m2)
# /opt/app/11.2.0/grid/root.sh
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /opt/app/11.2.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
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 script.
Now product-specific root actions will be performed.
Using configuration parameter file: /opt/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
OLR initialization - successful
Adding Clusterware entries to upstart
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node rhel6m1, number 1, and is terminating
An active cluster was found during exclusive startup, restarting to join the cluster
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
CRS-4402 has been explained on (
1212703.1), this is not an error on 11.2.0.3
13. Once the root.sh scripts have run on all nodes the clusterware installation will continue with running configuration assistants.
This will complete the clusterware installation as grid user. Check post installation configuration with
cluvfy stage -post crsinst -n rhel6m1,rhel6m2
and using asmca created additional diskgroup that will be used when RAC DB is created.
14. Edit the cvu_config file in database software installation. Similar to clusterware check the cluvfy will flag pdksh as failed
cluvfy stage -pre dbinst -n rhel6m1,rhel6m2 -fixup -verbose
...
...
Check: Package existence for "pdksh"
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rhel6m2 missing pdksh-5.2.14 failed
rhel6m1 missing pdksh-5.2.14 failed
Result: Package existence check failed for "pdksh"
...
...
But OUI will correctly identify the ksh package requirement.
Apart from this rest of the installation steps are same as in RHEL 5.
Select software only install. Database will be created after the installation using DBCA
Select all nodes part of the cluster
Installation path under Oracle base
OS group for database software management
Summary
Begin installation and execute the root.sh script when prompted.
15. Before beginning database created with dbca set read,write and execute permission for cfgtoollogs for Oracle user.
cd $ORACLE_BASE
#chmod 770 cfgtoollogs
Select all nodes the instance will run and complete DB creation.
Continue wizard to complete the remaining steps.
Related Posts
Installing 11gR2 (11.2.0.3) GI with Role Separation on OEL 6
Installing 11gR2 Standalone Server with ASM and Role Separation on RHEL 6
Installing 11.2.0.3 on RHEL 6