Step-by-Step Guide to Install Oracle 19c RAC (Beginner Friendly)

Step-by-step guide to install Oracle 19c RAC on VirtualBox with VM setup, shared storage, Grid Infrastructure, and RAC configuration for practice.
In this article, we provide a step-by-step guide to installing and configuring a 2-node Oracle 19c RAC database on VirtualBox without using DNS services. This setup uses local host file entries instead of DNS, making it ideal for learning, practice, and lab environments.

By following this guide, you will gain hands-on experience with Oracle RAC architecture, shared storage, Grid Infrastructure, and RAC database creation in a simple and practical way.

Required Software and Files
Ensure all required software and installation files are downloaded before starting the Oracle 19c RAC setup.
  • Virtual Machine: Oracle VirtualBox Manager
  • Operating System ISO: OracleLinux-R7-U9-Server-x86_64-dvd.iso
  • Oracle Database Home: LINUX.X64_193000_db_home.zip
  • Oracle Grid Infrastructure Home: LINUX.X64_193000_grid_home.zip

1. Virtual Machine setup for Node 1

1. Open Oracle VirtualBox Manager and click on the New button to begin creating a new virtual machine (VM).

Name and Operating System: Provide the required virtual machine details as shown below.

Unattended Install: No changes are required on this screen.

Hardware: Set the Base Memory to 4096 MB and assign 2 CPU cores to the virtual machine.

Hard Disk: Specify the disk size and storage location, select the Hard Disk File Type and Variant as VHD (Virtual Hard Disk), and then click Finish to create the virtual machine.

2. After creating the virtual machine, open its Settings.

3. Navigate to the Expert tab, go to Network, and enable three network adapters for communication as shown below.
Adapter 1: Internal Network - Public Network

Adapter 2: Internal Network - Private Network

Adapter 3: Bridged Adapter - Used for internet.

4. Next, go to System settings and uncheck the Floppy Disk option from the boot order.

5. Navigate to Storage, select Controller: IDE, and from the bottom add the Oracle Enterprise Linux 7.9 ISO image.

6. After adding the ISO image, click OK to save the settings.

7. After completing all configurations, the setup should look like this.

8.  After configuration, Start the Virtual Machine.

9. After starting the virtual machine, select Install Oracle Linux 7.9 to begin installing the operating system.

10. Select your preferred language and click Continue to proceed.

11. After selecting the language, you will be prompted with the following screen.

12. In DATE & TIME, select the appropriate Region and City based on your time zone, then click Done.

13. In SOFTWARE SELECTION, choose Server with GUI and select all available Add-Ons, then click Done.

14. In INSTALLATION DESTINATION, select I will configure partitioning, then click Done.

15. Partition the disk according to your requirements, then click Done.

16. Click Accept Changes to save the partition configuration.

17. In NETWORK & HOSTNAME
Public Network Configuration: Go to IPv4 Settings, change the Method to Manual, and enter the public network IP address details.

Private Network Configuration: Go to IPv4 Settings, change the Method to Manual, and enter the private network IP address details.

18. After completing all configurations, click Begin Installation to start the installation process.

19. Set the root password. After that, create a new user account by providing the required username and password.




2. Pre-requisites for Oracle RAC

