Step by Step Oracle RAC Installation Tutorial

Oracle RAC Installation

In this article, We will see the Step by Step Oracle RAC Installation Tutorial.

Before we Start our Configuration first we will understand the basic of RAC.

What is RAC?

RAC stands for Real Application Cluster which means A cluster comprises multiple interconnected servers that appear as one server to end users and applications.

With Oracle Clusterware, Oracle RAC enables you to cluster an Oracle database.

  • Oracle Clusterware enables nonclustered and RAC databases to use the Oracle high-availability infrastructure.
  • Oracle Clusterware enables you to create a clustered pool of storage to be used by any combination of nonclustered and Oracle RAC databases.

Oracle RAC environments have a one-to-many relationship between the database and instances.An Oracle RAC database can have up to 100 instances.

Benefits of using RAC

High availability:– Surviving node and instance failures.

Scalability:- Adding more nodes as you need them in the future.

Pay as you grow: – Paying for only what you need today.

Hardware and Software Configuration

Hardware

1) Total number of machines are 3 (2 for RAC nodes and one for Storage.
2) Total Network Switches are 3 (For Public, Private and Shared Storage).
3) Total Network adapters are 5 (4 for RAC Nodes and 1 for Shared Storage).
4) We will use 80GB of Storage for each RAC nodes and 12GB for Shared Storage.

Software

1) For Shared Storage we are using Openfiler Software (openfileresa-2.99.1-x86_64-disc1).
2) We are using Oracle Enterprise Linux Operating System.
3) For Clusterware we are using 11R2 Grid Infrastructure (11.2.0.4).
4) For Oracle RDBMS we are using 11R2 Oracle database (11.2.0.4).

Steps which we will cover to complete the Oracle RAC Installation.

1) Prerequisites Part.

2) Installation of Grid Infrastructure Software.

3) Installation of Oracle RDBMS Software.

Prerequisites Part

We are going to follow the below prerequisites to perform the Oracle RAC Installation.

1) Installation of VMware Machine.
2) Installation of Oracle Enterprise Linux
3) Now after reboot we will need to do the post installation setup of OEL 6.3.
4) Vmware Machine tools Installation to access the folder from VMware Machine to Host Machine.
5) Cloning of the RAC Node 2 from RAC node 1
6) Installation of Openfiler (openfileresa-2.99.1-x86_64-disc1)
7) Creation of partition
8) Creation of users
9) ASM RPM installation
10) Configuration of ASM library drivers
11) Data and OCR_VOTE Disk Creation
12) Setup of Network Time Protocol
13) SSH setup Connection
14) Disk Creation
15) Pre Installation Cluster Setup (Cluvfy)

==> Installation of VMware Machine.

Before installing the Oralce Enterprise Linux OS, First we need to create Virtual Machine and then we can install the Redhat ISO in that VMware Machine.

To install the Virtual Machine please follow the below steps: –

1) Open the VMware Machine and hover the File option and then click New Virtual Machine,You will redirect to the Wizard tab from where you can create the RAC node 1 Machine and Install the Redhat OS.

2) Choose Custom Option under the Configuration type.

3) Now just click Next under the Hardware Compatibility option.

4) Choose Second option to insert the Redhat 5.7 ISO Image under Guest Operating System Installation.

5) Select the Name and Location where you want to store your files.

6) Give the number of processor as per your need under processor Configuration.

7) Now give atleast 3 GB of RAM under Memory Configuration.

8) Use Host only Networking under Network type.

9) Select Controller types as recommended one.

10) Select Disk type as recommended one.

11) Select first option “Create a new Virtual Disk” under Disk type.

12) Select Disk size as per your requirement and choose option “Store virtual disk as a single file” under Disk Capacity. 

13) Finally You will get the option “Ready  to Create Virtual Machine”.

Just Click on the “Finish” button to complete the setup of Virtual Machine.

Ready to Create Virtual Machine

==> Installation of Oracle Enterprise Linux

Our Machine is ready, So Next step is to Install the Oracle Enterprise OS and do the configuration part.

