Oracle 19c RAC Installation Steps on Linux 8: In this article we are going to configure a 2 Node Oracle 19c RAC setup on OEL 8.10 (Oracle Enterprise Linux 8.10). For this installation we used 2 users, one is oracle to install Database and another is grid to install Grid.
Environment Details:

Oracle 19c RAC Installation complete Steps:
1. Server Configuration:
1.1 Hardware Requirements:
1.2 Software Requirements:
2. Download and copy required Software on one node:
3. Configure Hosts File:
4. Configure DNS and add DNS server details in /etc/resolv.conf:
5. Prerequisites for RAC Installation (Perform on all Nodes):
5.1 Create required Users and Groups:
5.2 Create Directories & Change Permission:
5.3 Install required RPM’s For Oracle RAC Configuration:
5.4 Install Additional RPM’s For Oracle RAC Configuration:
5.5 Install Additional RPM’s For Oracle ASM Configuration:
5.6 Disabling Firewall service:
5.7 Disabling SELinux:
5.8 Configure Oracle ASM:
5.9 Create Partition for ASM disks:
5.10 Disk Creation in ASM:
5.11 Chrony NTP Configuration:
5.12 Verify the Network configuration:
5.13 Stop or Remove virbr0 Network Interface:
5.14 Unzip the Oracle and Grid Binary:
5.15 Install the cvudisk package on all nodes:
5.16 Configure SSH Setup Between all Nodes:
6. Pre-checks for RAC Setup:
7. Install and Configure Oracle 19c Grid Infrastructure for a Cluster:
7.1 Select Grid Option:
7.2 Select Cluster Configuration:
7.3 Grid Plug and Play Information:
7.4 Cluster Node Information:
7.5 Specify Network Interface Usage:
7.6 Storage Option Information:
7.7 Create Grid Infrastructure Management Repository:
7.8 Create ASM Disk Group:
7.9 Specify ASM Password:
7.10 Failure Isolation Support:
7.11 Specify Management Options:
7.12 Privileged Operating System Groups:
7.13 Specify Installation Location:
7.14 Create Inventory directory:
7.15 Root script execution configuration:
7.16 Perform Prerequisite Checks:
7.17 Summary:
7.18 Execute Configuration scripts:
7.19 Finish Grid Installation:
7.20 Check the Cluster services status:
8. Run ASM Configuration Assistant to create ASM Disk Groups:
8.1 Create Disk Group:
8.2 Create DATA Disk Group:
8.3 RECO Disk Group:
8.4 Disk Groups creation completed:
9. Install Oracle Database 19c software only:
9.1 Configuration Option:
9.2 Select Database Installation Option:
9.3 Select List of Nodes:
9.4 Choose Database Edition:
9.5 Specify Installation Location:
9.6 Privileged Operating System groups:
9.7 Root script execution configuration:
9.8 Oracle Binary Installation Summary:
9.9 Installation Progress status:
9.10 Execute Configuration scripts:
9.11 Oracle Binary Installation Finish:
10. Create a RAC Database:
10.1 Database Operation:
10.2 Database Creation Mode:
10.3 Select Database Deployment Type:
10.4 Select List of Nodes:
10.5 Specify Database Identification Details:
10.6 Database Storage Option:
10.7 Fast Recovery Option:
10.8 Oracle Data Vault Config Option:
10.9 Specify Configuration Options:
10.10 Specify Management Options:
10.11 Database User Credentials:
10.12 Select Database Creation Option:
10.13 Database Creation Summary:
10.14 Installation Progress Page:
10.15 Database Creation Finish Page:
10.16 Check Database status:
Server Configuration:
Hardware Requirements:
The first thing we need to verify the hardware requirements for an Oracle 19c (19.3) RAC installation:
Servers:
1. Minimum 2 servers (nodes) with similar hardware configurations.
2. Minimum 8 GB Physical RAM for each nodes. (Here we use 16 GB RAM)
3. Minimum Swap space at least equal to RAM. (Here we use 16 GB swap)
Network:
Minimum 2 network interfaces (NIC) on each server. One for the public network and one for the private interconnect. Make sure 2 NIC should be same name on each server and assigned IP's for Public and Private should be in diffenent subnet mask.
Oracle recomended that total 9 IPs required to configure a 2 node Cluster:
2 Public IP (each individual server to have a different IP)
2 Private IP (each individual server to have a different IP) Diff subnet than other IP
2 Virtual IP (each individual server to have a different IP)
3 SCAN IP (per RAC setup)
Storage:
Filesystem Storage required:
To install Grid Binaries on each node: - 100 GB - /u01 (Mount point)
To install Oracle Binaries on each node: - 100 GB - /u02 (Mount point)
For RAC installation /tmp on each node: - 10 GB - /tmp (Mount point)
Shared storage accessible by all nodes, such as SAN or NAS. Here we taken below Shared Raw Disk for this installation:
Shared Raw Disk - 3 10 GB each For OCR and Voting Disk (Normal Redundancy)
Shared Raw Disk - 1 100 GB For RECO (External Redundancy)
Shared Raw Disk - 1 100 GB For DATA (External Redundancy)
Software Requirements:
Operating System:
Here we use Oracle Linux 8.10 OS. It will work with the Latest Linux Version i.e. Linux 7, 8 or 9
Oracle Grid Infrastructure: Oracle Database - Enterprise Edition - Version 19.3.0.0.0
Oracle Database Software: Oracle Database - Enterprise Edition - Version 19.3.0.0.0
Download and copy required Software on one node:
Download the Oracle Database 19c Enterprise Edition 19.3.0.0.0 software from Oracle Software Delivery Cloud and copy the same on one node.