1. Change the system hostname.
Set a unique hostname for each RAC node to ensure proper cluster communication.
# hostnamectl set-hostname dbasimplified1
2. Install required packages.
Install Oracle 19c pre-requisite packages, ASM support, and networking utilities required for RAC installation.
# yum update -y
# yum install -y oracle-database-preinstall-19c.x86_64
# yum install oracleasm-support
# yum install -y bind* 
# sysctl -p
3. Configure hosts file.
Update /etc/hosts with public, private, virtual (VIP), and SCAN IPs to enable RAC communication without using DNS.
[root@dbasimplified1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# Public
192.168.56.11 dbasimplified1 rac1
192.168.56.12 dbasimplified2 rac2

# Private
192.168.10.11 dbasimplified1-priv rac1-priv
192.168.10.12 dbasimplified2-priv rac2-priv

# Virtual
192.168.56.21 dbasimplified1-vip rac1-vip
192.168.56.22 dbasimplified2-vip rac2-vip

# SCAN
192.168.56.31 dbasimplified-scan rac-scan
192.168.56.32 dbasimplified-scan rac-scan
192.168.56.33 dbasimplified-scan rac-scan
4. Create the required groups and users, and assign the appropriate groups to each user.
Create ASM and RAC-specific groups and configure the oracle and grid users with the required privileges.
[root@dbasimplified1 ~]# groupadd -g 54327 asmdba
[root@dbasimplified1 ~]# groupadd -g 54328 asmoper
[root@dbasimplified1 ~]# groupadd -g 54329 asmadmin
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# usermod -u 54321 -g oinstall -G dba,oper,asmdba oracle
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# useradd -u 54331 -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba grid
5. Set passwords for the oracle and grid users.
Assign passwords to the oracle and grid users for secure access and installation activities.
[root@dbasimplified1 ~]# 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@dbasimplified1 ~]#
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# 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.
6. Create Necessary Directories.
Create Oracle Base, Grid Home, and Database Home directories with proper ownership and permissions.
[root@dbasimplified1 ~]# mkdir -p /u01/app/oracle/product/19c/db_home1
[root@dbasimplified1 ~]# mkdir -p /u01/app/grid
[root@dbasimplified1 ~]# mkdir -p /u01/app/19c/grid
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# chown -R oracle:oinstall /u01
[root@dbasimplified1 ~]# cd /u01/app
[root@dbasimplified1 app]#
[root@dbasimplified1 app]# chown -R grid:oinstall 19c
[root@dbasimplified1 app]# chown -R grid:oinstall grid
7. Stop and Disable firewall.
Disable the firewall to avoid network communication issues between RAC nodes during installation.
[root@dbasimplified1 ~]# systemctl stop firewalld
[root@dbasimplified1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@dbasimplified1 ~]#
8. Disable SELinux:
Disable SELinux to prevent security policy conflicts with Oracle RAC services and reboot the system to apply changes.
[root@dbasimplified1 ~]# vi /etc/selinux/config
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

[root@dbasimplified1 ~]# getenforce
Enforcing
[root@dbasimplified1 ~]# init 6
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# getenforce
Disabled
[root@dbasimplified1 ~]#

3. Virtual Machine setup for Node 2

1. Right-click the virtual machine for Node 1 in Oracle VirtualBox Manager, then click Clone.

2. Enter the virtual machine name for Node 2 and select the required options as shown below and then click on Finish.

3. Open the Node 2 virtual machine, go to Settings, and navigate to the Network section.

4. Open the Adapter 1 settings and configure the public network IP address details, then click Apply.

5. Open the Adapter 2 settings and configure the private network IP address details, then click Apply.
6. Adapter 3 is configured for internet access as shown below.

7. Turn ON all network adapters after completing the configuration.
After configuring the VM, start it and set the hostname for Node 2.
# hostnamectl set-hostname dbasimplified2

4. Create shared disks for both RAC nodes

1. Open the virtual machine settings for Node 1, navigate to the Storage section, select Controller: SATA, and use the Add Hard Disk option at the bottom to attach the disk.

2. Click the Create option to start the process of creating a new virtual hard disk.

3. Create a new 20 GB virtual hard disk, choose VHD (Virtual Hard Disk) as the disk file type and variant, and enable the Pre-allocate Full Size option.

4. After the disk is created, it will be listed in the Not Attached section of the Storage settings.

5. Launch VirtualBox Manager, go to the File menu, navigate to Tools, and open Virtual Media Manager.

6. In the Properties section, select the newly created disk and change the disk type to Shareable so that both RAC nodes can access the same disk.
Follow the same steps to create four hard disks, each of size 20 GB, and configure them as shared disks so they can be accessed by both RAC nodes.

7. Open the Storage settings, select Controller: SATA, and use the Add Hard Disk option at the bottom to attach the required hard disks.

8. Select each created disk one by one and click Choose to attach the hard disks to the virtual machine.

9. Once all the hard disks are attached successfully, the Storage section will appear as shown below.

10. Follow the same steps to attach the same shared disks to the virtual machine configured for Node 2.

11. Run the lsblk command on both RAC nodes to confirm that the shared disks are visible and accessible from each node. You should see the disks sdb, sdc, sdd, and sde listed on both nodes.

Node 1:

Node 2:


5. Configure Oracle ASM

1. Disk Partitioning
In this step, we create a primary partition on each shared disk using the fdisk command. These partitions will be used later for Oracle ASM disk configuration. Repeat the same steps for all shared disks on both RAC nodes.
[root@dbasimplified1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x18c14ce9.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

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

Calling ioctl() to re-read partition table.
Syncing disks.
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x674456e5.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

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

Calling ioctl() to re-read partition table.
Syncing disks.
2. Configure oracleasm Utility 
In this step, we configure the oracleasm utility to manage ASM disks. The ASM driver is configured to start automatically on system boot and scan for ASM disks, with ownership assigned to the grid user and asmadmin group.
[root@dbasimplified1 ~]# 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 []: asmadmin
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
3. Initialize ASMLib
In this step, the oracleasm init command is executed to load the Oracle ASM module and mount the ASMLib filesystem. This allows the system to detect and manage ASM disks properly for the Oracle RAC setup.
[root@dbasimplified1 ~]# 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
4. Create ASM Disks 
In this step, the shared disk partitions are labeled as ASM disks using the oracleasm createdisk command. After creating the disks, the system scans and lists the ASM disks to verify that they are detected successfully.
[root@dbasimplified1 ~]# oracleasm createdisk DATA /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# oracleasm createdisk DATA02 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@dbasimplified1 ~]#
[root@dbasimplified1 ~]# oracleasm listdisks
DATA
DATA02

Repeat the same configuration on Node 2. 

1. Configure oracleasm Utility on Node 2
In this step, the oracleasm utility is configured on the second RAC node with the same settings as Node 1. This ensures consistent ASM disk ownership and allows the system to scan ASM disks automatically on boot.
[root@dbasimplified2 ~]# 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 []: asmadmin
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
2. Initialize ASMLib on Node 2 
In this step, the oracleasm init command is executed on the second RAC node to load the ASM module and mount the ASMLib filesystem. This ensures that the node is ready to detect and use the shared ASM disks.
[root@dbasimplified2 ~]# 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
3. Verify ASM Disks on Node 2 
In this step, the ASM disks created on Node 1 are scanned and verified on the second RAC node. The output confirms that the ASM disks are successfully detected and available on both nodes.
[root@dbasimplified2 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "DATA02"
Instantiating disk "DATA"
[root@dbasimplified2 ~]#
[root@dbasimplified2 ~]# oracleasm listdisks
DATA
DATA02

6. Pre-checks for Oracle RAC setup

1. Extract Oracle Grid Infrastructure Software  
Extract the Oracle Grid Infrastructure 19c software into the Grid home directory.
[grid@dbasimplified1 ~]$ cd /u01/app/19c/grid/
[grid@dbasimplified1 grid]$ unzip /software/LINUX.X64_193000_grid_home.zip
2. Configure Passwordless SSH for Grid User 
Run the sshUserSetup.sh script to configure passwordless SSH access for the grid user across both RAC nodes, which is required for Oracle RAC installation and cluster communication.
[grid@dbasimplified1 ~]$ cd /u01/app/19c/grid/deinstall/
[grid@dbasimplified1 deinstall]$ ./sshUserSetup.sh -user grid -hosts 'dbasimplified1 dbasimplified2' -noPromptPassphrase -confirm -advanced
3. Run Cluster Verification Pre-Checks 
Execute the runcluvfy.sh script to validate system readiness and perform pre-installation checks for Oracle Grid Infrastructure across both RAC nodes.
[grid@dbasimplified1 ~]$ cd /u01/app/19c/grid/
[grid@dbasimplified1 grid]$ ./runcluvfy.sh stage -pre crsinst -n dbasimplified1,dbasimplified2 -verbose

Verifying Physical Memory ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  3.544GB (3716180.0KB)     8GB (8388608.0KB)         failed
  dbasimplified1  3.544GB (3716164.0KB)     8GB (8388608.0KB)         failed
Verifying Physical Memory ...FAILED (PRVF-7530)
Verifying Available Physical Memory ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  2.816GB (2952812.0KB)     50MB (51200.0KB)          passed
  dbasimplified1  2.7362GB (2869140.0KB)    50MB (51200.0KB)          passed
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  20GB (2.0971516E7KB)      3.544GB (3716180.0KB)     passed
  dbasimplified1  20GB (2.0971516E7KB)      3.544GB (3716164.0KB)     passed
Verifying Swap Size ...PASSED
Verifying Free Space: dbasimplified2:/usr,dbasimplified2:/etc,dbasimplified2:/sbin ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /usr              dbasimplified2  /             117.9219GB    25MB          passed
  /etc              dbasimplified2  /             117.9219GB    25MB          passed
  /sbin             dbasimplified2  /             117.9219GB    10MB          passed
Verifying Free Space: dbasimplified2:/usr,dbasimplified2:/etc,dbasimplified2:/sbin ...PASSED
Verifying Free Space: dbasimplified2:/var ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /var              dbasimplified2  /var          8.292GB       5MB           passed
Verifying Free Space: dbasimplified2:/var ...PASSED
Verifying Free Space: dbasimplified2:/tmp ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /tmp              dbasimplified2  /tmp          20.9131GB     1GB           passed
Verifying Free Space: dbasimplified2:/tmp ...PASSED
Verifying Free Space: dbasimplified1:/usr,dbasimplified1:/etc,dbasimplified1:/sbin ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /usr              dbasimplified1  /             111.6894GB    25MB          passed
  /etc              dbasimplified1  /             111.6894GB    25MB          passed
  /sbin             dbasimplified1  /             111.6894GB    10MB          passed
Verifying Free Space: dbasimplified1:/usr,dbasimplified1:/etc,dbasimplified1:/sbin ...PASSED
Verifying Free Space: dbasimplified1:/var ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /var              dbasimplified1  /var          8.2988GB      5MB           passed
Verifying Free Space: dbasimplified1:/var ...PASSED
Verifying Free Space: dbasimplified1:/tmp ...
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /tmp              dbasimplified1  /tmp          20.8838GB     1GB           passed
Verifying Free Space: dbasimplified1:/tmp ...PASSED
Verifying User Existence: grid ...
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  dbasimplified2  passed                    exists(54331)
  dbasimplified1  passed                    exists(54331)

  Verifying Users With Same UID: 54331 ...PASSED
Verifying User Existence: grid ...PASSED
Verifying Group Existence: asmadmin ...
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  dbasimplified2  passed                    exists
  dbasimplified1  passed                    exists
Verifying Group Existence: asmadmin ...PASSED
Verifying Group Existence: asmdba ...
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  dbasimplified2  passed                    exists
  dbasimplified1  passed                    exists
Verifying Group Existence: asmdba ...PASSED
Verifying Group Existence: oinstall ...
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  dbasimplified2  passed                    exists
  dbasimplified1  passed                    exists
Verifying Group Existence: oinstall ...PASSED
Verifying Group Membership: asmdba ...
  Node Name         User Exists   Group Exists  User in Group  Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    yes           yes           yes           passed
  dbasimplified1    yes           yes           yes           passed
Verifying Group Membership: asmdba ...PASSED
Verifying Group Membership: asmadmin ...
  Node Name         User Exists   Group Exists  User in Group  Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    yes           yes           yes           passed
  dbasimplified1    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
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified2    yes           yes           yes           yes           passed
  dbasimplified1    yes           yes           yes           yes           passed
Verifying Group Membership: oinstall(Primary) ...PASSED
Verifying Run Level ...
  Node Name     run level                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  5                         3,5                       passed
  dbasimplified1  5                         3,5                       passed
Verifying Run Level ...PASSED
Verifying Hard Limit: maximum open file descriptors ...
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    hard          4096          65536         failed
  dbasimplified1    hard          4096          65536         failed
Verifying Hard Limit: maximum open file descriptors ...FAILED (PRVG-0446)
Verifying Soft Limit: maximum open file descriptors ...
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    soft          1024          1024          passed
  dbasimplified1    soft          1024          1024          passed
Verifying Soft Limit: maximum open file descriptors ...PASSED
Verifying Hard Limit: maximum user processes ...
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    hard          14361         16384         failed
  dbasimplified1    hard          14361         16384         failed
Verifying Hard Limit: maximum user processes ...FAILED (PRVG-0448)
Verifying Soft Limit: maximum user processes ...
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    soft          4096          2047          passed
  dbasimplified1    soft          4096          2047          passed
Verifying Soft Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum stack size ...
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    soft          8192          10240         failed
  dbasimplified1    soft          8192          10240         failed
Verifying Soft Limit: maximum stack size ...FAILED (PRVG-0449)
Verifying Architecture ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  x86_64                    x86_64                    passed
  dbasimplified1  x86_64                    x86_64                    passed
Verifying Architecture ...PASSED
Verifying OS Kernel Version ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  5.4.17-2136.338.4.2.el7uek.x86_64  4.1.12                    passed
  dbasimplified1  5.4.17-2136.338.4.2.el7uek.x86_64  4.1.12                    passed
Verifying OS Kernel Version ...PASSED
Verifying OS Kernel Parameter: semmsl ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    250           250           250           passed
  dbasimplified2    250           250           250           passed
Verifying OS Kernel Parameter: semmsl ...PASSED
Verifying OS Kernel Parameter: semmns ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    32000         32000         32000         passed
  dbasimplified2    32000         32000         32000         passed
Verifying OS Kernel Parameter: semmns ...PASSED
Verifying OS Kernel Parameter: semopm ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    100           100           100           passed
  dbasimplified2    100           100           100           passed
Verifying OS Kernel Parameter: semopm ...PASSED
Verifying OS Kernel Parameter: semmni ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    128           128           128           passed
  dbasimplified2    128           128           128           passed
Verifying OS Kernel Parameter: semmni ...PASSED
Verifying OS Kernel Parameter: shmmax ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    4398046511104  4398046511104  1902675968    passed
  dbasimplified2    4398046511104  4398046511104  1902684160    passed
Verifying OS Kernel Parameter: shmmax ...PASSED
Verifying OS Kernel Parameter: shmmni ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    4096          4096          4096          passed
  dbasimplified2    4096          4096          4096          passed
Verifying OS Kernel Parameter: shmmni ...PASSED
Verifying OS Kernel Parameter: shmall ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    1073741824    1073741824    1073741824    passed
  dbasimplified2    1073741824    1073741824    1073741824    passed
Verifying OS Kernel Parameter: shmall ...PASSED
Verifying OS Kernel Parameter: file-max ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    6815744       6815744       6815744       passed
  dbasimplified2    6815744       6815744       6815744       passed
Verifying OS Kernel Parameter: file-max ...PASSED
Verifying OS Kernel Parameter: ip_local_port_range ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    between 9000 & 65500  between 9000 & 65500  between 9000 & 65535  passed
  dbasimplified2    between 9000 & 65500  between 9000 & 65500  between 9000 & 65535  passed
Verifying OS Kernel Parameter: ip_local_port_range ...PASSED
Verifying OS Kernel Parameter: rmem_default ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    262144        262144        262144        passed
  dbasimplified2    262144        262144        262144        passed
Verifying OS Kernel Parameter: rmem_default ...PASSED
Verifying OS Kernel Parameter: rmem_max ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    4194304       4194304       4194304       passed
  dbasimplified2    4194304       4194304       4194304       passed
Verifying OS Kernel Parameter: rmem_max ...PASSED
Verifying OS Kernel Parameter: wmem_default ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    262144        262144        262144        passed
  dbasimplified2    262144        262144        262144        passed
Verifying OS Kernel Parameter: wmem_default ...PASSED
Verifying OS Kernel Parameter: wmem_max ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    1048576       1048576       1048576       passed
  dbasimplified2    1048576       1048576       1048576       passed
Verifying OS Kernel Parameter: wmem_max ...PASSED
Verifying OS Kernel Parameter: aio-max-nr ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    1048576       1048576       1048576       passed
  dbasimplified2    1048576       1048576       1048576       passed
Verifying OS Kernel Parameter: aio-max-nr ...PASSED
Verifying OS Kernel Parameter: panic_on_oops ...
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  dbasimplified1    1             1             1             passed
  dbasimplified2    1             1             1             passed
Verifying OS Kernel Parameter: panic_on_oops ...PASSED
Verifying Package: kmod-20-21 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  kmod(x86_64)-20-28.0.3.el7  kmod(x86_64)-20-21        passed
  dbasimplified1  kmod(x86_64)-20-28.0.3.el7  kmod(x86_64)-20-21        passed
Verifying Package: kmod-20-21 (x86_64) ...PASSED
Verifying Package: kmod-libs-20-21 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  kmod-libs(x86_64)-20-28.0.3.el7  kmod-libs(x86_64)-20-21   passed
  dbasimplified1  kmod-libs(x86_64)-20-28.0.3.el7  kmod-libs(x86_64)-20-21   passed
Verifying Package: kmod-libs-20-21 (x86_64) ...PASSED
Verifying Package: binutils-2.23.52.0.1 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  binutils-2.27-44.base.0.3.el7_9.1  binutils-2.23.52.0.1      passed
  dbasimplified1  binutils-2.27-44.base.0.3.el7_9.1  binutils-2.23.52.0.1      passed
Verifying Package: binutils-2.23.52.0.1 ...PASSED
Verifying Package: compat-libcap1-1.10 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  compat-libcap1-1.10-7.el7  compat-libcap1-1.10       passed
  dbasimplified1  compat-libcap1-1.10-7.el7  compat-libcap1-1.10       passed
Verifying Package: compat-libcap1-1.10 ...PASSED
Verifying Package: libgcc-4.8.2 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  libgcc(x86_64)-4.8.5-44.0.3.el7  libgcc(x86_64)-4.8.2      passed
  dbasimplified1  libgcc(x86_64)-4.8.5-44.0.3.el7  libgcc(x86_64)-4.8.2      passed
Verifying Package: libgcc-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-4.8.2 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  libstdc++(x86_64)-4.8.5-44.0.3.el7  libstdc++(x86_64)-4.8.2   passed
  dbasimplified1  libstdc++(x86_64)-4.8.5-44.0.3.el7  libstdc++(x86_64)-4.8.2   passed
Verifying Package: libstdc++-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  libstdc++-devel(x86_64)-4.8.5-44.0.3.el7  libstdc++-devel(x86_64)-4.8.2  passed
  dbasimplified1  libstdc++-devel(x86_64)-4.8.5-44.0.3.el7  libstdc++-devel(x86_64)-4.8.2  passed
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSED
Verifying Package: sysstat-10.1.5 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  sysstat-10.1.5-20.0.3.el7_9  sysstat-10.1.5            passed
  dbasimplified1  sysstat-10.1.5-20.0.3.el7_9  sysstat-10.1.5            passed
Verifying Package: sysstat-10.1.5 ...PASSED
Verifying Package: ksh ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  ksh                       ksh                       passed
  dbasimplified1  ksh                       ksh                       passed
Verifying Package: ksh ...PASSED
Verifying Package: make-3.82 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  make-3.82-24.el7          make-3.82                 passed
  dbasimplified1  make-3.82-24.el7          make-3.82                 passed
Verifying Package: make-3.82 ...PASSED
Verifying Package: glibc-2.17 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  glibc(x86_64)-2.17-326.0.9.el7_9.3  glibc(x86_64)-2.17        passed
  dbasimplified1  glibc(x86_64)-2.17-326.0.9.el7_9.3  glibc(x86_64)-2.17        passed
Verifying Package: glibc-2.17 (x86_64) ...PASSED
Verifying Package: glibc-devel-2.17 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  glibc-devel(x86_64)-2.17-326.0.9.el7_9.3  glibc-devel(x86_64)-2.17  passed
  dbasimplified1  glibc-devel(x86_64)-2.17-326.0.9.el7_9.3  glibc-devel(x86_64)-2.17  passed
Verifying Package: glibc-devel-2.17 (x86_64) ...PASSED
Verifying Package: libaio-0.3.109 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.109    passed
  dbasimplified1  libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.109    passed
Verifying Package: libaio-0.3.109 (x86_64) ...PASSED
Verifying Package: libaio-devel-0.3.109 (x86_64) ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.109  passed
  dbasimplified1  libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.109  passed
Verifying Package: libaio-devel-0.3.109 (x86_64) ...PASSED
Verifying Package: nfs-utils-1.2.3-15 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  nfs-utils-1.3.0-0.68.0.1.el7.2  nfs-utils-1.2.3-15        passed
  dbasimplified1  nfs-utils-1.3.0-0.68.0.1.el7.2  nfs-utils-1.2.3-15        passed
Verifying Package: nfs-utils-1.2.3-15 ...PASSED
Verifying Package: smartmontools-6.2-4 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  smartmontools-7.0-2.el7   smartmontools-6.2-4       passed
  dbasimplified1  smartmontools-7.0-2.el7   smartmontools-6.2-4       passed
Verifying Package: smartmontools-6.2-4 ...PASSED
Verifying Package: net-tools-2.0-0.17 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  net-tools-2.0-0.25.20131004git.el7  net-tools-2.0-0.17        passed
  dbasimplified1  net-tools-2.0-0.25.20131004git.el7  net-tools-2.0-0.17        passed
Verifying Package: net-tools-2.0-0.17 ...PASSED
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...
  Node Name         Port Number   Protocol      Available     Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    6200          TCP           yes           successful
  dbasimplified1    6200          TCP           yes           successful
  dbasimplified2    6100          TCP           yes           successful
  dbasimplified1    6100          TCP           yes           successful
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSED
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...
  Node Name         Port Number   Protocol      Available     Status
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    42424         TCP           yes           successful
  dbasimplified1    42424         TCP           yes           successful
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Current Group ID ...PASSED
Verifying Root user consistency ...
  Node Name                             Status
  ------------------------------------  ------------------------
  dbasimplified2                        passed
  dbasimplified1                        passed
Verifying Root user consistency ...PASSED
Verifying Package: cvuqdisk-1.0.10-1 ...
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  missing                   cvuqdisk-1.0.10-1         failed
  dbasimplified1  missing                   cvuqdisk-1.0.10-1         failed
Verifying Package: cvuqdisk-1.0.10-1 ...FAILED (PRVG-11550)
Verifying Host name ...PASSED
Verifying Node Connectivity ...
  Verifying Hosts File ...
  Node Name                             Status
  ------------------------------------  ------------------------
  dbasimplified1                        passed
  dbasimplified2                        passed
  Verifying Hosts File ...PASSED

Interface information for node "dbasimplified2"

 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 enp0s3 192.168.56.12   192.168.56.0    0.0.0.0         192.168.0.1     08:00:27:5A:0B:AF 1500
 enp0s8 192.168.10.12   192.168.10.0    0.0.0.0         192.168.0.1     08:00:27:7B:77:2A 1500
 enp0s9 192.168.0.108   192.168.0.0     0.0.0.0         192.168.0.1     08:00:27:9F:2F:6B 1500

Interface information for node "dbasimplified1"

 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 enp0s3 192.168.56.11   192.168.56.0    0.0.0.0         192.168.0.1     08:00:27:37:76:6D 1500
 enp0s8 192.168.10.11   192.168.10.0    0.0.0.0         192.168.0.1     08:00:27:8E:AA:53 1500
 enp0s9 192.168.0.107   192.168.0.0     0.0.0.0         192.168.0.1     08:00:27:C3:AB:03 1500

Check: MTU consistency of the subnet "192.168.0.0".

  Node              Name          IP Address    Subnet        MTU
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    enp0s9        192.168.0.108  192.168.0.0   1500
  dbasimplified1    enp0s9        192.168.0.107  192.168.0.0   1500

Check: MTU consistency of the subnet "192.168.56.0".

  Node              Name          IP Address    Subnet        MTU
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    enp0s3        192.168.56.12  192.168.56.0  1500
  dbasimplified1    enp0s3        192.168.56.11  192.168.56.0  1500

Check: MTU consistency of the subnet "192.168.10.0".

  Node              Name          IP Address    Subnet        MTU
  ----------------  ------------  ------------  ------------  ----------------
  dbasimplified2    enp0s8        192.168.10.12  192.168.10.0  1500
  dbasimplified1    enp0s8        192.168.10.11  192.168.10.0  1500
  Verifying Check that maximum (MTU) size packet goes through subnet ...PASSED

  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  dbasimplified1[enp0s9:192.168.0.107]  dbasimplified2[enp0s9:192.168.0.108]  yes

  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  dbasimplified1[enp0s3:192.168.56.11]  dbasimplified2[enp0s3:192.168.56.12]  yes

  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  dbasimplified1[enp0s8:192.168.10.11]  dbasimplified2[enp0s8:192.168.10.12]  yes
  Verifying subnet mask consistency for subnet "192.168.0.0" ...PASSED
  Verifying subnet mask consistency for subnet "192.168.56.0" ...PASSED
  Verifying subnet mask consistency for subnet "192.168.10.0" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast or broadcast check ...
Checking subnet "192.168.0.0" for multicast communication with multicast group "224.0.0.251"
Verifying Multicast or broadcast check ...PASSED
Verifying Network Time Protocol (NTP) ...
  Verifying '/etc/ntp.conf' ...
  Node Name                             File exists?
  ------------------------------------  ------------------------
  dbasimplified2                        yes
  dbasimplified1                        yes

  Verifying '/etc/ntp.conf' ...PASSED
  Verifying '/etc/chrony.conf' ...
  Node Name                             File exists?
  ------------------------------------  ------------------------
  dbasimplified2                        yes
  dbasimplified1                        yes

  Verifying '/etc/chrony.conf' ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED
Verifying Same core file name pattern ...PASSED
Verifying User Mask ...
  Node Name     Available                 Required                  Comment
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  0022                      0022                      passed
  dbasimplified1  0022                      0022                      passed
Verifying User Mask ...PASSED
Verifying User Not In Group "root": grid ...
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  dbasimplified2  passed                    does not exist
  dbasimplified1  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
  ------------------------------------  ------------------------
  dbasimplified1                        passed
  dbasimplified2                        passed

checking response for name "dbasimplified2" from each of the name servers
specified in "/etc/resolv.conf"

  Node Name     Source                    Comment                   Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified2  192.168.0.1               IPv4                      passed

checking response for name "dbasimplified1" from each of the name servers
specified in "/etc/resolv.conf"

  Node Name     Source                    Comment                   Status
  ------------  ------------------------  ------------------------  ----------
  dbasimplified1  192.168.0.1               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
  ------------  ------------------------  ------------------------
  dbasimplified2  no                        passed
  dbasimplified1  no                        passed

  Node Name     Running?                  Status
  ------------  ------------------------  ------------------------
  dbasimplified2  no                        passed
  dbasimplified1  no                        passed
Verifying Daemon "avahi-daemon" not configured and running ...PASSED
Verifying Daemon "proxyt" not configured and running ...
  Node Name     Configured                Status
  ------------  ------------------------  ------------------------
  dbasimplified2  no                        passed
  dbasimplified1  no                        passed

  Node Name     Running?                  Status
  ------------  ------------------------  ------------------------
  dbasimplified2  no                        passed
  dbasimplified1  no                        passed
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...INFORMATION (PRVG-11250)
Verifying /dev/shm mounted as temporary file system ...FAILED (PRVE-0426)
Verifying File system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED
Verifying Systemd login manager IPC parameter ...PASSED

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


Failures were encountered during execution of CVU verification request "stage -pre crsinst".

Verifying Physical Memory ...FAILED
dbasimplified2: PRVF-7530 : Sufficient physical memory is not available on node
                "dbasimplified2" [Required physical memory = 8GB (8388608.0KB)]

dbasimplified1: PRVF-7530 : Sufficient physical memory is not available on node
                "dbasimplified1" [Required physical memory = 8GB (8388608.0KB)]

Verifying Hard Limit: maximum open file descriptors ...FAILED
dbasimplified2: PRVG-0446 : Proper hard limit for maximum open file descriptors
                was not found on node "dbasimplified2" [Expected >= "65536" ;
                Found = "4096"].

dbasimplified1: PRVG-0446 : Proper hard limit for maximum open file descriptors
                was not found on node "dbasimplified1" [Expected >= "65536" ;
                Found = "4096"].

Verifying Hard Limit: maximum user processes ...FAILED
dbasimplified2: PRVG-0448 : Proper hard limit for maximum user processes was
                not found on node "dbasimplified2" [Expected >= "16384" ; Found
                = "14361"].

dbasimplified1: PRVG-0448 : Proper hard limit for maximum user processes was
                not found on node "dbasimplified1" [Expected >= "16384" ; Found
                = "14361"].

Verifying Soft Limit: maximum stack size ...FAILED
dbasimplified2: PRVG-0449 : Proper soft limit for maximum stack size was not
                found on node "dbasimplified2" [Expected >= "10240" ; Found =
                "8192"].

dbasimplified1: PRVG-0449 : Proper soft limit for maximum stack size was not
                found on node "dbasimplified1" [Expected >= "10240" ; Found =
                "8192"].

Verifying Package: cvuqdisk-1.0.10-1 ...FAILED
dbasimplified2: PRVG-11550 : Package "cvuqdisk" is missing on node
                "dbasimplified2"

dbasimplified1: PRVG-11550 : Package "cvuqdisk" is missing on node
                "dbasimplified1"

Verifying RPM Package Manager database ...INFORMATION
PRVG-11250 : The check "RPM Package Manager database" was not performed because
it needs 'root' user privileges.

Verifying /dev/shm mounted as temporary file system ...FAILED
dbasimplified2: PRVE-0426 : The size of in-memory file system mounted as
                /dev/shm is "1843" megabytes which is less than the required
                size of "2048" megabytes on node "dbasimplified2"

dbasimplified1: PRVE-0426 : The size of in-memory file system mounted as
                /dev/shm is "1843" megabytes which is less than the required
                size of "2048" megabytes on node "dbasimplified1"


CVU operation performed:      stage -pre crsinst
Date:                         Dec 27, 2025 3:58:29 PM
CVU home:                     /u01/app/19c/grid/
User:                         grid

7. Install Oracle Grid Infrastructure

1. Launch Oracle Grid Infrastructure Installer
Move to the Oracle Grid Infrastructure home directory and run the gridSetup.sh script to start the Grid Infrastructure installation wizard.
[grid@dbasimplified1 ~]$ cd /u01/app/19c/grid/
[grid@dbasimplified1 grid]$
[grid@dbasimplified1 grid]$ ./gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...
2. Select Grid Infrastructure Configuration Option
On the configuration option screen, choose Configure Oracle Grid Infrastructure for a New Cluster to set up a new Oracle RAC cluster, then click Next to continue.

3. Select Cluster Configuration
On the Cluster Configuration screen, choose Configure an Oracle Standalone Cluster to set up a standard Oracle RAC cluster, then click Next to proceed with the installation.

4. Configure Grid Plug and Play (SCAN)
On the Grid Plug and Play Information screen, choose Create Local SCAN and provide the Cluster Name, SCAN Name, and SCAN Port. This configures SCAN for client connectivity to the Oracle RAC cluster. Click Next to continue.

5. Configure Cluster Node Information
On the Cluster Node Information screen, confirm that both RAC nodes are added with the correct public hostnames and virtual hostnames (VIPs). Click on SSH connectivity to test passwordless SSH access between the nodes, then click Next to continue.

6. Configure Network Interface Usage
On the Network Interface Usage screen, configure the public interface for client access, assign a private interface for ASM and inter-node communication, and mark unused interfaces accordingly. Click Next to continue.

7. Select Storage Option for Grid Infrastructure
On the Storage Option Information screen, choose Use Oracle Flex ASM for storage to configure OCR and voting disks on ASM storage. This is the recommended option for Oracle RAC environments. Click Next to continue.

8. Configure Grid Infrastructure Management Repository
On the Grid Infrastructure Management Repository screen, choose No to skip configuring the management repository. This option is commonly skipped in lab or learning environments. Click Next to continue.

9. Create ASM Disk Group
On the Create ASM Disk Group screen, specify the disk group name as DATA, select External redundancy, and choose the ASM disks from the disk discovery path /dev/oracleasm/disks. This disk group will be used to store OCR and voting disks. Click Next to continue.

10. Specify ASM Password
On the Specify ASM Password screen, choose Use same passwords for these accounts and provide a strong password for the ASM users. This password will be used for ASM administration. Click Next to continue.

11. Configure Failure Isolation Support
On the Failure Isolation Support screen, choose Do not use Intelligent Platform Management Interface (IPMI). Click Next to proceed.

12. Specify Management Options
On the Specify Management Options screen, do not register the Grid Infrastructure with Enterprise Manager Cloud Control. Click Next to continue.

13. Configure Privileged Operating System Groups
On the Privileged Operating System Groups screen, assign the appropriate operating system groups for ASM administration, ASM DBA access, and ASM operator roles. These groups control ASM privileges at the OS level. Click Next to continue.

14. Specify Grid Infrastructure Installation Location
On the Specify Installation Location screen, confirm the directory location as configured earlier. Ensure the paths are correct and click Next to proceed.

15. Configure Root Script Execution
On the Root Script Execution Configuration screen, enable Automatically run configuration scripts and choose the root user credential option. Enter the root password to allow the installer to execute required root scripts automatically, then click Next.

16. Perform Prerequisite Checks
On the Prerequisite Checks screen, review the validation results. In lab or VirtualBox environments, some checks such as physical memory or DNS may show warnings. These can be safely ignored after verification. Click Next to continue with the installation.

17. Review Installation Summary
On the Summary screen, review all selected configuration settings for the Oracle Grid Infrastructure installation. Once verified, click Install to begin the installation process.
After successful installation, verify the Oracle Grid Infrastructure and cluster status.

18. Verify Oracle Grid Infrastructure and Cluster Status
Verify the Oracle RAC cluster status by checking node membership, CRS services, ASM status, and cluster resources to ensure Grid Infrastructure is running successfully on both nodes.
[grid@dbasimplified1 bin]$ cd /u01/app/19c/grid/bin
[grid@dbasimplified1 bin]$ ./olsnodes -n
dbasimplified1  1
dbasimplified2  2
[grid@dbasimplified1 bin]$
[grid@dbasimplified1 bin]$ ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@dbasimplified1 bin]$
[grid@dbasimplified1 bin]$ ./srvctl status asm
ASM is running on dbasimplified2,dbasimplified1
[grid@dbasimplified1 bin]$
[grid@dbasimplified1 bin]$ ./crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  OFFLINE      dbasimplified2           STABLE
ora.chad
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
ora.net1.network
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
ora.ons
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           Started,STABLE
      2        ONLINE  ONLINE       dbasimplified2           Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.dbasimplified1.vip
      1        ONLINE  ONLINE       dbasimplified1           STABLE
ora.dbasimplified2.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.qosmserver
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
--------------------------------------------------------------------------------

8. Install Oracle 19c Database software

1. Configure Passwordless SSH for Oracle User
Run the sshUserSetup.sh script to set up passwordless SSH access for the oracle user across both RAC nodes. This is required for Oracle 19c RAC database software installation.
[oracle@dbasimplified1 db_home1]$ cd /u01/app/19c/grid/deinstall/
[oracle@dbasimplified1 deinstall]$
[oracle@dbasimplified1 deinstall]$ ./sshUserSetup.sh -user oracle -hosts 'dbasimplified1 dbasimplified2' -noPromptPassphrase -confirm -advanced
2. Extract Oracle 19c Database Software
Unzip the Oracle 19c database software installation files into the Oracle database home directory to prepare for the RAC database software installation.
[oracle@dbasimplified1 ~]$ cd /u01/app/oracle/product/19c/db_home1
[oracle@dbasimplified1 db_home1]$
[oracle@dbasimplified1 db_home1]$ unzip /software/LINUX.X64_193000_db_home.zip
3. Launch Oracle 19c Database Installer
Execute the runInstaller script from the Oracle database home directory to start the Oracle 19c Database software installation wizard for RAC.
[oracle@dbasimplified1 db_home1]$ ./runInstaller
Launching Oracle Database Setup Wizard...
4. Select Oracle Database Installation Option
On the Select Configuration Option screen, choose Set Up Software Only. For Oracle RAC installations, the database software is installed first and the database is created later using DBCA. Click Next to continue.

5. Select Database Installation Option
On the Database Installation Option screen, choose Oracle Real Application Clusters database installation to install the database software in a RAC environment. Click Next to proceed.

6. Select RAC Nodes and Verify SSH Connectivity
On the Select List of Nodes screen, ensure both RAC nodes are selected for the database software installation. 

Test SSH connectivity to confirm that passwordless SSH is already configured between the nodes, then click Next to proceed.

7. Select Oracle Database Edition
On the Select Database Edition screen, choose Enterprise Edition, which is required for Oracle RAC features, and click Next to proceed with the installation.

8. Specify Oracle Database Installation Location
On the Specify Installation Location screen, confirm the Oracle base directory for the RAC database software installation. Ensure the locations are correct and click Next to proceed.

9. Configure Privileged Operating System Groups
On the Privileged Operating System Groups screen, assign the required operating system groups for database administration, backup and recovery, Data Guard, encryption management, and RAC administration. These groups control database privileges at the OS level. Click Next to continue.

10. Configure Root Script Execution
On the Root Script Execution Configuration screen, select Automatically run configuration scripts and choose the root user credential option. Provide the root password to allow the installer to run required root scripts automatically, then click Next to continue.

11. Perform Database Prerequisite Checks
On the Perform Prerequisite Checks screen, review the validation results for clock synchronization, NTP, and SCAN-related checks. In testing environments, these warnings can be safely ignored after verification. Click Next to continue with the installation.

12. Review Oracle Database Installation Summary
On the Summary screen, review all selected configuration details including database edition, Oracle base, database home, OS groups, and selected RAC nodes. Once verified, click Install to start the Oracle 19c RAC database software installation.

13. Oracle 19c Database Software Installation Completed
The Oracle Database 19c software has been successfully installed and registered on all RAC nodes. Click Close to exit the installer.

9. Create ASM disk groups using ASMCA

1. Launch ASM Configuration Assistant (ASMCA)
Run the asmca utility from the Grid Infrastructure bin directory to open the ASM Configuration Assistant. ASMCA is used to create and manage ASM disk groups for the RAC database.
[grid@dbasimplified1 ~]$ cd /u01/app/19c/grid/bin/
[grid@dbasimplified1 bin]$ ./asmca
2. ASM Configuration Assistant (ASMCA) Home Screen
After launching ASM Configuration Assistant, the welcome screen is displayed. From here, navigate to Disk Groups to create, configure, or manage ASM disk groups.

3. Create ASM Disk Group Using ASMCA
On the Create Disk Group screen in ASMCA, specify the disk group name as FRA, select External (None) redundancy, choose the available ASM disk from the disk discovery path, and click OK to create the FRA disk group.

4. Verify FRA ASM Disk Group Creation
After creating the FRA disk group, verify in ASMCA that both DATA and FRA disk groups are listed and mounted on all RAC nodes. This confirms that the ASM disk groups are ready.

5. Create RECO ASM Disk Group
Create a new partition for the RECO disk, mark it as an ASM disk using oracleasm, and then repeat the same ASMCA steps to create the RECO disk group.

10. Create the Oracle RAC database

1. Launch Database Configuration Assistant (DBCA)
[oracle@dbasimplified1 ~]$ cd /u01/app/oracle/product/19c/db_home1/bin/
[oracle@dbasimplified1 bin]$ ./dbca
2. Select Database Operation
On the Select Database Operation screen, choose Create a database to begin creating a new Oracle 19c RAC database using DBCA, then click Next to continue.

3. Select Database Creation Mode
On the Select Database Creation Mode screen, choose Advanced configuration to manually define database options such as storage, memory, services, and RAC-specific settings, then click Next to continue.

4. Select Database Deployment Type
On this screen, choose Oracle RAC as the database type with Admin Managed configuration. Select the General Purpose or Transaction Processing template, which is suitable for most OLTP workloads, and proceed by clicking Next.

5. Select List of Nodes
On the Select List of Nodes screen, choose all cluster nodes on which the Oracle RAC database should run. The local node is selected by default; ensure all required nodes are checked, then click Next to proceed.

6. Specify Database Identification Details
On the Specify Database Identification Details screen, provide a unique Global database name and SID prefix for the RAC database. Optionally, select Create as Container database (CDB) and configure the number and name of PDBs if required. After verifying the details, click Next to continue.

7. Select Database Storage Option
On the Select Database Storage Option screen, choose Use following for the database storage attributes and set the storage type to Automatic Storage Management (ASM). Specify +RECO/{DB_UNIQUE_NAME} as the database files location to store datafiles in the ASM RECO disk group. Ensure Use Oracle-Managed Files (OMF) is selected for automatic file naming and management, then click Next to proceed.

8. Select Fast Recovery Option
On the Select Fast Recovery Option screen, enable Specify Fast Recovery Area and choose Automatic Storage Management (ASM) as the recovery file storage type. Set the Fast Recovery Area to +FRA and define an appropriate FRA size. Enable archiving and keep Automatic archiving selected so that archive logs are stored in the FRA. After reviewing the archive log parameters, click Next to continue.

9. Select Oracle Data Vault Configuration Option
On the Select Oracle Data Vault Config Option screen, do not enable Oracle Database Vault or Oracle Label Security unless explicitly required for advanced security compliance. Click Next to proceed.

10. Specify Configuration Options: Memory
On the Specify Configuration Options, Select Use Automatic Shared Memory Management, set appropriate SGA and PGA sizes as per system capacity, then click Next.

11. Specify Management Options
On the Specify Management Options screen, do not enable CVU checks, Enterprise Manager Database Express, or EM Cloud Control registration for a basic RAC setup. These options can be configured later if required. Click Next to proceed.

12. Specify Database User Credentials
On the Specify Database User Credentials screen, choose Use the same administrative password for all accounts to simplify administration. Provide a password that meets Oracle’s recommended complexity standards (uppercase, lowercase, number, and special character), confirm it, and click Next to continue.

13. Select Database Creation Option
On the Select Database Creation Option screen, choose Create database to immediately create the database after configuration. Click Next to continue.

14. Perform Prerequisite Checks
On the Perform Prerequisite Checks screen, DBCA validates required configurations such as Single Client Access Name (SCAN) and DNS/NIS services. If the checks show warnings that are already handled or not applicable in your setup, mark them as Ignored and proceed by clicking Next.

15. Review Database Configuration
On the Summary screen, DBCA displays the complete configuration including RAC nodes, ASM disk groups, initialization parameters, memory settings, and Fast Recovery Area. Verify the settings carefully, optionally save the response file, and click Finish to proceed with database creation.

16. Database Creation Progress Page
On the Database Creation Progress Page, The progress percentage and log file locations are also displayed for monitoring and troubleshooting until the database creation is completed.

17. Database Creation Completed
On the Finish screen, DBCA confirms that the database has been created successfully. It displays important information such as the global database name, SID prefix, server parameter file location, and log directory. By default, all accounts except SYS and SYSTEM are locked. You can use the Password Management option to unlock required accounts and update passwords before starting database operations.

18. Verify Oracle RAC Database Status
  • First, check the PMON processes to confirm that the ASM instance and RAC database instances are running.
  • Next, set the correct ORACLE_SID and ORACLE_HOME using oraenv, then connect to the database as SYSDBA.
  • Finally, query gv$database to validate that the database is open in READ WRITE mode and operating as a PRIMARY database across all cluster instances.
[oracle@dbasimplified1 ~]$ ps -ef|grep pmon
oracle    1480  1606  0 14:07 pts/1    00:00:00 grep --color=auto pmon
grid      5009     1  0 10:48 ?        00:00:01 asm_pmon_+ASM1
oracle   26385     1  0 14:02 ?        00:00:00 ora_pmon_test1
[oracle@dbasimplified1 ~]$ . oraenv
ORACLE_SID = [test] ? test1
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/19c/db_home1
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@dbasimplified1 ~]$
[oracle@dbasimplified1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Dec 28 14:08:18 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> select name, open_mode, database_role from gv$database;

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
TEST      READ WRITE           PRIMARY
TEST      READ WRITE           PRIMARY
19. Verify Oracle Cluster Resources and RAC Database Status
Run crsctl stat res -t to verify that all Oracle Clusterware resources, ASM disk groups DATA, FRA, and RECO, SCAN listeners, VIPs, and the RAC database are ONLINE and STABLE on all cluster nodes.  
[root@dbasimplified1 ~]# cd /u01/app/19c/grid/bin/
[root@dbasimplified1 bin]# ./crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
ora.chad
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
ora.net1.network
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
ora.ons
               ONLINE  ONLINE       dbasimplified1           STABLE
               ONLINE  ONLINE       dbasimplified2           STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.RECO.dg(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           Started,STABLE
      2        ONLINE  ONLINE       dbasimplified2           Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       dbasimplified1           STABLE
      2        ONLINE  ONLINE       dbasimplified2           STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.dbasimplified1.vip
      1        ONLINE  ONLINE       dbasimplified1           STABLE
ora.dbasimplified2.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.qosmserver
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       dbasimplified2           STABLE
ora.test.db
      1        ONLINE  ONLINE       dbasimplified1           Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _home1,STABLE
      2        ONLINE  ONLINE       dbasimplified2           Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _home1,STABLE
--------------------------------------------------------------------------------
[root@dbasimplified1 bin]#

Conclusion: You have successfully configured a fully functional 2 node Oracle 19c RAC environment on VirtualBox without using DNS services. This setup demonstrates that Oracle RAC can be implemented using local host file entries while still providing clustering, ASM storage, and high availability features.

By completing this guide, you have gained practical hands on experience with Oracle Grid Infrastructure, ASM disk groups, and RAC database operations. This environment is well suited for learning, practice, and building strong Oracle RAC administration skills.

Post a Comment

© Ayaan Israr - All rights reserved. Premium By Ayaan Israr