1) To begin the Installation we need to click on the Power On Button.

Ready to Create Virtual Machine

2) Click on the Install or upgrade an existing system to start the configuration setup of Oracle Enterprise Linux 6.4

Click on the Install or upgrade an existing system

3) Click on the Next Button to proceed further.

Click on the Next option to proceed further

4) Select language as English and Click on Next Button to proceed further.

5) Choose Basic Storage Devices Option and Click on the Next button to proceed further.

Choose the Basic Storage Option and Click Next button

6) Choose the Hostname as per your requirement and also need to configure the Network.

Hostname : –

Choose you hostname as per your requirement

To configure the Network Setting you just need to click on the configure Network option and follow the below step.

Click on the Configure Network—>Click on the Ethernet card—>Click on edit option—>Choose option IPv4 and choose Manual option and then set the IP address and the click on Apply button. Same you need to do for the second IP address.

eth0 IPaddress Setting

7) Choose the time zone as Asia/Kolkata.

8) Choose the root password as per your requirement.

9) Choose Custom Layout and then click on Next button.

Choose Custom Layout and then click on Next button

10) Now we need to create some Mount points like below.

a) /” size is 15GB.

b) “/u01” is used for Grid Home directory and  size is 30GB.

c) “/u02” is used for Oracle RDBMS Home directory and size is 30GB.

4) “SWAP” size should be double the size of RAM.

Custom Mount Points

11) Choose the default Option as Basic Server Installation and also choose Customize Now option, then click on Next Button to proceed Further.

Default option should be Basic Server and choose Customise option and click on next button

12) Select all the packages including optional ones and then click on Next Button.

Packages Including Optional ones also

Once you will click on the Next Button then packages Installation will start and we need to wait till the operation gets completed.

Reboot

We can see from above output that Our Oracle Linux Server Installation is complete, Now just click on the reboot button to make all the updates available.

==> Now after reboot we will need to do the post installation setup of OEL 6.3.

1) You will get the Welcome tab, Just click on the Forward Button to proceed further.

2) Next you will get Licence Information tab, Just click on Yes, I agree the License Agreement.

3) Next you will get the Setup the Software Updates, Just click on No, I will prefer to register at a later time.

4) Next you will get the Create user tab, Click on the Forward button because we will create users later.

5) Next you will get the Date and time tab, set the Date and time and click on the forward button.

6) Next you will get the Enable Kdump tab, Just select No and click on Finish Button to complete the Post Installation steps.

==> Vmware Machine tools Installation to access the folder from VMware Machine to Host Machine.

1) Login as root user with the password which we have given at the time of OEL Installation.

2) Click on the VM tab which you will get on the left upper side when you will login through root user.

3) Choose option Install VMware tools.

4) Now drag this VMware tools tar file to your desktop and open the new terminal.

5) Now run the (ls -lrt) command to list the files and untar the VMware tool file through (tar -xvf) command.

6) Now again run (ls -lrt) command, now you will get one folder called (vmware-tools-distrib).

7) Now when you will open that folder through (cd) command then you need to execute (vmware-install.pl) file.

eg) ./vmware-install.pl

When you will execute the above command after that it will ask some confirmation related to directory creation, enable HGFS share and so on , You just need to press Enter and after completion just reboot the system again to get the tool updation successfully.

==> Cloning of the RAC Node 2 from RAC node 1

Cloning is the best option to save our time while we need to install  multiple nodes.  We can make our RAC node 2 in a minutes with the help of Cloning option. 

Please follow the below steps to clone the RAC Node 2. 

1) Before start the cloning make sure your Node 1 should be Power Off.

2) Now you need to right click on Node 1—>manage—>Clone option

3) You will get Clone Virtual Machine Wizard, Click on Next option to proceed further. 

4) Choose the “Current State in the Virtual machine” option under Clone source tab.

5) Choose the “Create a full clone” option under Clone type tab. 6) Select the “Name and Location” of the machine. All things has been done, It will take few minutes to clone the second machine and you will get the below output.

==> Installation of Openfiler (openfileresa-2.99.1-x86_64-disc1)