Configure Hosts File:
Do changes on both nodes.
Node-1:
==================
[root@node-1 ~]# cat /etc/hosts
## Public IPs ##
192.168.xx.xx node-1.orakldba.com node-1
192.168.xx.xx node-2.orakldba.com node-2
## Private IPs ##
192.168.yyy.yyy node-1-priv.orakldba.com node-1-priv
192.168.yyy.yyy node-2-priv.orakldba.com node-2-priv
## Virtual IPs ##
192.168.xx.xx node-1-vip.orakldba.com node-1-vip
192.168.xx.xx node-2-vip.orakldba.com node-2-vip
## Scan IPs ##
192.168.xx.xx test-scan.orakldba.com test-scan
192.168.xx.xx test-scan.orakldba.com test-scan
192.168.xx.xx test-scan.orakldba.com test-scan
[root@node-1 ~]#
Node-2:
==================
[root@node-2 ~]# cat /etc/hosts
## Public IPs ##
192.168.xx.xx node-1.orakldba.com node-1
192.168.xx.xx node-2.orakldba.com node-2
## Private IPs ##
192.168.yyy.yyy node-1-priv.orakldba.com node-1-priv
192.168.yyy.yyy node-2-priv.orakldba.com node-2-priv
## Virtual IPs ##
192.168.xx.xx node-1-vip.orakldba.com node-1-vip
192.168.xx.xx node-2-vip.orakldba.com node-2-vip
## Scan IPs ##
192.168.xx.xx test-scan.orakldba.com test-scan
192.168.xx.xx test-scan.orakldba.com test-scan
192.168.xx.xx test-scan.orakldba.com test-scan
[root@node-2 ~]#
Configure DNS and add DNS server details in /etc/resolv.conf:
Make sure IP addresses entry from /etc/hosts file added in DNS. Also need to configure the /etc/resolv.conf file with search domain and DNS server details.
Node-1:
=============================
[root@node-1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search orakldba.com
nameserver 192.168.xx.xx
nameserver 192.168.xx.xx
[root@node-1 ~]#
Node-2:
=============================
[root@node-2 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search orakldba.com
nameserver 192.168.xx.xx
nameserver 192.168.xx.xx
[root@node-2 ~]#
Prerequisites for RAC Installation: (Perform on both Nodes)
Create required Users and Groups:
On Node-1:
=============
[root@node-1 ~]# groupadd -g 54321 oinstall
[root@node-1 ~]# groupadd -g 54322 dba
[root@node-1 ~]# groupadd -g 54323 oper
[root@node-1 ~]# groupadd -g 54324 backupdba
[root@node-1 ~]# groupadd -g 54325 dgdba
[root@node-1 ~]# groupadd -g 54326 kmdba
[root@node-1 ~]# groupadd -g 54327 asmdba
[root@node-1 ~]# groupadd -g 54328 asmoper
[root@node-1 ~]# groupadd -g 54329 asmadmin
[root@node-1 ~]# groupadd -g 54330 racdba
[root@node-1 ~]#
[root@node-1 ~]# useradd -u 54321 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,kmdba,dgdba,backupdba,racdba oracle
[root@node-1 ~]#
[root@node-1 ~]# useradd -u 54322 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,racdba grid
[root@node-1 ~]#
[root@node-1 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
[root@node-1 ~]#
[root@node-1 ~]# id grid
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
[root@node-1 ~]#
[root@node-1 ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# passwd grid
Changing password for user grid.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node-1 ~]#
On Node-2:
===============
[root@node-2 ~]# groupadd -g 54321 oinstall
[root@node-2 ~]# groupadd -g 54322 dba
[root@node-2 ~]# groupadd -g 54323 oper
[root@node-2 ~]# groupadd -g 54324 backupdba
[root@node-2 ~]# groupadd -g 54325 dgdba
[root@node-2 ~]# groupadd -g 54326 kmdba
[root@node-2 ~]# groupadd -g 54327 asmdba
[root@node-2 ~]# groupadd -g 54328 asmoper
[root@node-2 ~]# groupadd -g 54329 asmadmin
[root@node-2 ~]# groupadd -g 54330 racdba
[root@node-2 ~]#
[root@node-2 ~]# useradd -u 54321 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,kmdba,dgdba,backupdba,racdba oracle
[root@node-2 ~]#
[root@node-2 ~]# useradd -u 54322 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,racdba grid
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
[root@node-2 ~]#
[root@node-2 ~]# id grid
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54327(asmdba),54328(asmoper),54329(asmadmin),54330(racdba)
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# passwd grid
Changing password for user grid.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node-2 ~]#
Create Directories & Change Permission:
Node-1:
===================
[root@node-1 ~]# mkdir -p /u01/app/oracle/product/19c/dbhome_1
[root@node-1 ~]# mkdir -p /u02/app/19c/grid
[root@node-1 ~]# mkdir -p /u02/app/grid_base
[root@node-1 ~]# chown -R oracle:oinstall /u01
[root@node-1 ~]# chmod -R 775 /u01
[root@node-1 ~]# chown -R grid:oinstall /u02
[root@node-1 ~]# chmod -R 775 /u02
Node-2:
====================
[root@node-2 ~]# mkdir -p /u01/app/oracle/product/19c/dbhome_1
[root@node-2 ~]# mkdir -p /u02/app/19c/grid
[root@node-2 ~]# mkdir -p /u02/app/grid_base
[root@node-2 ~]# chown -R oracle:oinstall /u01
[root@node-2 ~]# chmod -R 775 /u01
[root@node-2 ~]# chown -R grid:oinstall /u02
[root@node-2 ~]# chmod -R 775 /u02
Install required RPM’s For Oracle RAC Configuration:
Node-1:
===============
Here we use OEL 8.10 so, If you plan to use the "oracle-database-preinstall-19c" package to perform all your prerequisite setup, issue the following command.
[root@node-1 ~]# dnf install oracle-database-preinstall-19c.x86_64 -y
[root@node-1 ~]#
If you are using RHEL8 or CentOS8, you can pick up the RPM from the OL8 repository and install it. It will pull the dependencies from your normal repositories.
[root@node-1 ~]# curl -o oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 31828 100 31828 0 0 235k 0 --:--:-- --:--:-- --:--:-- 235k
[root@node-1 ~]#
[root@node-1 ~]# ls -ltrh oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
-rw-r--r--. 1 root root 32K Apr 7 11:29 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
[root@node-1 ~]#
[root@node-1 ~]# dnf -y localinstall oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
Node-2:
==============
[root@node-2 ~]# dnf install oracle-database-preinstall-19c.x86_64 -y
[root@node-2 ~]#
Install Additional RPM’s For Oracle RAC Configuration:
Execute below listed commands as root user from all nodes.
dnf install -y bc
dnf install -y binutils
dnf install -y compat-libcap1
dnf install -y compat-libstdc++-33
dnf install -y dtrace-modules
dnf install -y dtrace-modules-headers
dnf install -y dtrace-modules-provider-headers
dnf install -y dtrace-utils
dnf install -y elfutils-libelf
dnf install -y elfutils-libelf-devel
dnf install -y fontconfig-devel
dnf install -y glibc
dnf install -y glibc-devel
dnf install -y ksh
dnf install -y libaio
dnf install -y libaio-devel
dnf install -y libdtrace-ctf-devel
dnf install -y libXrender
dnf install -y libXrender-devel
dnf install -y libX11
dnf install -y libXau
dnf install -y libXi
dnf install -y libXtst
dnf install -y libgcc
dnf install -y librdmacm-devel
dnf install -y libstdc++
dnf install -y libstdc++-devel
dnf install -y libxcb
dnf install -y make
dnf install -y net-tools # Clusterware
dnf install -y nfs-utils # ACFS
dnf install -y python # ACFS
dnf install -y python-configshell # ACFS
dnf install -y python-rtslib # ACFS
dnf install -y python-six # ACFS
dnf install -y targetcli # ACFS
dnf install -y smartmontools
dnf install -y sysstat
dnf install -y gcc
dnf install -y unixODBC
dnf install -y libnsl
dnf install -y libnsl.i686
dnf install -y libnsl2
dnf install -y libnsl2.i686
Install Additional RPM’s For Oracle ASM Configuration:
First you need to download the required oracleasm packages using below link and execute on all nodes:
oracleasmlib-3.0.0-13.el8.x86_64.rpm
oracleasm-support-3.0.0-7.el8.x86_64.rpm
kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64.rpm
Node-1:
================
[root@node-1 ~]# dnf install oracleasm -y
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# dnf localinstall oracleasmlib-3.0.0-13.el8.x86_64.rpm -y
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# curl -o oracleasm-support-3.0.0-7.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/oracleasm-support-3.0.0-7.el8.x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 108k 100 108k 0 0 648k 0 --:--:-- --:--:-- --:--:-- 648k
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# ls -ltrh oracleasm-support-3.0.0-7.el8.x86_64.rpm
-rw-r--r--. 1 root root 109K Apr 7 13:16 oracleasm-support-3.0.0-7.el8.x86_64.rpm
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# dnf localinstall oracleasm-support-3.0.0-7.el8.x86_64.rpm -y
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# curl -o kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64.rpm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 46012 100 46012 0 0 301k 0 --:--:-- --:--:-- --:--:-- 301k
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# ls -ltrh kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64.rpm
-rw-r--r-- 1 root root 45K Apr 14 20:47 kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64.rpm
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# dnf localinstall kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64.rpm -y
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# rpm -qa | grep oracleasm
kmod-redhat-oracleasm-2.0.8-18.2.0.1.el8_10.x86_64
oracleasmlib-3.0.0-13.el8.x86_64
oracleasm-support-3.0.0-7.el8.x86_64
[root@node-1 ~]#
Node-2:
==================
Copy and Execute the same packages on all Nodes
Disabling Firewall service:
Stop and Disabled the Firewall service.
Node-1:
==================
[root@node-1 ~]# systemctl stop firewalld.service
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# systemctl disable firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node-1 ~]#
Node-2:
==================
[root@node-2 ~]# systemctl stop firewalld.service
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# systemctl disable firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node-2 ~]#
Disabling SELinux:
Node-1:
=======================
[root@node-1 ~]# cat /etc/selinux/config
SELINUX=disabled
Node-2:
=======================
[root@node-2 ~]# cat /etc/selinux/config
SELINUX=disabled
Configure Oracle ASM:
Node-1:
=======================
[root@node-1 ~]# /usr/sbin/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
Maximum number of disks that may be used in ASM system [2048]:
Enable iofilter if kernel supports it (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# /usr/sbin/oracleasm status
Checking if the oracleasm kernel module is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Checking which I/O Interface is in use: oracleasm driver (KABI_V2)
[root@node-1 ~]#
Node-2:
=======================
[root@node-2 ~]# /usr/sbin/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
Maximum number of disks that may be used in ASM system [2048]:
Enable iofilter if kernel supports it (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# /usr/sbin/oracleasm status
Checking if the oracleasm kernel module is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Checking which I/O Interface is in use: oracleasm driver (KABI_V2)
[root@node-2 ~]#
Create Partition for ASM disks:
Node-1:
===================
[root@node-1 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 090611b8-5f17-4d83-9447-b7d2b38c270e /boot
└─sda3 LVM2_member Uk47wR-aRWA-RWk4-lEAI-h1kq-7fSJ-WXzHXt
├─ol-root xfs d036c822-3972-4c22-a5a6-a1a50dcca2be /
├─ol-swap swap dc7eb0f1-1920-4e97-8715-77641fece406 [SWAP]
├─ol-u02 xfs 23b5ef79-b295-4a75-a686-e2fd813c3810 /u02
└─ol-u01 xfs 03861e6d-e039-4952-ab0c-4c07185fb3e8 /u01
sdb
sdc
sdd
sde
sr0
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 210 GiB, 225485783040 bytes, 440401920 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3a317097
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-440401919, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-440401919, default 440401919): +100G
Created a new partition 1 of type 'Linux' and of size 100 GiB.
Command (m for help): p
Disk /dev/sdb: 210 GiB, 225485783040 bytes, 440401920 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3a317097
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 209717247 209715200 100G 83 Linux
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
First sector (209717248-440401919, default 209717248):
Last sector, +sectors or +size{K,M,G,T,P} (209717248-440401919, default 440401919): +100G
Created a new partition 2 of type 'Linux' and of size 100 GiB.
Command (m for help): p
Disk /dev/sdb: 210 GiB, 225485783040 bytes, 440401920 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3a317097
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 209717247 209715200 100G 83 Linux
/dev/sdb2 209717248 419432447 209715200 100G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x18f1c9ba
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Command (m for help): p
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x18f1c9ba
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 20971519 20969472 10G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# fdisk /dev/sdd
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdd: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x33146fa1
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Command (m for help): p
Disk /dev/sdd: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x33146fa1
Device Boot Start End Sectors Size Id Type
/dev/sdd1 2048 20971519 20969472 10G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# fdisk /dev/sde
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sde: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1d04a8ae
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
Created a new partition 1 of type 'Linux' and of size 10 GiB.
Command (m for help): p
Disk /dev/sde: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1d04a8ae
Device Boot Start End Sectors Size Id Type
/dev/sde1 2048 20971519 20969472 10G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 090611b8-5f17-4d83-9447-b7d2b38c270e /boot
└─sda3 LVM2_member Uk47wR-aRWA-RWk4-lEAI-h1kq-7fSJ-WXzHXt
├─ol-root xfs d036c822-3972-4c22-a5a6-a1a50dcca2be /
├─ol-swap swap dc7eb0f1-1920-4e97-8715-77641fece406 [SWAP]
├─ol-u02 xfs 23b5ef79-b295-4a75-a686-e2fd813c3810 /u02
└─ol-u01 xfs 03861e6d-e039-4952-ab0c-4c07185fb3e8 /u01
sdb
├─sdb1
└─sdb2
sdc
└─sdc1
sdd
└─sdd1
sde
└─sde1
sr0
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# ls -ltr /dev/sdb1 /dev/sdb2 /dev/sdc1 /dev/sdd1 /dev/sde1
brw-rw---- 1 root disk 8, 33 Apr 9 18:59 /dev/sdc1
brw-rw---- 1 root disk 8, 49 Apr 9 18:59 /dev/sdd1
brw-rw---- 1 root disk 8, 18 Apr 9 18:59 /dev/sdb2
brw-rw---- 1 root disk 8, 65 Apr 9 18:59 /dev/sde1
brw-rw---- 1 root disk 8, 17 Apr 9 18:59 /dev/sdb1
[root@node-1 ~]#
Node-2:
============================
[root@node-2 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 2a29a897-97b7-418c-82ed-ade6e481febd /boot
└─sda3 LVM2_member X055H9-JBH1-VvPt-KZi9-LeeJ-wfGJ-SauaEX
├─ol-root xfs 5213e978-b8bf-4ac8-ad97-58c4ba673029 /
├─ol-swap swap 1b445b11-d537-4c1c-b259-2b2909401f01 [SWAP]
├─ol-u02 xfs f625dc97-1fe0-4bbe-839c-986cc0c02c12 /u02
└─ol-u01 xfs 2dfd8056-b78a-4b6f-978b-c9c82a2fbbb6 /u01
sdb
sdc
sdd
sde
sr0
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# partprobe
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 2a29a897-97b7-418c-82ed-ade6e481febd /boot
└─sda3 LVM2_member X055H9-JBH1-VvPt-KZi9-LeeJ-wfGJ-SauaEX
├─ol-root xfs 5213e978-b8bf-4ac8-ad97-58c4ba673029 /
├─ol-swap swap 1b445b11-d537-4c1c-b259-2b2909401f01 [SWAP]
├─ol-u02 xfs f625dc97-1fe0-4bbe-839c-986cc0c02c12 /u02
└─ol-u01 xfs 2dfd8056-b78a-4b6f-978b-c9c82a2fbbb6 /u01
sdb
├─sdb1
└─sdb2
sdc
└─sdc1
sdd
└─sdd1
sde
└─sde1
sr0
[root@node-2 ~]#
[root@node-2 ~]# ls -ltr /dev/sdb1 /dev/sdb2 /dev/sdc1 /dev/sdd1 /dev/sde1
brw-rw---- 1 root disk 8, 65 Apr 9 19:00 /dev/sde1
brw-rw---- 1 root disk 8, 18 Apr 9 19:00 /dev/sdb2
brw-rw---- 1 root disk 8, 17 Apr 9 19:00 /dev/sdb1
brw-rw---- 1 root disk 8, 49 Apr 9 19:00 /dev/sdd1
brw-rw---- 1 root disk 8, 33 Apr 9 19:00 /dev/sdc1
[root@node-2 ~]#
Disk Creation in ASM:
Node-1:
=============================
[root@node-1 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 090611b8-5f17-4d83-9447-b7d2b38c270e /boot
└─sda3 LVM2_member Uk47wR-aRWA-RWk4-lEAI-h1kq-7fSJ-WXzHXt
├─ol-root xfs d036c822-3972-4c22-a5a6-a1a50dcca2be /
├─ol-swap swap dc7eb0f1-1920-4e97-8715-77641fece406 [SWAP]
├─ol-u02 xfs 23b5ef79-b295-4a75-a686-e2fd813c3810 /u02
└─ol-u01 xfs 03861e6d-e039-4952-ab0c-4c07185fb3e8 /u01
sdb
├─sdb1
└─sdb2
sdc
└─sdc1
sdd
└─sdd1
sde
└─sde1
sr0
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# oracleasm status
Checking if the oracleasm kernel module is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Checking which I/O Interface is in use: oracleasm driver (KABI_V2)
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# oracleasm createdisk DATA01 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@node-1 ~]# oracleasm createdisk RECO01 /dev/sdb2
Writing disk header: done
Instantiating disk: done
[root@node-1 ~]# oracleasm createdisk OCR01 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@node-1 ~]# oracleasm createdisk OCR02 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@node-1 ~]# oracleasm createdisk OCR03 /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# oracleasm listdisks
DATA01
OCR01
OCR02
OCR03
RECO01
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# ls -ltr /dev/oracleasm/disks
total 0
brw-rw---- 1 grid oinstall 8, 17 Apr 14 21:26 DATA01
brw-rw---- 1 grid oinstall 8, 18 Apr 14 21:26 RECO01
brw-rw---- 1 grid oinstall 8, 65 Apr 14 21:26 OCR03
brw-rw---- 1 grid oinstall 8, 49 Apr 14 21:26 OCR02
brw-rw---- 1 grid oinstall 8, 33 Apr 14 21:26 OCR01
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 090611b8-5f17-4d83-9447-b7d2b38c270e /boot
└─sda3 LVM2_member Uk47wR-aRWA-RWk4-lEAI-h1kq-7fSJ-WXzHXt
├─ol-root xfs d036c822-3972-4c22-a5a6-a1a50dcca2be /
├─ol-swap swap dc7eb0f1-1920-4e97-8715-77641fece406 [SWAP]
├─ol-u02 xfs 23b5ef79-b295-4a75-a686-e2fd813c3810 /u02
└─ol-u01 xfs 03861e6d-e039-4952-ab0c-4c07185fb3e8 /u01
sdb
├─sdb1 oracleasm DATA01
└─sdb2 oracleasm RECO01
sdc
└─sdc1 oracleasm OCR01
sdd
└─sdd1 oracleasm OCR02
sde
└─sde1 oracleasm OCR03
sr0
[root@node-1 ~]#
Node-2:
==========================================
[root@node-2 ~]# oracleasm status
Checking if the oracleasm kernel module is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Checking which I/O Interface is in use: oracleasm driver (KABI_V2)
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# oracleasm listdisks
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "DATA01"
Instantiating disk "RECO01"
Instantiating disk "OCR01"
Instantiating disk "OCR02"
Instantiating disk "OCR03"
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# oracleasm listdisks
DATA01
OCR01
OCR02
OCR03
RECO01
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# ls -ltr /dev/oracleasm/disks
total 0
brw-rw---- 1 grid oinstall 8, 18 Apr 14 21:28 RECO01
brw-rw---- 1 grid oinstall 8, 65 Apr 14 21:28 OCR03
brw-rw---- 1 grid oinstall 8, 49 Apr 14 21:28 OCR02
brw-rw---- 1 grid oinstall 8, 33 Apr 14 21:28 OCR01
brw-rw---- 1 grid oinstall 8, 17 Apr 14 21:28 DATA01
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 2a29a897-97b7-418c-82ed-ade6e481febd /boot
└─sda3 LVM2_member X055H9-JBH1-VvPt-KZi9-LeeJ-wfGJ-SauaEX
├─ol-root xfs 5213e978-b8bf-4ac8-ad97-58c4ba673029 /
├─ol-swap swap 1b445b11-d537-4c1c-b259-2b2909401f01 [SWAP]
├─ol-u02 xfs f625dc97-1fe0-4bbe-839c-986cc0c02c12 /u02
└─ol-u01 xfs 2dfd8056-b78a-4b6f-978b-c9c82a2fbbb6 /u01
sdb
├─sdb1 oracleasm DATA01
└─sdb2 oracleasm RECO01
sdc
└─sdc1 oracleasm OCR01
sdd
└─sdd1 oracleasm OCR02
sde
└─sde1 oracleasm OCR03
sr0
[root@node-2 ~]#
Chrony NTP Configuration:
Node-1:
=============================
[root@node-1 ~]# systemctl enable chronyd.service
Created symlink /etc/systemd/system/multi-user.target.wants/chronyd.service → /usr/lib/systemd/system/chronyd.service.
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# systemctl restart chronyd.service
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# chronyc -a 'burst 4/4'
200 OK
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# chronyc -a makestep
200 OK
[root@node-1 ~]#
Node-2:
=============================
[root@node-2 ~]# systemctl enable chronyd.service
Created symlink /etc/systemd/system/multi-user.target.wants/chronyd.service → /usr/lib/systemd/system/chronyd.service.
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# systemctl restart chronyd.service
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# chronyc -a 'burst 4/4'
200 OK
[root@node-2 ~]#
[root@node-2 ~]#
[root@node-2 ~]# chronyc -a makestep
200 OK
[root@node-2 ~]#
Verify the Network configuration:
Make sure 2 NIC is there one for Public IP & another for Private IP. Also check the Public & Private IP Address are pingable from each RAC nodes.
Node-1:
=============================
[root@node-1 ~]# ping node-1
[root@node-1 ~]# ping node-2
[root@node-1 ~]#
[root@node-1 ~]# ping node-1-priv
[root@node-1 ~]# ping node-2-priv
[root@node-1 ~]#
[root@node-1 ~]# nslookup test-scan
Server: 192.168.xx.xx
Address: 192.168.xx.xx#53
Name: test-scan.orakldba.com
Address: 192.168.xx.xx
Name: test-scan.orakldba.com
Address: 192.168.xx.xx
Name: test-scan.orakldba.com
Address: 192.168.xx.xx
[root@node-1 ~]#
Node-2:
=============================
[root@node-2 ~]# ping node-1
[root@node-2 ~]# ping node-2
[root@node-2 ~]#
[root@node-2 ~]# ping node-1-priv
[root@node-2 ~]# ping node-2-priv
[root@node-2 ~]#
[root@node-2 ~]# nslookup test-scan
Server: 192.168.xx.xx
Address: 192.168.xx.xx#53
Name: test-scan.orakldba.com
Address: 192.168.xx.xx
Name: test-scan.orakldba.com
Address: 192.168.xx.xx
Name: test-scan.orakldba.com
Address: 192.168.xx.xx
[root@node-2 ~]#
Stop or Remove virbr0 Network Interface:
Node-1:
========================
[root@node-1 ]# nmcli con show
NAME UUID TYPE DEVICE
ens1 b37ff54d-6dcf-4952-bcc9-4b832f8b7f8c ethernet ens1
ens2 400cbc6e-03d3-4c02-bc64-a5ee7710e9ed ethernet ens2
virbr0 ac5c96b8-1d56-4f22-a88e-d091ca174d77 bridge virbr0
[root@node-1 ]#
[root@node-1 ]# nmcli con down virbr0
Connection 'virbr0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@node-1 ]#
[root@node-1 ]#
[root@node-1 ]# nmcli con show
NAME UUID TYPE DEVICE
ens1 b37ff54d-6dcf-4952-bcc9-4b832f8b7f8c ethernet ens1
ens2 400cbc6e-03d3-4c02-bc64-a5ee7710e9ed ethernet ens2
[root@node-1 ]#
Node-2:
========================
[root@node-2 ]# nmcli con show
NAME UUID TYPE DEVICE
ens1 8f3648f9-a1e5-4f89-a409-fb025d323dde ethernet ens1
ens2 fafc35d0-cbd2-4c07-828a-948e6e8d7ae4 ethernet ens2
virbr0 e693103a-2410-4365-ab18-f2c9337dd6e1 bridge virbr0
[root@node-2 ]#
[root@node-2 ]# nmcli con down virbr0
Connection 'virbr0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@node-2 ]#
[root@node-2 ]#
[root@node-2 ]# nmcli con show
NAME UUID TYPE DEVICE
ens1 8f3648f9-a1e5-4f89-a409-fb025d323dde ethernet ens1
ens2 fafc35d0-cbd2-4c07-828a-948e6e8d7ae4 ethernet ens2
[root@node-2 ]#
Unzip the Oracle and Grid Binary:
Copy and Unzip the Oracle binary software in created ORACLE_HOME directory using oracle user and the Grid binary software on created GRID_HOME directory using grid user on RAC 1st node.
Node-1:
=============================
Unzip the Grid software using grid user:
------------------------------------------------
[grid@node-1 softwares]$ unzip -o /u02/softwares/LINUX.X64_193000_grid_home.zip -d /u02/app/19c/grid
[grid@node-1 softwares]$
[grid@node-1 softwares]$ cd /u02/app/19c/grid
[grid@node-1 grid]$
[grid@node-1 grid]$ ls
addnode css diagnostics has jdbc network ords precomp rhp sdk tomcat wwg
assistants cv dmu hs jdk nls oss QOpatch root.sh slax ucp xag
bin dbjava env.ora install jlib OPatch oui qos root.sh.old sqlpatch usm xdk
cha dbs evm instantclient ldap opmn owm racg root.sh.old.1 sqlplus utl
clone deinstall gpnp inventory lib oracore perl rdbms rootupgrade.sh srvm welcome.html
crs demo gridSetup.sh javavm md ord plsql relnotes runcluvfy.sh suptools wlm
[grid@node-1 grid]$
Unzip the Oracle software using oracle user:
----------------------------------------------------
[oracle@node-1 softwares]$ unzip -o /u01/softwares/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/dbhome_1
[oracle@node-1 softwares]$
[oracle@node-1 softwares]$ cd /u01/app/oracle/product/19c/dbhome_1
[oracle@node-1 dbhome_1]$
[oracle@node-1 dbhome_1]$
[oracle@node-1 dbhome_1]$ ls
addnode css deinstall env.ora javavm md OPatch oui R root.sh.old.1 sqlj usm
apex ctx demo has jdbc mgw opmn owm racg runInstaller sqlpatch utl
assistants cv diagnostics hs jdk network oracore perl rdbms schagent.conf sqlplus wwg
bin data dmu install jlib nls ord plsql relnotes sdk srvm xdk
clone dbjava drdaas instantclient ldap odbc ords precomp root.sh slax suptools
crs dbs dv inventory lib olap oss QOpatch root.sh.old sqldeveloper ucp
[oracle@node-1 dbhome_1]$
Install the cvudisk package on all nodes:
Node-1:
=============================
[root@node-1 ~]# cd /u02/app/19c/grid/cv/rpm/
[root@node-1 rpm]#
[root@node-1 rpm]# ls -ltrh cvuqdisk-1.0.10-1.rpm
-rw-r--r--. 1 grid oinstall 12K Mar 13 2019 cvuqdisk-1.0.10-1.rpm
[root@node-1 rpm]#
[root@node-1 rpm]#
[root@node-1 rpm]# rpm -Uvh cvuqdisk-1.0.10-1.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Using default group oinstall to install package
Updating / installing...
1:cvuqdisk-1.0.10-1 ################################# [100%]
[root@node-1 rpm]#
[root@node-1 rpm]#
[root@node-1 rpm]#
[root@node-1 rpm]# scp cvuqdisk-1.0.10-1.rpm root@node-2:/tmp
root@node-2's password:
cvuqdisk-1.0.10-1.rpm 100% 11KB 4.3MB/s 00:00
[root@node-1 rpm]#
[root@node-1 rpm]#
Node-2:
=============================
[root@node-2 ~]# cd /tmp/
[root@node-2 tmp]#
[root@node-2 tmp]# ls -ltrh cvuqdisk-1.0.10-1.rpm
-rw-r--r--. 1 root root 12K Apr 7 17:05 cvuqdisk-1.0.10-1.rpm
[root@node-2 tmp]#
[root@node-2 tmp]#
[root@node-2 tmp]# rpm -Uvh cvuqdisk-1.0.10-1.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Using default group oinstall to install package
Updating / installing...
1:cvuqdisk-1.0.10-1 ################################# [100%]
[root@node-2 tmp]#
Configure SSH Setup Between all Nodes:
Here we use 2 users one (grid user) for Grid installation and another (oracle user) for Oracle installation so, we required to configure SSH passwordless connectivity setup for both users between all nodes.
Connect the server using grid user and execute below command where softwares unzipped:
===============================================================
[grid@node-1 ~]$ cd /u02/app/19c/grid/deinstall
[grid@node-1 deinstall]$
[grid@node-1 deinstall]$
[grid@node-1 deinstall]$ ls -ltrh sshUserSetup.sh
-rwxr-x---. 1 grid oinstall 33K Jan 7 2015 sshUserSetup.sh
[grid@node-1 deinstall]$
[grid@node-1 deinstall]$
[grid@node-1 deinstall]$ ./sshUserSetup.sh -user grid -hosts "node-1 node-2" -noPromptPassphrase -confirm -advanced
Connect the server using oracle user and execute below command where softwares unzipped:
================================================================
[oracle@node-1 ~]$ cd /u02/app/19c/grid/deinstall
[oracle@node-1 deinstall]$
[oracle@node-1 deinstall]$
[oracle@node-1 deinstall]$ ls -ltrh sshUserSetup.sh
-rwxr-x---. 1 grid oinstall 33K Jan 7 2015 sshUserSetup.sh
[oracle@node-1 deinstall]$
[oracle@node-1 deinstall]$
[oracle@node-1 deinstall]$ ./sshUserSetup.sh -user oracle -hosts "node-1 node-2" -noPromptPassphrase -confirm -advanced
Pre-checks for RAC Setup:
[grid@node-1 ~]$ cd /u02/app/19c/grid/
[grid@node-1 grid]$
[grid@node-1 grid]$ export CV_ASSUME_DISTID=OEL8
[grid@node-1 grid]$
[grid@node-1 grid]$ ./runcluvfy.sh stage -pre crsinst -n node-1,node-2 -verbose
Verifying Physical Memory ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
node-2 15.331GB (1.6075768E7KB) 8GB (8388608.0KB) passed
node-1 15.331GB (1.6075768E7KB) 8GB (8388608.0KB) passed
Verifying Physical Memory ...PASSED
Verifying Available Physical Memory ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
node-2 14.5364GB (1.5242492E7KB) 50MB (51200.0KB) passed
node-1 13.9036GB (1.4578952E7KB) 50MB (51200.0KB) passed
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
node-2 16GB (1.6777212E7KB) 15.331GB (1.6075768E7KB) passed
node-1 16GB (1.6777212E7KB) 15.331GB (1.6075768E7KB) passed
Verifying Swap Size ...PASSED
Verifying Free Space: node-2:/usr,node-2:/var,node-2:/etc,node-2:/sbin,node-2:/tmp ...
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/usr node-2 / 58.1514GB 25MB passed
/var node-2 / 58.1514GB 5MB passed
/etc node-2 / 58.1514GB 25MB passed
/sbin node-2 / 58.1514GB 10MB passed
/tmp node-2 / 58.1514GB 1GB passed
Verifying Free Space: node-2:/usr,node-2:/var,node-2:/etc,node-2:/sbin,node-2:/tmp ...PASSED
Verifying Free Space: node-1:/usr,node-1:/var,node-1:/etc,node-1:/sbin,node-1:/tmp ...
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/usr node-1 / 57.5166GB 25MB passed
/var node-1 / 57.5166GB 5MB passed
/etc node-1 / 57.5166GB 25MB passed
/sbin node-1 / 57.5166GB 10MB passed
/tmp node-1 / 57.5166GB 1GB passed
Verifying Free Space: node-1:/usr,node-1:/var,node-1:/etc,node-1:/sbin,node-1:/tmp ...PASSED
Verifying User Existence: grid ...
Node Name Status Comment
------------ ------------------------ ------------------------
node-2 passed exists(54322)
node-1 passed exists(54322)
Verifying Users With Same UID: 54322 ...PASSED
Verifying User Existence: grid ...PASSED
Verifying Group Existence: asmadmin ...
Node Name Status Comment
------------ ------------------------ ------------------------
node-2 passed exists
node-1 passed exists
Verifying Group Existence: asmadmin ...PASSED
Verifying Group Existence: asmdba ...
Node Name Status Comment
------------ ------------------------ ------------------------
node-2 passed exists
node-1 passed exists
Verifying Group Existence: asmdba ...PASSED
Verifying Group Existence: oinstall ...
Node Name Status Comment
------------ ------------------------ ------------------------
node-2 passed exists
node-1 passed exists
Verifying Group Existence: oinstall ...PASSED
Verifying Group Membership: asmdba ...
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
node-2 yes yes yes passed
node-1 yes yes yes passed
Verifying Group Membership: asmdba ...PASSED
Verifying Group Membership: asmadmin ...
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
node-2 yes yes yes passed
node-1 yes yes yes passed
Verifying Group Membership: asmadmin ...PASSED
Verifying Group Membership: oinstall(Primary) ...
Node Name User Exists Group Exists User in Group Primary Status
---------------- ------------ ------------ ------------ ------------ ------------
node-2 yes yes yes yes passed
node-1 yes yes yes yes passed
Verifying Group Membership: oinstall(Primary) ...PASSED
Verifying Run Level ...
Node Name run level Required Status
------------ ------------------------ ------------------------ ----------
node-2 5 3,5 passed
node-1 5 3,5 passed
Verifying Run Level ...PASSED
Verifying Hard Limit: maximum open file descriptors ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
node-2 hard 262144 65536 passed
node-1 hard 262144 65536 passed
Verifying Hard Limit: maximum open file descriptors ...PASSED
Verifying Soft Limit: maximum open file descriptors ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
node-2 soft 1024 1024 passed
node-1 soft 1024 1024 passed
Verifying Soft Limit: maximum open file descriptors ...PASSED
Verifying Hard Limit: maximum user processes ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
node-2 hard 62547 16384 passed
node-1 hard 62547 16384 passed
Verifying Hard Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum user processes ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
node-2 soft 62547 2047 passed
node-1 soft 62547 2047 passed
Verifying Soft Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum stack size ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
node-2 soft 10240 10240 passed
node-1 soft 10240 10240 passed
Verifying Soft Limit: maximum stack size ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Current Group ID ...PASSED
Verifying Root user consistency ...
Node Name Status
------------------------------------ ------------------------
node-2 passed
node-1 passed
Verifying Root user consistency ...PASSED
Verifying Package: cvuqdisk-1.0.10-1 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
node-2 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 passed
node-1 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 passed
Verifying Package: cvuqdisk-1.0.10-1 ...PASSED
Verifying Host name ...PASSED
Verifying Node Connectivity ...
Verifying Hosts File ...
Node Name Status
------------------------------------ ------------------------
node-1 passed
node-2 passed
Verifying Hosts File ...PASSED
Interface information for node "node-1"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
ens1 192.168.xx.xx 192.168.xx.x 0.0.0.0 192.168.xx.x 56:6F:8D:22:00:22 1500
ens2 192.168.yy.yy 192.168.xx.x 0.0.0.0 192.168.xx.x 56:6F:8D:22:00:24 1500
Interface information for node "node-2"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
ens1 192.168.xx.xx 192.168.xx.x 0.0.0.0 192.168.xx.x 56:6F:8D:22:00:28 1500
ens2 192.168.yy.yy 192.168.xx.x 0.0.0.0 192.168.xx.x 56:6F:8D:22:00:2E 1500
Check: MTU consistency of the subnet "192.168.xx.x".
Node Name IP Address Subnet MTU
---------------- ------------ ------------ ------------ ----------------
node-1 ens1 192.168.xx.xx 192.168.xx.x 1500
node-2 ens1 192.168.xx.xx 192.168.xx.x 1500
Check: MTU consistency of the subnet "192.168.xx.x".
Node Name IP Address Subnet MTU
---------------- ------------ ------------ ------------ ----------------
node-1 ens2 192.168.yy.yy 192.168.xx.x 1500
node-2 ens2 192.168.yy.yy 192.168.xx.x 1500
Verifying Check that maximum (MTU) size packet goes through subnet ...PASSED
Source Destination Connected?
------------------------------ ------------------------------ ----------------
node-1[ens1:192.168.xx.xx] node-2[ens1:192.168.xx.xx] yes
Source Destination Connected?
------------------------------ ------------------------------ ----------------
node-1[ens2:192.168.yy.yy] node-2[ens2:192.168.yy.yy] yes
Verifying subnet mask consistency for subnet "192.168.xx.x" ...PASSED
Verifying subnet mask consistency for subnet "192.168.xx.x" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast or broadcast check ...
Checking subnet "192.168.xx.x" for multicast communication with multicast group "224.0.xx.xx"
Verifying Multicast or broadcast check ...PASSED
Verifying ASMLib installation and configuration verification. ...
Verifying '/etc/init.d/oracleasm' ...PASSED
Verifying '/dev/oracleasm' ...PASSED
Node Name Status
------------------------------------ ------------------------
node-1 passed
node-2 passed
Verifying ASMLib installation and configuration verification. ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED
Verifying Same core file name pattern ...PASSED
Verifying User Mask ...
Node Name Available Required Comment
------------ ------------------------ ------------------------ ----------
node-2 0022 0022 passed
node-1 0022 0022 passed
Verifying User Mask ...PASSED
Verifying User Not In Group "root": grid ...
Node Name Status Comment
------------ ------------------------ ------------------------
node-2 passed does not exist
node-1 passed does not exist
Verifying User Not In Group "root": grid ...PASSED
Verifying Time zone consistency ...PASSED
Verifying Time offset between nodes ...PASSED
Verifying resolv.conf Integrity ...
Node Name Status
------------------------------------ ------------------------
node-1 passed
node-2 passed
checking response for name "node-2" from each of the name servers specified
in "/etc/resolv.conf"
Node Name Source Comment Status
------------ ------------------------ ------------------------ ----------
node-2 192.168.yy.yy IPv4 passed
node-2 192.168.yy.yy IPv4 passed
checking response for name "node-1" from each of the name servers specified
in "/etc/resolv.conf"
Node Name Source Comment Status
------------ ------------------------ ------------------------ ----------
node-1 192.168.xx.xx IPv4 passed
node-1 192.168.xx.xx IPv4 passed
Verifying resolv.conf Integrity ...PASSED
Verifying DNS/NIS name service ...PASSED
Verifying Domain Sockets ...PASSED
Verifying /boot mount ...PASSED
Verifying Daemon "avahi-daemon" not configured and running ...
Node Name Configured Status
------------ ------------------------ ------------------------
node-2 no passed
node-1 no passed
Node Name Running? Status
------------ ------------------------ ------------------------
node-2 no passed
node-1 no passed
Verifying Daemon "avahi-daemon" not configured and running ...PASSED
Verifying Daemon "proxyt" not configured and running ...
Node Name Configured Status
------------ ------------------------ ------------------------
node-2 no passed
node-1 no passed
Node Name Running? Status
------------ ------------------------ ------------------------
node-2 no passed
node-1 no passed
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...PASSED
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying File system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED
Pre-check for cluster services setup was successful.
CVU operation performed: stage -pre crsinst
Date: Apr 8, 2025 11:16:25 AM
CVU home: /u02/app/19c/grid/
User: grid
[grid@node-1 grid]$
Install and Configure Oracle 19c Grid Infrastructure for a Cluster:
[grid@node-1 ~]$ cd /u02/app/19c/grid
[grid@node-1 grid]$
[grid@node-1 grid]$
[grid@node-1 grid]$ export CV_ASSUME_DISTID=OEL8
[grid@node-1 grid]$
[grid@node-1 grid]$ ./gridSetup.sh
Select Grid Option:

Select Cluster Configuration:

Grid Plug and Play Information:

Cluster Node Information:

Click on Add option and add RAC all nodes information:

Click on “SSH Connectivity” option, then click on “Test” option, it will take some time and you can show the prompt like “Passwordless SSH connectivity between the selected nodes already established.”

Specify Network Interface Usage:

Storage Option Information:

Create Grid Infrastructure Management Repository:

Create ASM Disk Group:

Specify ASM Password:

Failure Isolation Support:

Specify Management Options:

Privileged Operating System Groups:

Specify Installation Location:

Create Inventory directory:

Root script execution configuration:

Perform Prerequisite Checks:

Check on “Ignore All” option and then “Next“:

Summary:

Execute Configuration scripts:

Run the script on the local node first. After successfully completion, you can start the script in parallel on all other nodes. Make sure login as “root” user.
Node-1:
================
[root@node-1 ~]# /u02/app/oraInventory/orainstRoot.sh
Changing permissions of /u02/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u02/app/oraInventory to oinstall.
The execution of the script is complete.
[root@node-1 ~]#
Node-2:
================
[root@node-2 ~]# /u02/app/oraInventory/orainstRoot.sh
Changing permissions of /u02/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u02/app/oraInventory to oinstall.
The execution of the script is complete.
[root@node-2 ~]#
Node-1:
================
[root@node-1 ~]# /u02/app/19c/grid/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u02/app/19c/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.
Relinking oracle with rac_on option
Using configuration parameter file: /u02/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u02/app/grid_base/crsdata/node-1/crsconfig/rootcrs_node-1_2025-04-15_01-51-10PM.log
2025/04/15 13:51:21 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2025/04/15 13:51:21 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2025/04/15 13:51:21 CLSRSC-363: User ignored prerequisites during installation
2025/04/15 13:51:21 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2025/04/15 13:51:23 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2025/04/15 13:51:24 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2025/04/15 13:51:24 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2025/04/15 13:51:24 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2025/04/15 13:51:37 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2025/04/15 13:51:40 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2025/04/15 13:51:44 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2025/04/15 13:51:50 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2025/04/15 13:51:50 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2025/04/15 13:51:54 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2025/04/15 13:51:54 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2025/04/15 13:52:15 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2025/04/15 13:52:19 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2025/04/15 13:52:23 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2025/04/15 13:52:27 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
ASM has been created and started successfully.
[DBT-30001] Disk groups created successfully. Check /u02/app/grid_base/cfgtoollogs/asmca/asmca-250415PM015257.log for details.
2025/04/15 13:53:51 CLSRSC-482: Running command: '/u02/app/19c/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: Updating the profile
Successful addition of voting disk 0280a707590c4f24bff173adba9e12b3.
Successful addition of voting disk ee87ff2812104f2fbfa96ab0bb920e7f.
Successful addition of voting disk feb95504ed654ff2bf2b7132acfb85ec.
Successfully replaced voting disk group with +OCR.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 0280a707590c4f24bff173adba9e12b3 (/dev/oracleasm/disks/OCR01) [OCR]
2. ONLINE ee87ff2812104f2fbfa96ab0bb920e7f (/dev/oracleasm/disks/OCR02) [OCR]
3. ONLINE feb95504ed654ff2bf2b7132acfb85ec (/dev/oracleasm/disks/OCR03) [OCR]
Located 3 voting disk(s).
2025/04/15 13:55:10 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2025/04/15 13:56:09 CLSRSC-343: Successfully started Oracle Clusterware stack
2025/04/15 13:56:09 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2025/04/15 13:57:32 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2025/04/15 13:57:55 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@node-1 ~]#
Node-2:
===============
[root@node-2 ~]# /u02/app/19c/grid/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u02/app/19c/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.
Relinking oracle with rac_on option
Using configuration parameter file: /u02/app/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u02/app/grid_base/crsdata/node-2/crsconfig/rootcrs_node-2_2025-04-15_02-00-32PM.log
2025/04/15 14:00:40 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2025/04/15 14:00:40 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2025/04/15 14:00:40 CLSRSC-363: User ignored prerequisites during installation
2025/04/15 14:00:40 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2025/04/15 14:00:41 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2025/04/15 14:00:41 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2025/04/15 14:00:41 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2025/04/15 14:00:41 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2025/04/15 14:00:42 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2025/04/15 14:00:42 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2025/04/15 14:00:46 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2025/04/15 14:00:46 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2025/04/15 14:00:47 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2025/04/15 14:00:47 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2025/04/15 14:01:02 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2025/04/15 14:01:05 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2025/04/15 14:01:06 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2025/04/15 14:01:07 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2025/04/15 14:01:08 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
2025/04/15 14:01:16 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2025/04/15 14:01:57 CLSRSC-343: Successfully started Oracle Clusterware stack
2025/04/15 14:01:57 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2025/04/15 14:02:07 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2025/04/15 14:02:12 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
[root@node-2 ~]#
Finish Grid Installation:

[grid@node-1 grid]$ ./gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...
The response file for this session can be found at:
/u02/app/19c/grid/install/response/grid_2025-04-15_01-16-24PM.rsp
You can find the log of this install session at:
/tmp/GridSetupActions2025-04-15_01-16-24PM/gridSetupActions2025-04-15_01-16-24P M.log
Moved the install session logs to:
/u02/app/oraInventory/logs/GridSetupActions2025-04-15_01-16-24PM
[grid@node-1 grid]$
Check the Cluster services status:
[root@node-1 ~]# ps -ef | grep pmon
grid 69424 1 0 13:55 ? 00:00:00 asm_pmon_+ASM1
root 145736 145023 0 16:35 pts/1 00:00:00 grep --color=auto pmon
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# ps -ef | grep tns
root 40 2 0 Apr14 ? 00:00:00 [netns]
grid 70575 1 0 13:56 ? 00:00:01 /u02/app/19c/grid/bin/tnslsnr ASMNET1LSNR_ASM -no_crs_notify -inherit
grid 71064 1 0 13:57 ? 00:00:00 /u02/app/19c/grid/bin/tnslsnr LISTENER_SCAN2 -no_crs_notify -inherit
grid 71086 1 0 13:57 ? 00:00:00 /u02/app/19c/grid/bin/tnslsnr LISTENER_SCAN3 -no_crs_notify -inherit
grid 72873 1 0 13:57 ? 00:00:00 /u02/app/19c/grid/bin/tnslsnr LISTENER -no_crs_notify -inherit
root 145767 145023 0 16:35 pts/1 00:00:00 grep --color=auto tns
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# . oraenv
ORACLE_SID = [root] ? +ASM1
The Oracle base has been set to /u02/app/grid_base
[root@node-1 ~]#
[root@node-1 ~]#
[root@node-1 ~]# cd /u02/app/19c/grid/bin
[root@node-1 bin]#
[root@node-1 bin]#
[root@node-1 bin]# ./crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE node-1 STABLE
ONLINE ONLINE node-2 STABLE
ora.chad
ONLINE ONLINE node-1 STABLE
ONLINE ONLINE node-2 STABLE
ora.net1.network
ONLINE ONLINE node-1 STABLE
ONLINE ONLINE node-2 STABLE
ora.ons
ONLINE ONLINE node-1 STABLE
ONLINE ONLINE node-2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE node-1 STABLE
2 ONLINE ONLINE node-2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE node-2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE node-1 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE node-1 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE node-1 STABLE
2 ONLINE ONLINE node-2 STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE node-1 Started,STABLE
2 ONLINE ONLINE node-2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE node-1 STABLE
2 ONLINE ONLINE node-2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE node-1 STABLE
ora.node-1.vip
1 ONLINE ONLINE node-1 STABLE
ora.node-2.vip
1 ONLINE ONLINE node-2 STABLE
ora.qosmserver
1 ONLINE ONLINE node-1 STABLE
ora.scan1.vip
1 ONLINE ONLINE node-2 STABLE
ora.scan2.vip
1 ONLINE ONLINE node-1 STABLE
ora.scan3.vip
1 ONLINE ONLINE node-1 STABLE
--------------------------------------------------------------------------------
[root@node-1 bin]#
Run ASM Configuration Assistant to create ASM Disk Groups:
[grid@node-1 ~]$ . oraenv
ORACLE_SID = [grid] ? +ASM1
The Oracle base has been set to /u02/app/grid_base
[grid@node-1 ~]$
[grid@node-1 ~]$
[grid@node-1 ~]$ asmca

Create Disk Group:

Create DATA Disk Group:

RECO Disk Group:

Disk Groups creation completed:

Install Oracle Database 19c software only:
[oracle@node-1 ~]$ cd /u01/app/oracle/product/19c/dbhome_1
[oracle@node-1 dbhome_1]$
[oracle@node-1 dbhome_1]$
[oracle@node-1 dbhome_1]$ export CV_ASSUME_DISTID=OEL8
[oracle@node-1 dbhome_1]$
[oracle@node-1 dbhome_1]$
[oracle@node-1 dbhome_1]$ ./runInstaller
Launching Oracle Database Setup Wizard...
Configuration Option:

Select Database Installation Option:

Select List of Nodes:

Choose Database Edition:

Specify Installation Location:

Privileged Operating System groups:

Root script execution configuration:

Oracle Binary Installation Summary:

Installation Progress status:

Execute Configuration scripts:

Node-1:
=====================
[root@node-1 ~]# /u01/app/oracle/product/19c/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/19c/dbhome_1
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.
[root@node-1 ~]#
Node-2:
==================
[root@node-2 ~]# /u01/app/oracle/product/19c/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/19c/dbhome_1
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.
[root@node-2 ~]#
Oracle Binary Installation Finish:

[oracle@node-1 dbhome_1]$ ./runInstaller
Launching Oracle Database Setup Wizard...
The response file for this session can be found at:
/u01/app/oracle/product/19c/dbhome_1/install/response/db_2025-04-15_05-19-00PM.rsp
You can find the log of this install session at:
/u02/app/oraInventory/logs/InstallActions2025-04-15_05-19-00PM/installActions2025-04-15_05-19-00PM.log
[oracle@node-1 dbhome_1]$
Create a RAC Database:
[oracle@node-1 ~]$ export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$ export CV_ASSUME_DISTID=OEL8
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$ cd $ORACLE_HOME/bin
[oracle@node-1 bin]$
[oracle@node-1 bin]$
[oracle@node-1 bin]$ ./dbca
Database Operation:

Database Creation Mode:

Select Database Deployment Type:

Select List of Nodes:

Specify Database Identification Details:

Database Storage Option:

Fast Recovery Option:

Oracle Data Vault Config Option:

Specify Configuration Options:

Specify Management Options:

Database User Credentials:

Select Database Creation Option:

Database Creation Summary:

Installation Progress Page:

Database Creation Finish Page:

Check Database status:
[oracle@node-1 ~]$ . oraenv
ORACLE_SID = [oracle] ? PROD1
The Oracle base has been set to /u01/app/oracle
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$ srvctl config database -d PROD
Database unique name: PROD
Database name: PROD
Oracle home: /u01/app/oracle/product/19c/dbhome_1
Oracle user: oracle
Spfile: +DATA/PROD/PARAMETERFILE/spfile.268.1198540007
Password file: +DATA/PROD/PASSWORD/pwdprod.256.1198539579
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: RECO,DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: oinstall
OSOPER group: oinstall
Database instances: PROD1,PROD2
Configured nodes: node-1,node-2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$ srvctl status database -d PROD -v
Instance PROD1 is running on node node-1. Instance status: Open.
Instance PROD2 is running on node node-2. Instance status: Open.
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$
[oracle@node-1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 16 00:03:14 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
SQL> set lines 400 pages 400
SQL> select name, db_unique_name, database_role, open_mode, instance_name, log_mode from gv$database,gv$instance;
NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE INSTANCE_NAME LOG_MODE
--------- --------------- ---------------- -------------------- ---------------- ------------
PROD PROD PRIMARY READ WRITE PROD1 ARCHIVELOG
PROD PROD PRIMARY READ WRITE PROD1 ARCHIVELOG
PROD PROD PRIMARY READ WRITE PROD2 ARCHIVELOG
PROD PROD PRIMARY READ WRITE PROD2 ARCHIVELOG
SQL>
Now your Oracle 19c RAC Grid and Database installation has been successfully completed.
I hope my written content will helped you. Your suggestions/feedback are most welcome from orakldba.com. Keep learning… Have a great day!!!
Please comment here for your any query related to above content. You can write to mail me through my Email.Email :- orakldba@gmail.com
LinkedIn :- https://linkedin.com/in/prasantakirtaniya
Twitter :- https://twitter.com/prasantadba
Facebook Page :- https://www.facebook.com/orakldba
Website :- https://orakldba.com
ACE Profile :- https://ace.oracle.com/apex/ace/profile/prasantakirtaniya
Oracle Community :- https://community.oracle.com/customerconnect/profile/discussions/prasantakirtaniya
good and very helpful…
Thanks! Harshit