Implementando Oracle Database 11gR2 RAC on Virtualbox em Linux com ISCSI – P2

Este artigo tem como objetivo demonstrar a Clonagem da VM, a Configuração do Segundo Node juntamente com o Primeiro Node, Instalação do Oracle Grid Infrastructure.

Vamos iniciar clonando o Primeiro Node para o Segundo Node.

Após a importação da VM para o Node2, vamos iniciar a mesma.
Pode-se perceber que o nome do hostname será o mesmo do Node1.
Vamos alterar estas configurações conforme abaixo.

Ajustando nome do hostname.
Acessando o network, vamos ajustar o hostname.

[root@imrac11g1 ~]# vi /etc/sysconfig/network
[root@imrac11g1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=imrac11g2.tk.local
GATEWAY=192.168.10.254
[root@imrac11g1 ~]#

Vamos configurar a interface de Rede.
Interface de Rede 1
OBS: Deixa o Endereço MAC para não haver problemas na VM.

[root@imrac11g1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
[root@imrac11g1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=08:00:27:54:62:4b
IPADDR=192.168.10.51
NETMASK=255.255.255.0
NETWORK=192.168.10.0
BROADCAST=192.168.10.255
[root@imrac11g1 ~]#

Interface de Rede 2
OBS: Deixa o Endereço MAC para não haver problemas na VM.

[root@imrac11g1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
[root@imrac11g1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
HWADDR=08:00:27:bf:e2:29
IPADDR=10.0.0.2
NETMASK=255.0.0.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
[root@imrac11g1 ~]#

Após as configurações de Rede, vamos configurar o DNS no OEL no arquivo conforme abaixo.

[root@imrac11g1 ~]# vi /etc/resolv.conf
[root@imrac11g1 ~]# cat /etc/resolv.conf
search tk.local
nameserver 192.168.10.30

Após os ajustes acima, vamos reinicializar o Node2 e Inicializar o Node1 (Iniciar no Virtualbox).

[root@imrac11g1 ~]# reboot

Broadcast message from root (pts/0) (Wed Feb  5 22:50:26 2014):

The system is going down for reboot NOW!
[root@imrac11g1 ~]#

Após a inicialização dos 2 Nodes, vamos configurar o arquivo das variáveis de ambiente no profile do usuário oracle em ambos os nodes.

[root@imrac11g1 ~]# su - oracle
[oracle@imrac11g1 ~]$ vi .bash_profile
[oracle@imrac11g1 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

. .var_oracle_db.sh
[oracle@imrac11g1 ~]$

OBS: No Node2, ajusta as variáveis de ambiente para o mesmo.
Ajustar o Nome da Instância, orcl1 para orcl2 e o nome do hostname de imrac11g1.tk.local para imrac11g2.tk.local no .var_oracle_db.sh
Faça o mesmo ajuste no .var_oracle_grid.sh, +ASM1 para +ASM2 e o nome do hostname de imrac11g1.tk.local para imrac11g2.tk.local

Segue evidência abaixo:

[root@imrac11g2 ~]# su - oracle
[oracle@imrac11g2 ~]$ vi .var_oracle_grid.sh
[oracle@imrac11g2 ~]$ cat .var_oracle_grid.sh
#!/bin/ksh
umask 022
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/product/11.2.0/grid_01
export ORACLE_SID=+ASM2
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/rdbms/lib:/usr/dt/lib:/usr/lib:/usr/openwin/lib:/lib
export NLS_LANG="AMERICAN_AMERICA.WE8MSWIN1252"
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/plsql/jlib:$ORACLE_HOME/ord/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/owm/jlib:$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/ord/ts/jlib
export ORACLE_HOSTNAME=imrac11g2.tk.local
export PS1="oracle=$ORACLE_SID-> "
[oracle@imrac11g2 ~]$ vi .var_oracle_db.sh
[oracle@imrac11g2 ~]$ cat .var_oracle_db.sh
#!/bin/ksh
umask 022
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_01
export ORACLE_SID=orcl2
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/rdbms/lib:/usr/dt/lib:/usr/lib:/usr/openwin/lib:/lib
export NLS_LANG="AMERICAN_AMERICA.WE8MSWIN1252"
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/plsql/jlib:$ORACLE_HOME/ord/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/owm/jlib:$ORACLE_HOME/jdbc/lib:$ORACLE_HOME/ord/ts/jlib
export ORACLE_HOSTNAME=imrac11g2.tk.local
export PS1="oracle=$ORACLE_SID-> "
[oracle@imrac11g2 ~]$ vi .bash_profile
[oracle@imrac11g2 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

. .var_oracle_db.sh
[oracle@imrac11g2 ~]$ . .bash_profile
oracle=orcl2->

Vamos verificar as configurações para o Cluster, mas antes vamos criar a equivalência entre os Nodes conforme abaixo.

Node1

[oracle@imrac11g1 ~]$ mkdir ~/.ssh
[oracle@imrac11g1 ~]$ chmod 700 ~/.ssh
[oracle@imrac11g1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
5c:24:10:6a:64:2c:8a:6d:fa:5b:9a:24:b5:76:3f:c7 oracle@imrac11g1.tk.local
[oracle@imrac11g1 ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
d8:d5:61:d7:bd:ef:9b:e4:79:c7:19:19:0e:6a:6a:cb oracle@imrac11g1.tk.local
[oracle@imrac11g1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@imrac11g1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Node2

oracle=orcl2-> mkdir ~/.ssh
oracle=orcl2-> chmod 700 ~/.ssh
oracle=orcl2-> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
15:16:ee:ca:3c:5e:4e:22:85:ba:25:1c:fa:76:ef:f0 oracle@imrac11g2.tk.local
oracle=orcl2->
oracle=orcl2-> ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
50:cd:cb:c4:12:a4:89:69:d3:32:15:a9:b4:31:57:04 oracle@imrac11g2.tk.local
oracle=orcl2-> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
oracle=orcl2-> cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Juntando os dois arquivos de authorized_keys dos Nodes.

[oracle@imrac11g1 ~]$ ssh imrac11g2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'imrac11g2 (192.168.10.51)' can't be established.
RSA key fingerprint is 62:fe:e4:69:3f:72:95:39:f2:65:3c:a4:43:84:bf:5f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'imrac11g2,192.168.10.51' (RSA) to the list of known hosts.
oracle@imrac11g2's password:
[oracle@imrac11g1 ~]$ scp ~/.ssh/authorized_keys imrac11g2:~/.ssh/authorized_keys
oracle@imrac11g2's password:
authorized_keys                                                                                                                       100% 1637     1.6KB/s   00:00
[oracle@imrac11g1 ~]$ ssh imrac11g2 date
Wed Feb  5 22:58:51 BRST 2014
[oracle@imrac11g1 ~]$ ssh imrac11g1 date
The authenticity of host 'imrac11g1 (192.168.10.50)' can't be established.
RSA key fingerprint is 62:fe:e4:69:3f:72:95:39:f2:65:3c:a4:43:84:bf:5f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'imrac11g1,192.168.10.50' (RSA) to the list of known hosts.
Wed Feb  5 22:58:55 BRST 2014
[oracle@imrac11g1 ~]$

#### Node2 ####

oracle=orcl2-> ssh imrac11g1 date
The authenticity of host 'imrac11g1 (192.168.10.50)' can't be established.
RSA key fingerprint is 62:fe:e4:69:3f:72:95:39:f2:65:3c:a4:43:84:bf:5f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'imrac11g1,192.168.10.50' (RSA) to the list of known hosts.
Wed Feb  5 23:01:06 BRST 2014
oracle=orcl2-> ssh imrac11g2 date
The authenticity of host 'imrac11g2 (192.168.10.51)' can't be established.
RSA key fingerprint is 62:fe:e4:69:3f:72:95:39:f2:65:3c:a4:43:84:bf:5f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'imrac11g2,192.168.10.51' (RSA) to the list of known hosts.
Wed Feb  5 23:01:11 BRST 2014
oracle=orcl2->

Vamos verificar as configurações para o Cluster e Instalação do Oracle Grid Infrastructure executando o runcluvfy.sh
Importante que todas as etapas estejam com status “passed”.

[oracle@imrac11g1 ~]$ cd /backup/grid/
[oracle@imrac11g1 grid]$ ./runcluvfy.sh stage -pre crsinst -n imrac11g1,imrac11g2 -verbose

Performing pre-checks for cluster services setup

Checking node reachability...

Check: Node reachability from node "imrac11g1"
  Destination Node                      Reachable?
  ------------------------------------  ------------------------
  imrac11g2                             yes
  imrac11g1                             yes
Result: Node reachability check passed from node "imrac11g1"


Checking user equivalence...

Check: User equivalence for user "oracle"
  Node Name                             Status
  ------------------------------------  ------------------------
  imrac11g2                             passed
  imrac11g1                             passed
Result: User equivalence check passed for user "oracle"

Checking node connectivity...

Checking hosts config file...
  Node Name                             Status
  ------------------------------------  ------------------------
  imrac11g2                             passed
  imrac11g1                             passed

Verification of the hosts config file successful


Interface information for node "imrac11g2"
 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 eth0   192.168.10.51   192.168.10.0    0.0.0.0         192.168.10.254  08:00:27:54:62:4B 1500
 eth1   10.0.0.2        10.0.0.0        0.0.0.0         192.168.10.254  08:00:27:BF:E2:29 1500


Interface information for node "imrac11g1"
 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 eth0   192.168.10.50   192.168.10.0    0.0.0.0         192.168.10.254  08:00:27:37:62:92 1500
 eth1   10.0.0.1        10.0.0.0        0.0.0.0         192.168.10.254  08:00:27:E4:35:C5 1500


Check: Node connectivity of subnet "192.168.10.0"
  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  imrac11g2[192.168.10.51]        imrac11g1[192.168.10.50]        yes
Result: Node connectivity passed for subnet "192.168.10.0" with node(s) imrac11g2,imrac11g1


Check: TCP connectivity of subnet "192.168.10.0"
  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  imrac11g1:192.168.10.50         imrac11g2:192.168.10.51         passed
Result: TCP connectivity check passed for subnet "192.168.10.0"


Check: Node connectivity of subnet "10.0.0.0"
  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  imrac11g2[10.0.0.2]             imrac11g1[10.0.0.1]             yes
Result: Node connectivity passed for subnet "10.0.0.0" with node(s) imrac11g2,imrac11g1


Check: TCP connectivity of subnet "10.0.0.0"
  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  imrac11g1:10.0.0.1              imrac11g2:10.0.0.2              passed
Result: TCP connectivity check passed for subnet "10.0.0.0"


Interfaces found on subnet "192.168.10.0" that are likely candidates for VIP are:
imrac11g2 eth0:192.168.10.51
imrac11g1 eth0:192.168.10.50

Interfaces found on subnet "10.0.0.0" that are likely candidates for a private interconnect are:
imrac11g2 eth1:10.0.0.2
imrac11g1 eth1:10.0.0.1
Checking subnet mask consistency...
Subnet mask consistency check passed for subnet "192.168.10.0".
Subnet mask consistency check passed for subnet "10.0.0.0".
Subnet mask consistency check passed.

Result: Node connectivity check passed

Checking multicast communication...

Checking subnet "192.168.10.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.10.0" for multicast communication with multicast group "230.0.1.0" passed.

Checking subnet "10.0.0.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "10.0.0.0" for multicast communication with multicast group "230.0.1.0" passed.

Check of multicast communication passed.

Checking ASMLib configuration.
  Node Name                             Status
  ------------------------------------  ------------------------
  imrac11g2                             passed
  imrac11g1                             passed
Result: Check for ASMLib configuration passed.

Check: Total memory
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     1.9549GB (2049824.0KB)    1.5GB (1572864.0KB)       passed
  imrac11g1     1.9549GB (2049824.0KB)    1.5GB (1572864.0KB)       passed
Result: Total memory check passed

Check: Available memory
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     1.801GB (1888460.0KB)     50MB (51200.0KB)          passed
  imrac11g1     1.6695GB (1750568.0KB)    50MB (51200.0KB)          passed
Result: Available memory check passed

Check: Swap space
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     3.9987GB (4192924.0KB)    2.9323GB (3074736.0KB)    passed
  imrac11g1     3.9987GB (4192924.0KB)    2.9323GB (3074736.0KB)    passed
Result: Swap space check passed

Check: Free disk space for "imrac11g2:/tmp"
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /tmp              imrac11g2     /             2.5469GB      1GB           passed
Result: Free disk space check passed for "imrac11g2:/tmp"

Check: Free disk space for "imrac11g1:/tmp"
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /tmp              imrac11g1     /             2.5265GB      1GB           passed
Result: Free disk space check passed for "imrac11g1:/tmp"

Check: User existence for "oracle"
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  imrac11g2     passed                    exists(501)
  imrac11g1     passed                    exists(501)

Checking for multiple users with UID value 501
Result: Check for multiple users with UID value 501 passed
Result: User existence check passed for "oracle"

Check: Group existence for "oinstall"
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  imrac11g2     passed                    exists
  imrac11g1     passed                    exists
Result: Group existence check passed for "oinstall"

Check: Group existence for "dba"
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  imrac11g2     passed                    exists
  imrac11g1     passed                    exists
Result: Group existence check passed for "dba"

Check: Membership of user "oracle" in group "oinstall" [as Primary]
  Node Name         User Exists   Group Exists  User in Group  Primary       Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         yes           yes           yes           yes           passed
  imrac11g1         yes           yes           yes           yes           passed
Result: Membership check for user "oracle" in group "oinstall" [as Primary] passed

Check: Membership of user "oracle" in group "dba"
  Node Name         User Exists   Group Exists  User in Group  Status
  ----------------  ------------  ------------  ------------  ----------------
  imrac11g2         yes           yes           yes           passed
  imrac11g1         yes           yes           yes           passed
Result: Membership check for user "oracle" in group "dba" passed

Check: Run level
  Node Name     run level                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     3                         3,5                       passed
  imrac11g1     3                         3,5                       passed
Result: Run level check passed

Check: Hard limits for "maximum open file descriptors"
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  imrac11g2         hard          65536         65536         passed
  imrac11g1         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
  ----------------  ------------  ------------  ------------  ----------------
  imrac11g2         soft          1024          1024          passed
  imrac11g1         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
  ----------------  ------------  ------------  ------------  ----------------
  imrac11g2         hard          16384         16384         passed
  imrac11g1         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
  ----------------  ------------  ------------  ------------  ----------------
  imrac11g2         soft          2047          2047          passed
  imrac11g1         soft          2047          2047          passed
Result: Soft limits check passed for "maximum user processes"

Check: System architecture
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     x86_64                    x86_64                    passed
  imrac11g1     x86_64                    x86_64                    passed
Result: System architecture check passed

Check: Kernel version
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     2.6.32-300.10.1.el5uek    2.6.18                    passed
  imrac11g1     2.6.32-300.10.1.el5uek    2.6.18                    passed
Result: Kernel version check passed

Check: Kernel parameter for "semmsl"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         250           250           250           passed
  imrac11g1         250           250           250           passed
Result: Kernel parameter check passed for "semmsl"

Check: Kernel parameter for "semmns"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         32000         32000         32000         passed
  imrac11g1         32000         32000         32000         passed
Result: Kernel parameter check passed for "semmns"

Check: Kernel parameter for "semopm"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         100           100           100           passed
  imrac11g1         100           100           100           passed
Result: Kernel parameter check passed for "semopm"

Check: Kernel parameter for "semmni"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         128           128           128           passed
  imrac11g1         128           128           128           passed
Result: Kernel parameter check passed for "semmni"

Check: Kernel parameter for "shmmax"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         68719476736   68719476736   1049509888    passed
  imrac11g1         68719476736   68719476736   1049509888    passed
Result: Kernel parameter check passed for "shmmax"

Check: Kernel parameter for "shmmni"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         4096          4096          4096          passed
  imrac11g1         4096          4096          4096          passed
Result: Kernel parameter check passed for "shmmni"

Check: Kernel parameter for "shmall"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         4294967296    4294967296    2097152       passed
  imrac11g1         4294967296    4294967296    2097152       passed
Result: Kernel parameter check passed for "shmall"

Check: Kernel parameter for "file-max"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         6815744       6815744       6815744       passed
  imrac11g1         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
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         between 9000.0 & 65500.0  between 9000.0 & 65500.0  between 9000.0 & 65500.0  passed
  imrac11g1         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
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         262144        262144        262144        passed
  imrac11g1         262144        262144        262144        passed
Result: Kernel parameter check passed for "rmem_default"

Check: Kernel parameter for "rmem_max"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         4194304       4194304       4194304       passed
  imrac11g1         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
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         262144        262144        262144        passed
  imrac11g1         262144        262144        262144        passed
Result: Kernel parameter check passed for "wmem_default"

Check: Kernel parameter for "wmem_max"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         1048576       1048576       1048576       passed
  imrac11g1         1048576       1048576       1048576       passed
Result: Kernel parameter check passed for "wmem_max"

Check: Kernel parameter for "aio-max-nr"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  imrac11g2         1048576       1048576       1048576       passed
  imrac11g1         1048576       1048576       1048576       passed
Result: Kernel parameter check passed for "aio-max-nr"

Check: Package existence for "make"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     make-3.81-3.el5           make-3.81                 passed
  imrac11g1     make-3.81-3.el5           make-3.81                 passed
Result: Package existence check passed for "make"

Check: Package existence for "binutils"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     binutils-2.17.50.0.6-20.el5  binutils-2.17.50.0.6      passed
  imrac11g1     binutils-2.17.50.0.6-20.el5  binutils-2.17.50.0.6      passed
Result: Package existence check passed for "binutils"

Check: Package existence for "gcc(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     gcc(x86_64)-4.1.2-52.el5  gcc(x86_64)-4.1.2         passed
  imrac11g1     gcc(x86_64)-4.1.2-52.el5  gcc(x86_64)-4.1.2         passed
Result: Package existence check passed for "gcc(x86_64)"

Check: Package existence for "libaio(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     libaio(x86_64)-0.3.106-5  libaio(x86_64)-0.3.106    passed
  imrac11g1     libaio(x86_64)-0.3.106-5  libaio(x86_64)-0.3.106    passed
Result: Package existence check passed for "libaio(x86_64)"

Check: Package existence for "glibc(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     glibc(x86_64)-2.5-81      glibc(x86_64)-2.5-24      passed
  imrac11g1     glibc(x86_64)-2.5-81      glibc(x86_64)-2.5-24      passed
Result: Package existence check passed for "glibc(x86_64)"

Check: Package existence for "compat-libstdc++-33(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     compat-libstdc++-33(x86_64)-3.2.3-61  compat-libstdc++-33(x86_64)-3.2.3  passed
  imrac11g1     compat-libstdc++-33(x86_64)-3.2.3-61  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
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     elfutils-libelf(x86_64)-0.137-3.el5  elfutils-libelf(x86_64)-0.125  passed
  imrac11g1     elfutils-libelf(x86_64)-0.137-3.el5  elfutils-libelf(x86_64)-0.125  passed
Result: Package existence check passed for "elfutils-libelf(x86_64)"

Check: Package existence for "elfutils-libelf-devel"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     elfutils-libelf-devel-0.137-3.el5  elfutils-libelf-devel-0.125  passed
  imrac11g1     elfutils-libelf-devel-0.137-3.el5  elfutils-libelf-devel-0.125  passed
Result: Package existence check passed for "elfutils-libelf-devel"

Check: Package existence for "glibc-common"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     glibc-common-2.5-81       glibc-common-2.5          passed
  imrac11g1     glibc-common-2.5-81       glibc-common-2.5          passed
Result: Package existence check passed for "glibc-common"

Check: Package existence for "glibc-devel(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     glibc-devel(x86_64)-2.5-81  glibc-devel(x86_64)-2.5   passed
  imrac11g1     glibc-devel(x86_64)-2.5-81  glibc-devel(x86_64)-2.5   passed
Result: Package existence check passed for "glibc-devel(x86_64)"

Check: Package existence for "glibc-headers"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     glibc-headers-2.5-81      glibc-headers-2.5         passed
  imrac11g1     glibc-headers-2.5-81      glibc-headers-2.5         passed
Result: Package existence check passed for "glibc-headers"

Check: Package existence for "gcc-c++(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     gcc-c++(x86_64)-4.1.2-52.el5  gcc-c++(x86_64)-4.1.2     passed
  imrac11g1     gcc-c++(x86_64)-4.1.2-52.el5  gcc-c++(x86_64)-4.1.2     passed
Result: Package existence check passed for "gcc-c++(x86_64)"

Check: Package existence for "libaio-devel(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     libaio-devel(x86_64)-0.3.106-5  libaio-devel(x86_64)-0.3.106  passed
  imrac11g1     libaio-devel(x86_64)-0.3.106-5  libaio-devel(x86_64)-0.3.106  passed
Result: Package existence check passed for "libaio-devel(x86_64)"

Check: Package existence for "libgcc(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     libgcc(x86_64)-4.1.2-52.el5  libgcc(x86_64)-4.1.2      passed
  imrac11g1     libgcc(x86_64)-4.1.2-52.el5  libgcc(x86_64)-4.1.2      passed
Result: Package existence check passed for "libgcc(x86_64)"

Check: Package existence for "libstdc++(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     libstdc++(x86_64)-4.1.2-52.el5  libstdc++(x86_64)-4.1.2   passed
  imrac11g1     libstdc++(x86_64)-4.1.2-52.el5  libstdc++(x86_64)-4.1.2   passed
Result: Package existence check passed for "libstdc++(x86_64)"

Check: Package existence for "libstdc++-devel(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     libstdc++-devel(x86_64)-4.1.2-52.el5  libstdc++-devel(x86_64)-4.1.2  passed
  imrac11g1     libstdc++-devel(x86_64)-4.1.2-52.el5  libstdc++-devel(x86_64)-4.1.2  passed
Result: Package existence check passed for "libstdc++-devel(x86_64)"

Check: Package existence for "sysstat"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     sysstat-7.0.2-11.el5      sysstat-7.0.2             passed
  imrac11g1     sysstat-7.0.2-11.el5      sysstat-7.0.2             passed
Result: Package existence check passed for "sysstat"

Check: Package existence for "ksh"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     ksh-20100621-5.el5        ksh-20060214              passed
  imrac11g1     ksh-20100621-5.el5        ksh-20060214              passed
Result: Package existence check passed for "ksh"

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
  ------------------------------------  ------------------------
  imrac11g2                             passed
  imrac11g1                             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...
The NTP configuration file "/etc/ntp.conf" is available on all nodes
NTP Configuration file check passed

Checking daemon liveness...

Check: Liveness for "ntpd"
  Node Name                             Running?
  ------------------------------------  ------------------------
  imrac11g2                             yes
  imrac11g1                             yes
Result: Liveness check passed for "ntpd"
Check for NTP daemon or service alive passed on all nodes

Checking NTP daemon command line for slewing option "-x"
Check: NTP daemon command line
  Node Name                             Slewing Option Set?
  ------------------------------------  ------------------------
  imrac11g2                             yes
  imrac11g1                             yes
Result:
NTP daemon slewing option check passed

Checking NTP daemon's boot time configuration, in file "/etc/sysconfig/ntpd", for slewing option "-x"

Check: NTP daemon's boot time configuration
  Node Name                             Slewing Option Set?
  ------------------------------------  ------------------------
  imrac11g2                             yes
  imrac11g1                             yes
Result:
NTP daemon's boot time configuration check for slewing option passed

Checking whether NTP daemon or service is using UDP port 123 on all nodes

Check for NTP daemon or service using UDP port 123
  Node Name                             Port Open?
  ------------------------------------  ------------------------
  imrac11g2                             yes
  imrac11g1                             yes

NTP common Time Server Check started...
PRVF-5408 : NTP Time Server "200.186.125.195" is common only to the following nodes "imrac11g1"
NTP Time Server "200.20.186.76" is common to all nodes on which the NTP daemon is running
PRVF-5408 : NTP Time Server ".ONBR." is common only to the following nodes "imrac11g2"
NTP Time Server "200.20.186.75" is common to all nodes on which the NTP daemon is running
PRVF-5408 : NTP Time Server "200.160.7.186" is common only to the following nodes "imrac11g1"
PRVF-5408 : NTP Time Server "146.164.48.5" is common only to the following nodes "imrac11g2"
NTP Time Server ".LOCL." is common to all nodes on which the NTP daemon is running
Check of common NTP Time Server passed

Clock time offset check from NTP Time Server started...
Checking on nodes "[imrac11g2, imrac11g1]"...
Check: Clock time offset from NTP Time Server

Time Server: 200.20.186.76
Time Offset Limit: 1000.0 msecs
  Node Name     Time Offset               Status
  ------------  ------------------------  ------------------------
  imrac11g2     -18.675                   passed
  imrac11g1     -14.0                     passed
Time Server "200.20.186.76" has time offsets that are within permissible limits for nodes "[imrac11g2, imrac11g1]".

Time Server: 200.20.186.75
Time Offset Limit: 1000.0 msecs
  Node Name     Time Offset               Status
  ------------  ------------------------  ------------------------
  imrac11g2     -20.596                   passed
  imrac11g1     -17.815                   passed
Time Server "200.20.186.75" has time offsets that are within permissible limits for nodes "[imrac11g2, imrac11g1]".

Time Server: .LOCL.
Time Offset Limit: 1000.0 msecs
  Node Name     Time Offset               Status
  ------------  ------------------------  ------------------------
  imrac11g2     0.0                       passed
  imrac11g1     0.0                       passed
Time Server ".LOCL." has time offsets that are within permissible limits for nodes "[imrac11g2, imrac11g1]".
Clock time offset check passed

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 "oracle" is not in "root" group
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  imrac11g2     passed                    does not exist
  imrac11g1     passed                    does not exist
Result: User "oracle" is not part of "root" group. Check passed

Check default user file creation mask
  Node Name     Available                 Required                  Comment
  ------------  ------------------------  ------------------------  ----------
  imrac11g2     0022                      0022                      passed
  imrac11g1     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 "tk.local" as found on node "imrac11g2"
All nodes of the cluster have same value for 'search'
Checking DNS response time for an unreachable node
  Node Name                             Status
  ------------------------------------  ------------------------
  imrac11g2                             passed
  imrac11g1                             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 successful.
[oracle@imrac11g1 grid]$

Após a verificação que ocorreu com sucesso, vamos executar o VNCSERVER para fazer a instalação do Oracle Grid Infrastructure.

[oracle@imrac11g1 grid]$ vncserver

You will require a password to access your desktops.

Password:
Verify:
xauth:  creating new authority file /home/oracle/.Xauthority

New 'imrac11g1.tk.local:1 (oracle)' desktop is imrac11g1.tk.local:1

Creating default startup script /home/oracle/.vnc/xstartup
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/imrac11g1.tk.local:1.log

[oracle@imrac11g1 grid]$

Com um programa de vnc, abre o mesmo e carrega o arquivo das variáveis de ambiente .var_oracle_grid.sh
Entre no diretório na qual estão os arquivos de instalação do Oracle Grid e executa o RunInstaller.
Segue abaixo o passo a passo da Instalação do Oracle Grid Infrastructure.

Executar os Scripts em Ambos os Nodes (Já solicitado na Imagem de Instalação do Oracle Grid).

[root@imrac11g1 ~]# /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.
[root@imrac11g1 ~]# /u01/app/product/11.2.0/grid_01/root.sh
Performing root user operation for Oracle 11g

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

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: /u01/app/product/11.2.0/grid_01/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 inittab
CRS-2672: Attempting to start 'ora.mdnsd' on 'imrac11g1'
CRS-2676: Start of 'ora.mdnsd' on 'imrac11g1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'imrac11g1'
CRS-2676: Start of 'ora.gpnpd' on 'imrac11g1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'imrac11g1'
CRS-2672: Attempting to start 'ora.gipcd' on 'imrac11g1'
CRS-2676: Start of 'ora.gipcd' on 'imrac11g1' succeeded
CRS-2676: Start of 'ora.cssdmonitor' on 'imrac11g1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'imrac11g1'
CRS-2672: Attempting to start 'ora.diskmon' on 'imrac11g1'
CRS-2676: Start of 'ora.diskmon' on 'imrac11g1' succeeded
CRS-2676: Start of 'ora.cssd' on 'imrac11g1' succeeded

ASM created and started successfully.

Disk Group DGOCRVOLT 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 96ab6b0c22434f87bf6852c5e7ed0a11.
Successfully replaced voting disk group with +DGOCRVOLT.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   96ab6b0c22434f87bf6852c5e7ed0a11 (ORCL:ASM2) [DGOCRVOLT]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'imrac11g1'
CRS-2676: Start of 'ora.asm' on 'imrac11g1' succeeded
CRS-2672: Attempting to start 'ora.DGOCRVOLT.dg' on 'imrac11g1'
CRS-2676: Start of 'ora.DGOCRVOLT.dg' on 'imrac11g1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@imrac11g1 ~]#

You have mail in /var/spool/mail/root
[root@imrac11g1 ~]# /u01/app/oracle/product/11.2.0/db_01/root.sh
Performing root user operation for Oracle 11g

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

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

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.
Finished product-specific root actions.
[root@imrac11g1 ~]#

#### Node2 ####

[root@imrac11g2 ~]# /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.
[root@imrac11g2 ~]# /u01/app/product/11.2.0/grid_01/root.sh
Performing root user operation for Oracle 11g

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

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: /u01/app/product/11.2.0/grid_01/crs/install/crsconfig_params
Creating trace directory
OLR initialization - successful
Adding Clusterware entries to inittab
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node imrac11g1, 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
[root@imrac11g2 ~]#

Continua no artigo Implementando Oracle Database 11gR2 RAC on Virtualbox em Linux com ISCSI – P3.

%name Implementando Oracle Database 11gR2 RAC on Virtualbox em Linux com ISCSI   P2

Autor: Maycon Tomiasi

Formado em Tecnologia da Informação na FIPP (Faculdade de Informática de Presidente Prudente), Analista DBA Oracle pela Teiko Soluções em Tecnologia da Informação, residente em Blumenau/ SC, Certificado OCP 10g/11g/12c, OCS 11g Implementation, OCE 11g Performance Tuning, OCE 11g RAC & GRID e OPN Specialist. Conhecimentos em PHP.