I have created the Step by Step Installation of Openfiler setup.

Click here to see the full Installation.

==> Creation of partition

Before doing the partition, check the Configuration of openfiler setup because in that part we have created the disk called /dev/sdb. So In this part I am doing the partiton of that disk.

1) Run the command fdisk -l to check whether partition is visible or not.

[root@rac1 ~]# fdisk -l

Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009ef36

Device Boot Start End Blocks Id System
/dev/sda1 1 3825 30720000 83 Linux
/dev/sda2 3825 7650 30720000 83 Linux
/dev/sda3 * 7650 9562 15360000 83 Linux
/dev/sda4 9562 10444 7085056 5 Extended
/dev/sda5 9562 10444 7084032 82 Linux swap / Solaris

Disk /dev/sdb: 81.9 GB, 81906368512 bytes
255 heads, 63 sectors/track, 9957 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

2) Now we will create the partition through below command.

[root@rac1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x0f1d9826.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-9957, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-9957, default 9957): +40G

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (5224-9957, default 5224):
Using default value 5224
Last cylinder, +cylinders or +size{K,M,G} (5224-9957, default 9957): +35G

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

Calling ioctl() to re-read partition table.
Syncing disks.

I can see that Our Partition has been created successfully

Device Boot Start End Blocks Id System
/dev/sdb1 1 5223 41953716 83 Linux
/dev/sdb2 5224 9793 36708525 83 Linux

==> Creation of users

1) We will create the required groups.

Groups: –

[root@rac1 ~]# groupadd -g 5001 oinstall
[root@rac1 ~]# groupadd -g 5002 dba
[root@rac1 ~]# groupadd -g 5003 oper
[root@rac1 ~]# groupadd -g 5004 asmdba
[root@rac1 ~]# groupadd -g 5005 asmadmin
[root@rac1 ~]# groupadd -g 5006 asmoper

Users: –

[root@rac1 ~]# useradd -u 5007 -g oinstall -G asmdba,asmadmin,dba -d /u01/home -m grid

[root@rac1 ~]# useradd -u 5008 -g oinstall -G dba,oper -d /u02/home -m oracle

Permissions: –

[root@rac1 ~]# chown -R grid:oinstall /u01/home
[root@rac1 ~]# chmod -R 777 /u01/home

[root@rac1 ~]# chown -R oracle:oinstall /u02/home
[root@rac1 ~]# chown -R 777 /u02/home

Password: –

[root@rac1 ~]# passwd grid
Changing password for user grid.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

[root@rac1 ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

==> ASM RPM installation

[root@rac1 Oracle DBA Softwares]# rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm
warning: oracleasmlib-2.0.4-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing… ########################################### [100%]
1:oracleasmlib ########################################### [100%]
[root@rac1 Oracle DBA Softwares]#

[root@rac1 Oracle DBA Softwares]# rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm
warning: oracleasm-support-2.1.8-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing… ########################################### [100%]
package oracleasm-support-2.1.8-1.el6.x86_64 is already installed

==> Configuration of ASM library drivers

For any help use command oracleasm -h

[root@rac1 Oracle DBA Softwares]# oracleasm -h
Usage: oracleasm [–exec-path=<exec_path>] <command> [ <args> ]
oracleasm –exec-path
oracleasm -h
oracleasm -V

The basic oracleasm commands are:
configure Configure the Oracle Linux ASMLib driver
init Load and initialize the ASMLib driver
exit Stop the ASMLib driver
scandisks Scan the system for Oracle ASMLib disks
status Display the status of the Oracle ASMLib driver
listdisks List known Oracle ASMLib disks
querydisk Determine if a disk belongs to Oracle ASMlib
createdisk Allocate a device for Oracle ASMLib use
deletedisk Return a device to the operating system
renamedisk Change the label of an Oracle ASMlib disk
update-driver Download the latest ASMLib driver

Configuration:-

[root@rac1 Oracle DBA Softwares]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets (‘[]’). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

==> Data and OCR_VOTE Disk Creation

[root@rac1 Desktop]# oracleasm createdisk DATA /dev/sdb1
Writing disk header: done
Instantiating disk: done

[root@rac1 Desktop]# oracleasm createdisk OCR_VD /dev/sdb2
Writing disk header: done
Instantiating disk: done
[root@rac1 Desktop]#

[root@rac1 Desktop]# oracleasm listdisks
DATA
OCR_VD

==> Setup of Network Time Protocol

[root@rac1 Desktop]# mv /etc/ntp.conf /etc/ntp.conf_bkp
[root@rac1 Desktop]#

[root@rac1 Desktop]# service ntpd restart
Shutting down ntpd: [FAILED]

==> SSH setup Connection

Now you need to setup the SSH connection to perform the password less connectivity between the nodes, please follow the below steps to perform the same.

a) First you need to copy your grid zip file in your grid home, In my case it is /u01/home.

b) Now you need to change the ownership from root to grid so that you can unzip the file.

c) Now uzip the file using command unzip <filename>

d) Now you will able to see a folder called grid, go inside that folder then go to sshsetup directory.

e) Now run this command sh sshUserSetup.sh -hosts “rac1” grid user then you will get below output.

The output of this script is also logged into /tmp/sshUserSetup_2019-09-03-00-20-24.log
Hosts are rac1
user is grid
Platform:- Linux
Checking if the remote hosts are reachable
PING rac1.cluster.com (127.0.0.1) 56(84) bytes of data.
64 bytes from rac1.cluster.com (127.0.0.1): icmp_seq=1 ttl=64 time=0.299 ms
64 bytes from rac1.cluster.com (127.0.0.1): icmp_seq=2 ttl=64 time=0.121 ms
64 bytes from rac1.cluster.com (127.0.0.1): icmp_seq=3 ttl=64 time=0.114 ms
64 bytes from rac1.cluster.com (127.0.0.1): icmp_seq=4 ttl=64 time=0.119 ms
64 bytes from rac1.cluster.com (127.0.0.1): icmp_seq=5 ttl=64 time=0.120 ms

— rac1.cluster.com ping statistics —
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 0.114/0.154/0.299/0.073 ms
Remote host reachability check succeeded.
The following hosts are reachable: rac1.
The following hosts are not reachable: .
All hosts are reachable. Proceeding further…
firsthost rac1
numhosts 1
The script will setup SSH connectivity from the host rac1.cluster.com to all
the remote hosts. After the script is executed, the user can use SSH to run
commands on the remote hosts or copy files between this host rac1.cluster.com
and the remote hosts without being prompted for passwords or confirmations.

NOTE 1:
As part of the setup procedure, this script will use ssh and scp to copy
files between the local host and the remote hosts. Since the script does not
store passwords, you may be prompted for the passwords during the execution of
the script whenever ssh or scp is invoked.

NOTE 2:
AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY
AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEDGES TO THESE
directories.

Do you want to continue and let the script make the above mentioned changes (yes/no)?
yes

The user chose yes
Please specify if you want to specify a passphrase for the private key this script will create for the local host. Passphrase is used to encrypt the private key and makes SSH much more secure. Type ‘yes’ or ‘no’ and then press enter. In case you press ‘yes’, you would need to enter the passphrase whenever the script executes ssh or scp.
The estimated number of times the user would be prompted for a passphrase is 2. In addition, if the private-public files are also newly created, the user would have to specify the passphrase on one additional occasion.
Enter ‘yes’ or ‘no’.
no

The user chose no
Creating .ssh directory on local host, if not present already
Creating authorized_keys file on local host
Changing permissions on authorized_keys to 644 on local host
Creating known_hosts file on local host
Changing permissions on known_hosts to 644 on local host
Creating config file on local host
If a config file exists already at /u01/home/.ssh/config, it would be backed up to /u01/home/.ssh/config.backup.
Removing old private/public keys on local host
Running SSH keygen on local host with empty passphrase
Generating public/private rsa key pair.
Your identification has been saved in /u01/home/.ssh/id_rsa.
Your public key has been saved in /u01/home/.ssh/id_rsa.pub.
The key fingerprint is:
0a:2c:51:ab:b3:84:d9:fe:e1:fb:f3:08:7e:58:31:4c grid@rac1.cluster.com
The key’s randomart image is:
+–[ RSA 1024]—-+
| . |
| . .E |
| . .o |
| + + + |
|o * o oS |
| o + … |
| o oo. |
| +.oo. |
| =+oo. |
+—————–+
Creating .ssh directory and setting permissions on remote host rac1
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR grid. THIS IS AN SSH REQUIREMENT.
The script would create ~grid/.ssh/config file on remote host rac1. If a config file exists already at ~grid/.ssh/config, it would be backed up to ~grid/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac1.
Warning: Permanently added ‘rac1’ (RSA) to the list of known hosts.
grid@rac1’s password:
Done with creating .ssh directory and setting permissions on remote host rac1.
Copying local host public key to the remote host rac1
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac1.
grid@rac1’s password:
Done copying local host public key to the remote host rac1
cat: /u01/home/.ssh/known_hosts.tmp: No such file or directory
cat: /u01/home/.ssh/authorized_keys.tmp: No such file or directory
SSH setup is complete.

————————————————————————
Verifying SSH setup
===================
The script will now run the date command on the remote nodes using ssh
to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP,
THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR
PASSWORDS. If you see any output other than date or are prompted for the
password, ssh is not setup correctly and you will need to resolve the
issue and set up ssh again.
The possible causes for failure could be:
1. The server settings in /etc/ssh/sshd_config file do not allow ssh
for user grid.
2. The server may have disabled public key based authentication.
3. The client public key on the server may be outdated.
4. ~grid or ~grid/.ssh on the remote host may not be owned by grid.
5. User may not have passed -shared option for shared remote users or
may be passing the -shared option for non-shared remote users.
6. If there is output in addition to the date, but no password is asked,
it may be a security alert shown as part of company policy. Append the
additional text to the <OMS HOME>/sysman/prov/resources/ignoreMessages.txt file.
————————————————————————
–rac1:–
Running /usr/bin/ssh -x -l grid rac1 date to verify SSH connectivity has been setup from local host to rac1.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
Tue Sep 3 00:21:05 IST 2019
————————————————————————
SSH verification complete.

f) Now go to the home directory through cd command and go to directory called .ssh

Command : – cd .ssh

g) Now you will able to see the below files.

[grid@rac1 .ssh]$ ll
total 24
-rw-r–r– 1 grid oinstall 462 Sep 3 00:21 authorized_keys
-rw-r–r– 1 grid oinstall 23 Sep 3 00:21 config
-rw-r–r– 1 grid oinstall 21 Sep 3 00:21 config.backup
-rw——- 1 grid oinstall 883 Sep 3 00:20 id_rsa
-rw-r–r– 1 grid oinstall 231 Sep 3 00:20 id_rsa.pub
-rw-r–r– 1 grid oinstall 772 Sep 3 00:21 known_hosts

h) Now we need to copy the content of id_rsa.pub file to your second node of RAC under authorized_keys and vice versa.

i) After this setup you will be able to connect to node 2 from node 1 without entering the password.

You need to do the above step in second node as well.

[grid@rac1 .ssh]$ ssh rac2 date
Tue Sep 3 00:30:00 IST 2019
[grid@rac1 .ssh]$ ssh rac1 date
Tue Sep 3 00:30:08 IST 2019

[grid@rac2 .ssh]$ ssh rac1 date
Tue Sep 3 00:29:49 IST 2019
[grid@rac2 .ssh]$ ssh rac2 date
Tue Sep 3 00:30:14 IST 2019

==> Disk Creation

Now to store our data we need to create required disks, In my case I am using two disks called DATA and OCR_VD.

Before creating the disk you need to configure the oracle ASM library driver.

[root@rac1 Desktop]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets (‘[]’). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface [grid]:
Default group to own the driver interface [oinstall]:
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

Command to create disks: –

[root@rac1 Desktop]# oracleasm createdisk DATA /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 Desktop]# oracleasm createdisk OCR_VD /dev/sdb2
Writing disk header: done
Instantiating disk: done

Note : – For second node you just need to follow the below steps only.

1) Configure the Oracle ASM library driver.

2) oracleasm exit

3) oracleasm init

4) oracleasm scandisks

5) oracleasm listdisks

==> Pre Installation Cluster Setup (Cluvfy)

Before start our Cluster Installation part, we should do the pre-installation check to avoid further issues.

To perform the pre-installation check we will use below command.

Command: – ./runcluvfy.sh stage -pre crsinst -n rac1,rac2

Output: –

[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2

Performing pre-checks for cluster services setup

Checking node reachability…
Node reachability check passed from node “rac1”

Checking user equivalence…
User equivalence check passed for user “grid”

Checking node connectivity…

Checking hosts config file…

Verification of the hosts config file successful

Node connectivity passed for subnet “192.168.0.0” with node(s) rac2,rac1
TCP connectivity check passed for subnet “192.168.0.0”

Node connectivity passed for subnet “147.43.0.0” with node(s) rac2,rac1
TCP connectivity check passed for subnet “147.43.0.0”

Node connectivity passed for subnet “192.168.122.0” with node(s) rac2,rac1

Interfaces found on subnet “147.43.0.0” that are likely candidates for VIP are:
rac2 eth0:147.43.0.2
rac1 eth0:147.43.0.1

WARNING:
Interface subnet “147.43.0.0” does not have a gateway defined

Interfaces found on subnet “192.168.0.0” that are likely candidates for a private interconnect are:
rac2 eth1:192.168.0.2
rac1 eth1:192.168.0.1
Checking subnet mask consistency…
Subnet mask consistency check passed for subnet “192.168.0.0”.
Subnet mask consistency check passed for subnet “147.43.0.0”.
Subnet mask consistency check passed for subnet “192.168.122.0”.
Subnet mask consistency check passed.

Node connectivity check failed

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 “147.43.0.0” for multicast communication with multicast group “230.0.1.0”…
Check of subnet “147.43.0.0” for multicast communication with multicast group “230.0.1.0” passed.

Checking subnet “192.168.122.0” for multicast communication with multicast group “230.0.1.0”…
Check of subnet “192.168.122.0” for multicast communication with multicast group “230.0.1.0” passed.

Check of multicast communication passed.

Checking ASMLib configuration.
Check for ASMLib configuration passed.
Total memory check passed
Available memory check passed
Swap space check passed
Free disk space check passed for “rac2:/tmp”
Free disk space check passed for “rac1:/tmp”
Check for multiple users with UID value 5007 passed
User existence check passed for “grid”
Group existence check passed for “oinstall”
Group existence check passed for “dba”
Membership check for user “grid” in group “oinstall” [as Primary] passed
Membership check for user “grid” in group “dba” failed
Check failed on nodes:
rac2
Run level check passed
Hard limits check failed for “maximum open file descriptors”
Check failed on nodes:
rac2,rac1
Soft limits check passed for “maximum open file descriptors”
Hard limits check passed for “maximum user processes”
Soft limits check failed for “maximum user processes”
Check failed on nodes:
rac2,rac1
System architecture check passed
Kernel version check passed
Kernel parameter check passed for “semmsl”
Kernel parameter check passed for “semmns”
Kernel parameter check passed for “semopm”
Kernel parameter check passed for “semmni”
Kernel parameter check passed for “shmmax”
Kernel parameter check passed for “shmmni”
Kernel parameter check passed for “shmall”
Kernel parameter check passed for “file-max”
Kernel parameter check passed for “ip_local_port_range”
Kernel parameter check passed for “rmem_default”
Kernel parameter check passed for “rmem_max”
Kernel parameter check passed for “wmem_default”
Kernel parameter check passed for “wmem_max”
Kernel parameter check passed for “aio-max-nr”
Package existence check passed for “binutils”
Package existence check passed for “compat-libcap1”
Package existence check passed for “compat-libstdc++-33(x86_64)”
Package existence check passed for “libgcc(x86_64)”
Package existence check passed for “libstdc++(x86_64)”
Package existence check passed for “libstdc++-devel(x86_64)”
Package existence check passed for “sysstat”
Package existence check passed for “gcc”
Package existence check passed for “gcc-c++”
Package existence check passed for “ksh”
Package existence check passed for “make”
Package existence check passed for “glibc(x86_64)”
Package existence check passed for “glibc-devel(x86_64)”
Package existence check passed for “libaio(x86_64)”
Package existence check passed for “libaio-devel(x86_64)”
Check for multiple users with UID value 0 passed
Current group ID check passed

Starting check for consistency of primary group of root user

Check for consistency of root user’s primary group passed

Starting Clock synchronization checks using Network Time Protocol(NTP)…

NTP Configuration file check started…
No NTP Daemons or Services were found to be running

Clock synchronization check using Network Time Protocol(NTP) passed

Core file name pattern consistency check passed.

User “grid” is not part of “root” group. Check passed
Default user file creation mask check passed
Checking consistency of file “/etc/resolv.conf” across nodes

File “/etc/resolv.conf” does not have both domain and search entries defined
domain entry in file “/etc/resolv.conf” is consistent across nodes
search entry in file “/etc/resolv.conf” is consistent across nodes
All nodes have one search entry defined in file “/etc/resolv.conf”
PRVF-5636 : The DNS response time for an unreachable node exceeded “15000” ms on following nodes: rac2,rac1

File “/etc/resolv.conf” is not consistent across nodes

Time zone consistency check passed

Pre-check for cluster services setup was successful on all the nodes.

Now all prerequisites part has been completed now we will move towards Grid Infrastucture.

Installation of Grid Infrastructure Software

1) Now again you need to go inside the grid folder where you have unzip it. In my case it is under /u01/grid.

Grid Infrastructure Installation Path

2) Execute the runInstaller file to begin the Grid Infrastructure Installation setup.

Command: – ./runInstaller

3) Choose the option “Skip software updates” and click on Next button.

Grid Software Updates

4) Select the first option “Install and Configure Oracle Grid Infrastructure for a Cluster” and click on Next button.

Install and Configure Oracle Grid Infrastructure for a Cluster option

5) Select “Advanced Installation” option and click on Next Button.

Choose Advance Installation option

6) Select Language as “English” and click on Next Button.

7) Select the SCAN name, Cluster name, Scan port are per your requirement.

Cluster name, Scan name and Scan port

8) Now you need to add both the nodes under Cluster Node informartion.

Click on add—> put the second node public hostname and Virtual host name—>click on SSH Connectivity—>Grid OS username—>GRID OS password—>click on setup

public hostname and Virtual Hostname nodes info

9) Under Specify “Network Interface Usage” option check eth0 and eth1 IPaddressess are assigned correctly or not.

Network Interface Usage Info

10) Select “Oracle Automatic Storage management (Oracle ASM)” option under Storage option.

Choose ASM under Storage option

11) Now we need to create Disk Group, I am creating only one here which is DATA and will create OCR_VD later.

DATA Disk Group Creation

12) Next step is to “Specify ASM password”, you can create as per your requirement.

13) Next is Failure Isolation Option just click on Don’t use Intelligence Platform management Interface option.

14) Next is to choose the Privileged Operating System Groups, You can choose as per your requirements.

Privileged Operating Group permissions

15) Now you need to specify Installation Location of Oracle Base and Oracle Home.

Installation Location

16) Next you need to choose your Inventory Location.

Inventory Location

17) Next step is the prerequisites check, Some conditions will check here and then you will need to click on the Next Button.

18) before going for the installation you will get summary page, you need to cross check all the things again before clicking on the Install button.

Summary

19) When Cluster Instllation will get complete It will show as below.

Cluster Installation Completed

Now you can check the cluster status with the help of below command.

[grid@rac1 app]$ crsctl check cluster -all
**************************************************************
rac1:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
rac2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
*************************************************************

Installation of Oracle RDBMS Software

To the Installation of the Oracle RDBMS Software, you need to follow below steps.

1) You need to copy RDBMS zip file to the oracle home directory which we have created earlier and then need to change the ownership and permission to Oracle so that you can unzip it from Oracle user.

Copied File to Oracle Home Location: –

[root@rac1 Oracle DBA Softwares]# cp p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip /u02/home

Command to change the ownership: –

[root@rac1 Oracle DBA Softwares]# chown -R oracle:oinstall /u02/home

Permission and Ownership Output of the mountpoints: –

drwxr-xr-x. 6 grid oinstall 4096 Sep 9 00:11 u01
drwxr-xr-x. 4 oracle oinstall 4096 Sep 2 21:52 u02

2) Now we will unzip the software from Oracle User.

[oracle@rac1 ~]$ unzip p13390677_112040_Linux-x86-64_1of7.zip

After unzipping the file you will see a directory called database.

Output of the directory: –

[oracle@rac1 ~]$ ls -lrt
total 2487212
drwxr-xr-x 7 oracle oinstall 4096 Aug 27 2013 database

3) Now we will create the database.

4) go inside the “database directory” and then execute the runInstaller command.

5) Skip the Security Updates and click on Next button.

Skip the Security Updates

6) Skip the Software Updates also.

7) Select the Install database software only option and click on Next button.

Install Database software only

8) Choose the Oracle Real Application Cluster Database Installation option and click on Next button.

Choose the Oracle RAC database installation option

Click on the SSH Connectivity—> put the oracle OS password—> Click on Setup option to create the SSH Connectivity.

9) Choose the language as English.

10) Choose the Enterprise Edition option and Click on Next button.

Choose the Enterprise Edition option

11) Choose the Software Location and Oracle Base Location as per your requirement.

Choose the Software location and Oracle base location

12) Choose the Operating System groups as default and Click on Next button.

13) Then click on Install to proceed with the Software installation.

Oracle Software Installation is in progress

14) When Setup was complete, you will get below output.

Setup was Successful

Now at last but not the least we will do the database installation part.

1) Login as oracle User and go to ORACLE_HOME/bin direcotry and execute ./dbca command.

[oracle@rac1 bin]$ cd /u02/app/oracle/product/11.2.0/dbhome_1/bin

[oracle@rac1 bin]$ ./dbca

2) Choose the Oracle Real Application Cluster Database Option and Click on Next button.

Choose Oracle Real Application Database option

3) Choose Option Create a database and Click on Next Button.

4) Choose General purpose or Transaction processing Option and Click on Next button.

5)  Chosse your Global Database name and select both the nodes.

Give Global Database name and select both the nodes

6) Now set the password of SYS, SYSTSM, DBSNMP and SYSMAN and Click on Next button.

7) Now Select Storage type as ASM and give the Disk Group name if not visible.

8) Select the FRA, Memory Size, Characterset as per your requirement.

9) At last you will get the Summary report, if something went wrong you can rectify and resolve it.

Summary Report

10) Databbase has been created successfully we can see from below command database is also up and running.

[oracle@rac1 bin]$ ps -ef | grep pmon
grid 17569 1 0 15:08 ? 00:00:03 asm_pmon_+ASM1
oracle 48940 1 0 17:53 ? 00:00:00 ora_pmon_karan1
oracle 58177 19184 0 18:10 pts/0 00:00:00 grep pmon

[oracle@rac2 ~]$ ps -ef | grep pmon
grid 17283 1 0 14:24 ? 00:00:03 asm_pmon_+ASM2
oracle 61454 1 0 17:53 ? 00:00:00 ora_pmon_karan2
oracle 67865 67825 0 18:11 pts/0 00:00:00 grep pmon

Hope this article will help you!!

If this article is useful for you please comment, share with your friends.

In case of any issues please send your query in below comment section.

Karan

Hi, Myself Karan Rajpoot, I am an Oracle DBA and Professional Blogger. I have created this blog to share all the useful content related to the Technology world.

This Post Has 2 Comments

Leave a Reply

Close Menu