Oracle Database 26ai RAC Installation Complete Guide (step-by step Implementation)


1. Introduction

Oracle Real Application Clusters (RAC) is an advanced database clustering technology that enables multiple servers (nodes) to concurrently access and run a single shared Oracle database. By allowing multiple instances to work together as a unified system, Oracle RAC delivers high availability, fault tolerance, scalability, and workload balancing for mission-critical enterprise environments.


In an Oracle Database 26ai RAC configuration, database services remain continuously available even if one node fails, as surviving nodes automatically take over the workload without service interruption. Oracle RAC also supports horizontal scalability, allowing additional nodes to be added to meet increasing performance and business demands.

This document provides a complete, hands-on, step-by-step guide for installing and configuring Oracle Database 26ai RAC on a two-node Oracle Linux 8.x environment running on VMware Workstation. It covers the full lifecycle of a RAC deployment, including operating system preparation, public and private network configuration, shared storage setup using ASM, Grid Infrastructure installation, ASM disk group creation, and RAC database creation and validation.

This guide is designed to be practical, execution-focused, and easy to follow, making it suitable for Oracle DBAs, system administrators, and learners who want to gain real-world experience deploying a fully functional Oracle Database 26ai RAC environment.


2. Environment Overview

2.1 Cluster Configuration

Component

Details

Cluster Type

Oracle Real Application Clusters (RAC)

Nodes

2-node RAC (node1 & node2)

Oracle Database Version

Oracle Database 26ai (Enterprise Edition)

Grid Infrastructure Version

Oracle Grid Infrastructure 26ai

Storage

ASM (Automatic Storage Management)

Database Type

Container Database (CDB) with PDB

PDB Name

prodpdb

Database Name

prod

DB_UNIQUE_NAME

prod

ASM Disk Groups

OCRVD, DATA, FRA

 

2.2 Node-1 Details

Parameter

Value

Platform

Oracle Linux Server release 8.10

Server Name

node1.localdomain

Server IP (Public)

192.168.18.11

DB Version

Oracle Database 26ai – 2 Node RAC

ASM Instance

+ASM1

ORACLE_SID

prod1

Database Name

prod

Multitenancy

CDB with PDB: prodpdb

DB_UNIQUE_NAME

prod

Oracle Home Path

/u01/app/oracle/product/26ai/dbhome_1

GRID Home Path

/u01/app/26ai/grid

 

2.3 Node-2 Details

Parameter

Value

Platform

Oracle Linux Server release 8.10

Server Name

node2.localdomain

Server IP (Public)

192.168.18.12

DB Version

Oracle Database 26ai – 2 Node RAC

ASM Instance

+ASM2

ORACLE_SID

prod2

Database Name

prod

Multitenancy

CDB with PDB: prodpdb

DB_UNIQUE_NAME

prod

Oracle Home Path

/u01/app/oracle/product/26ai/dbhome_1

GRID Home Path

/u01/app/26ai/grid


3. Prerequisites

3.1 Hardware Requirements

   Server Nodes (Each Node)

  • Minimum 8 GB RAM (Recommended: 16 GB+)
  • 2 vCPUs or more
  • 100 GB OS disk or more
  • 2 Network Adapters:
    • Public Network – Client access
    • Private Network – Interconnect (cluster heartbeat)

     Shared Storage (Visible to Both Nodes)

Disk Purpose

Size

Redundancy

OCR + Voting Disk

10–20 GB

External redundancy

DATA

50–100 GB

External redundancy

FRA

20–40 GB

External redundancy

 

3.2 Network Requirements

  Each node must have:

  Public Network (eth0):

  • Public hostname
  • Public IP

   Example:

  • Node1: node1.localdomain (192.168.18.11)
  • Node2: node2.localdomain (192.168.18.12)

 

Private Interconnect (eth1):

  For RAC heartbeats

    Example:

  • Node1: node1-priv.localdomain (192.168.1.11)
  • Node2: node2-priv.localdomain (192.168.1.12)

 

Virtual IPs (VIPs):

    Required for failover

  • Node1 VIP: node1-vip.localdomain (192.168.18.13)
  • Node2 VIP: node2-vip.localdomain (192.168.18.14)

 

SCAN IPs:

    3 SCAN IPs (recommended)

     Example:

  • scan1: 192.168.18.15
  • scan2: 192.168.18.16
  • scan3: 192.168.18.17

     SCAN must resolve via DNS.


4. Download Required Oracle Software

You may download all the required Oracle software—Grid Infrastructure and Oracle Database Home (DB Home)—from the provided link. These installation files contain the essential components needed to configure Oracle Clusterware, ASM (Automatic Storage Management), and the Oracle Database software required for setting up the 26ai RAC environment. Ensure that you download the correct versions for Linux and verify file integrity before starting the installation process.

  Link :- Oracle AI Database 26ai Download for Linux x86-64

-------- Download the two ZIP files shown in the picture by clicking the link above --------




Installation has 6 phases:

• Installing the Operating System and Preparing the Servers

• Configuring the Disks with udev

• Installation Phase 1- Installing Grid

• Installation Phase 2- Installing Oracle Software

• Installation Phase 3- Adding Disk Group with asmca

• Installation Phase 4- Creating Database with DBCA


5. Installing the Operating System and Preparing the Servers

The operating system Oracle Linux 8.10 has been successfully installed on VMware Workstation.  You may continue using the server on which this OS has been installed to proceed with the RAC setup.

After booting the server, ensure the operating system is fully updated and install all required packages and dependencies needed for Oracle Grid Infrastructure and RAC. This preparation step is essential for a smooth and error-free deployment of the two-node Oracle Database 26ai RAC environment.

 

Verify OS Version

# cat /etc/os-release

# cat /etc/hostname

 


For installing Oracle Database 26ai on Oracle Linux 8, the recommended preinstallation package is:

oracle-database-preinstall-23ai

Oracle has not released a dedicated 26ai preinstall RPM for Oracle Linux 8 at this time. However, the 23ai preinstall package is fully forward-compatible and officially supported for newer Oracle Database releases on the same OS version.

As a fallback option, oracle-database-preinstall-19c can also be used if the 23ai package is unavailable.

These preinstallation RPMs automatically perform the following essential system configurations required for Oracle Database installation:

  • Configure kernel parameters (sysctl)
  • Set user limits (ulimit)
  • Install all required OS packages and dependencies
  • Create the oracle user and standard Oracle groups
  • Apply recommended OS-level settings for database stability and performance

Using the oracle-database-preinstall RPM ensures the operating system meets Oracle’s prerequisites and significantly simplifies the database installation process, reducing manual configuration errors.

# dnf -y update

# dnf install -y oracle-database-preinstall-23ai

# dnf install -y dnsmasq*

 

Change/Set the password of the Oracle user.

# passwd oracle

 


Disable "Secure Linux" :

# vi /etc/selinux/config

SELINUX=disabled

 


Stop and disable “Firewall” service :

# systemctl stop firewalld.service

# systemctl disable firewalld.service

 


Directory Structure Preparation

Before starting the installation, the required directory structure was created to organize the Oracle Grid Infrastructure, Oracle Database software, inventory, and installation files.

An installation staging directory /u01/oraInstall was created to store the Oracle Grid and Database installation media. This location can be customized based on individual requirements.

The following directories were configured:

  • /u01/app/26ai/grid – Oracle Grid Infrastructure home
  • /u01/app/oracle/product/26ai/dbhome_1 – Oracle Database software home
  • /u01/app/oraInventory – Oracle inventory directory
  • /u01/oraInstall – Installation media staging directory

After creating the directories, ownership and permissions were assigned to ensure proper access for the Oracle software owner

# mkdir -p /u01/app/26ai/grid

# mkdir -p /u01/app/oracle/product/26ai/dbhome_1

# mkdir -p /u01/app/oraInventory

# mkdir -p /u01/oraInstall

# chown -R oracle:oinstall /u01

# chmod -R 775 /u01

 




We’ll add 2 ethernet cards to our server, that’s why we shut down the server.

# shutdown -h now

Click "Edit virtual machine settings".



Click “Add”.

 


Select “Network Adapter” and click “Finish”.




Add 2 ethernet cards in the same way too and adjust both as “host-only”.

 

 

 

 

 

 

 

 

 

 

 

Boot the server.

Ethernet cards are added to the server as “ens224” and “ens256”. Click “connect” for both of them.



Manage settings for “ens224”. This card will be used for “public network”.

 




Manage settings for “ens256”. This card will be used for “private network”.

 


edit the file /etc/hosts.

# vi /etc/hosts

 


Reboot the server.

# reboot

Since we’ll set up a small scaled system or a test environment, we’ll use “dnsmasq” for the name resolution service. First, enable “dnsmasq” service in order to boot the service automatically when the server is rebooted.

# systemctl enable dnsmasq

 



Then, add the line below to the end of the file /etc/dnsmasq.conf.

# vi /etc/dnsmasq.conf

local=/localdomain/


 

In the servers which will do name resolution, enter the server address where you’ve configured “dnsmasq” to the /etc/resolv.conf file.

 

Since we’ve configured “dnsmasq” on the Node 1, edit and lock the file as in the picture.

# chattr +i /etc/resolv.conf


Reboot the server.

# reboot

Check the resolution of scan IPs.

# nslookup rac-scan

 


# shutdown -h now


Network configuration is done for the first server and by cloning the first, we’ll create the second server. Then, we’ll add the disks that can be seen jointly by the servers. I’ve created a folder named “ORACLE SHARED FOLDER” in the index where virtual machines are installed, I’ll create the disks here. You may create them wherever you want. I introduce the folder I’ve created as the way the first server can see it.

 





Click “Next” and continue.

 


Select the index where you’ve created the folder.

 


Select “Enable this share”.





You’ve created the folder. Now, clone the machine you’ve configured.

 




 


 


 


 Upon cloning, boot the server and change the hostname.

# vi /etc/hostname

 


Edit IP addresses of the server.


Manage the settings for "ens224".




Manage the settings for “ens256”.



Reboot the server.

# reboot

 

Check if the second server too does name resolution.

# nslookup rac-scan

 



Check the communication between the servers.

In the 1st server:

# ping node2

# ping node2-priv

 
















In the 2nd server:

# ping node1

# ping node1-priv




Add the disks that are shared and visible to both servers to the folder you created earlier. Since we will create three ASM disk groups, add the following disks:

  • 20 GB disk for OCR + Voting (OCRVD)
  • 30 GB disk for DATA
  • 20 GB disk for FRA (RECO)

After attaching the disks, shut down both servers before proceeding with the RAC installation.

Shut down both servers.

# shutdown -h now

 

Click “Edit virtual machine settings”.



Click “Add” and then “Hard Disk”.



Select “NVME”.

 


Create a new virtual disk and continue.

 


Click “Allocate all disk space now” and “Next”.

 


I create the first disk named “OCRVD” in the folder I’ve created before.

 


We’ve created the first disk, let’s add two more disk named “DATA” & “RECO” in that index in the same way.

 


We’ve added the disks for the first server. Add those disks for the Second server too. Click “Edit virtual machine settings”.



Upon clicking “Add”, select “Hard Disk”.

 


Select “NVME”.

 


Click “Use an existing virtual disk”.



Choose the disk you’ve added before and continue by clicking “Finish”.



Do the same for the other disks too.

 

In RAC, both servers should be able to write disks. When you boot one of the servers, VMware will automatically lock the disks you’ve added and prevent the other server from booting. To refrain from that situation, you need to make some arrangements in the index where virtual servers are in.

Open the files “RAC26aiNode1.vmx” and “RAC26aiNode2.vmx” with notepad++ in the index where virtual servers are installed and add the lines below to the end.


disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

disk.enableuuid = "TRUE"

bios.bootdelay = "8000"

 


6. Configuring the Disks with udev

udev is a Linux device manager that dynamically manages device files in the /dev directory. It allows administrators to define rules that control device ownership, permissions, and naming when disks are detected by the operating system.

In Oracle ASM environments, udev is used to:

  • Ensure persistent disk identification across system reboots
  • Assign correct ownership and permissions to ASM disks
  • Allow Oracle Grid Infrastructure to reliably discover and manage disks
  • Avoid dependency on deprecated tools like oracleasm

Using udev is the recommended and supported approach for configuring ASM disks on modern Oracle Linux versions, including Oracle Linux 8.x.

This ensures a stable, predictable, and production-ready ASM disk configuration.

 

Check the disks you’ve added.

# ls -al /dev/nvme*

The disks “nvme0n2”, “nvme0n3”, and “nvme0n4” are the shared virtual disks that we attached earlier for RAC storage. These disks will be used to create the ASM disk groups (OCR/Voting, DATA, and FRA).

 

1st Server (node 1) :

Edit the udev rules file:

# vi /etc/udev/rules.d/99-oracle-asm.rules

Add the following entries:

# ASM Disk for OCRVD

KERNEL=="nvme0n2", OWNER="oracle", GROUP="oinstall", MODE="0660"

# ASM Disk for DATA

KERNEL=="nvme0n3", OWNER="oracle", GROUP="oinstall", MODE="0660"

# ASM Disk for FRA

KERNEL=="nvme0n4", OWNER="oracle", GROUP="oinstall", MODE="0660"

Reload and apply the udev rules:

# udevadm control --reload-rules

# udevadm trigger

Verify Permissions

# ls -l /dev/nvme0n2

# ls -l /dev/nvme0n3

# ls -l /dev/nvme0n4

 


2nd Server (node 2) :

Edit the udev rules file:

# vi /etc/udev/rules.d/99-oracle-asm.rules

Add the following entries:

# ASM Disk for OCRVD

KERNEL=="nvme0n2", OWNER="oracle", GROUP="oinstall", MODE="0660"

# ASM Disk for DATA

KERNEL=="nvme0n3", OWNER="oracle", GROUP="oinstall", MODE="0660"

# ASM Disk for FRA

KERNEL=="nvme0n4", OWNER="oracle", GROUP="oinstall", MODE="0660"

Reload and apply the udev rules:

# udevadm control --reload-rules

# udevadm trigger

Verify Permissions

# ls -l /dev/nvme0n2

# ls -l /dev/nvme0n3

# ls -l /dev/nvme0n4


After this step, the ASM disks are available with correct permissions and can be selected during Grid Infrastructure installation or ASMCA disk group creation.


Transfer Installation Files to the Linux Server

After downloading the required Oracle installation files in Step 4 (Grid Infrastructure and Oracle Database Home), transfer them from your Windows machine to Node 1 only using WinSCP.

1.    Open WinSCP and connect to Node 1 using the oracle user.

2.    Navigate to the desired folder on the Linux server (example: /u01/oraInstall or any folder you created for installation files).

3.    Upload the downloaded zip files:

·  Grid Infrastructure installation file

·  Oracle Database Home installation file

There is no need to copy the files to Node 2.

Since this is a RAC installation, the setup process will automatically copy the required components from Node 1 to Node 2 during Grid and Database installation.

This ensures that only one node holds the installation media while the RAC installer handles the distribution across the cluster.




Switch to Oracle user and create profile files.

1st Server:

# su - oracle

$ vi .asm_env

$ vi .db_env


 

2nd Server:

# su - oracle

$ vi .asm_env

$ vi .db_env

 


Upon creating the profiles, start chrony service on both servers.

# systemctl enable chronyd

# systemctl restart chronyd


7. Installation Phase 1- Installing Grid

Unzip with the Oracle user.

$ unzip LINUX.X64_2326100_grid_home.zip -d /u01/app/26ai/grid/

 


 

After unzip is Done. Install “cvuqdisk” with root user. (on both servers)

# rpm -Uvh cvuqdisk-1.0.10-1.rpm

 



Since we unzipped in the first server, “cvuqdisk rpm” isn’t in the second server. That’s why we send it with scp and install.

# scp cvuqdisk-1.0.10-1.rpm root@node2:/tmp

 


Go to index /tmp in the 2nd server and install.

# cd /tmp

# rpm -Uvh cvuqdisk-1.0.10-1.rpm




 

Before starting the installation, enable the GUI by setting export DISPLAY=:0 and allow root access with xhost +.


 

On the first server, reboot the system before beginning. Log in as the Oracle user, set up the Grid environment by sourcing the profile script, and then start the installation.

$ . .asm_env

$ cd /u01/app/26ai/grid

$ ./gridSetup.sh

 




Start the installation by clicking “Configure Oracle Grid Infrastructure for a New Cluster”.

 


Click “Configure Cluster to manage Oracle RAC database ”.



Choose names for Cluster and Scan. Cluster name shouldn’t be longer than 15 characters, otherwise you encounter fault during installation. (Root.sh step 16)

 


Add the information of the 2nd server.



click “Setup”. Test SSH connectivity.

 





Define the network configuration. I’ve told you before that we’ll use public network for “ens224” and private network for “ens256”.

 


Click “Use Oracle Flex ASM for storage”.



Choose the index, where you’ve defined the disks, with Change Discovery Path. Make the Disk Group Name OCRVD. Select External in Redundancy.

High Redundancy: Data is stored with 3 different copies. No data loss even 2 groups crash.

Normal Redundancy: Data is stored with 2 different copies. No data loss even the other group crashes.

External Redundancy: Data is stored with only a copy. It’s better if you store systems in normal redundancy disk groups.




Choose the passwords. You can choose a different password, I’ll use the same.



You should tick “Enable Automatic Self Correction”

 


Click “Do not use Intelligent Platform Management Interface (IPMI)”.



Click “Next” since we won’t use EM Cloud Control.


Adjust the groups.



Check if the Oracle Base index is correct.

 


Click “Next”.



I suggest running the scripts manually but since this is a test environment, we’ll run them automatically.


 


No problem seen in pre-check.

Click “Install” and start the installation.



It asks for permission to run the scripts automatically. Click “Yes” and allow it.



This is how installing Grid ends.

Next, verify the Grid Infrastructure status by running:

$ crsctl stat res -t

This command displays the Clusterware resource status in a tree format. It shows the state of essential cluster components such as:

  • Cluster Synchronization Services (CSS)
  • Cluster Ready Services (CRS)
  • ASM instance
  • Network, SCAN, and Listener resources
  • VIPs and other cluster-managed services




If everything is configured properly, you will see resources running on both nodes with status ONLINE, confirming that your Grid Infrastructure is functioning correctly.

 


8. Installation Phase 2- Installing Oracle Software

Unzip with the Oracle user.

$ unzip LINUX.X64_2326100_db_home.zip -d /u01/app/oracle/product/26ai/dbhome_1

 

After unzip is Done . set up the db environment by sourcing the profile script, and then start the installation.

$ . .db_env

$ cd /u01/app/oracle/product/26ai/dbhome_1

$ ./runInstaller

 


Click “Set Up RAC Software only”.

 


Note: For RAC install, do 'Set Up Software Only' and then run DBCA (Database Configuration Assistant) from the Oracle home.

 

Click “Oracle Real Application Clusters database installation”.

 


Be sure that both servers are selected and SSH Connectivity and click “Next”.



Be sure that software location is the “/u01/app/oracle/product/26ai/dbhome_1” index.

 


Click “Next”.


Write the root password to run the scripts automatically.

 


Click “Install”.


Approve to run the scripts automatically.

 



Finish the software installation by clicking “Close”.

9. Installation Phase 3- Adding Disk Group with asmca

creating the disk groups required for the RAC database, we will use the ASM Configuration Assistant (asmca) tool. This utility allows us to graphically create and manage ASM disk groups such as DATA and RECO.

Before launching asmca, ensure that the correct Grid Infrastructure environment is loaded. To do this, log in as the oracle user and source the .asm_env file:

 

$ . .asm_env

$ asmca

 

Once the environment is set, you will be ready to start asmca to create the ASM disk groups that will store the database files.

 


 

As you see, we have one disk group which we created during grid installation.

Click “Create”.

 


I name the disk group as “DATA” & “RECO” where we’ll create the database. You can name it however you want. Add the disk you’ve configured with udev before. Click “OK”.

 



We’ve created the disk group. You can view disk groups as in the picture. Click “Exit” and leave the asmca tool.




10. Installation Phase IV- Creating Database with DBCA

you must load the Database Home environment using the .profile_db file. Once the database environment variables are active, you can start the Database Configuration Assistant (DBCA) to create the RAC database:

 

$ . .db_env

$ dbca

The DBCA tool will guide you through the graphical interface to configure a two-node RAC database, including selecting the database name, storage options (ASM), character set, memory settings, and pluggable database (PDB) configuration.

 

Click “Create a database”.

 


Click “Advanced Configuration”.

 


Click “General Purpose or Transaction Processing” and click “Next”.



Be sure that servers are selected and click “Next”.

 


You need to name the database and adjust sid value. We chose both as ‘prod’.  Click “Create as Container database” name PDB as ‘prodpdb’ and continue.



Select “+DATA” which is a disk group we’ve added.

 


Enable “Archiving” and Select “RECO”.



Since we’ll not use “DB Vault” and “Label Security”, click “Next”.



We’ll continue by using ASSM, if you wish you can use something else in accordance with your system. What’s important is that, the value shouldn’t exceed two third of the physical RAM value of the server.

 


Click “Next”.

 

Continue because we won’t use cloud control.



Choose the passwords for “SYS” and “SYSTEM”.

 


Select “Create Database”.



Click “Finish” and start the installation.

 


Click “Close” and finish the installation.





11. Final Status Verification
 



 

12. Summary

In this deployment, a fully functional two-node Oracle Database 26ai RAC environment was successfully installed and configured on Oracle Linux 8.10, running on VMware Workstation.

All major components were completed:

• Operating system installation and prerequisite configuration
• Network setup (Public, Private Interconnect, VIP, SCAN)
• Shared ASM storage configuration (OCR/Voting, DATA, FRA)
• Oracle Grid Infrastructure 26ai installation
• Oracle Database 26ai Home installation
• RAC database creation (CDB with PDB)
• Environment profile configuration
• Comprehensive validation and post-installation checks

The system is now fully operational, highly available, and ready for RAC testing, learning, and enterprise-grade workload deployment.


13. New Features in Oracle Database 26ai

Oracle Database 26ai introduces several enhancements focused on automation, resilience, performance optimization, and operational simplicity, making it a strong choice for modern on-prem and cloud-ready deployments.

 

🔹 Key New Features in Oracle Database 26ai

1. Autonomous & Self-Correcting Capabilities

Oracle 26ai brings deeper automation into core database and Grid Infrastructure operations. Features such as Automatic Self Correction in Grid Infrastructure help detect and fix known configuration issues proactively, reducing manual intervention and improving cluster stability.

2. Improved Grid Infrastructure Resilience

Enhanced cluster health monitoring, smarter failure isolation, and better interconnect handling increase overall RAC reliability and reduce unplanned downtime in multi-node environments.

3. Simplified Installation and Configuration

The 26ai installers provide clearer workflows, improved prerequisite validation, and smarter defaults, helping DBAs complete installations faster with fewer configuration errors.

4. Performance and Scalability Enhancements

Oracle 26ai optimizes internal database processes for better CPU, memory, and I/O utilization. RAC environments benefit from improved cache coordination and interconnect efficiency, supporting higher workloads with consistent performance.

5. Modern Storage Integration

Better support for ASM enhancements, udev-managed devices, and Oracle ASM Filter Driver (AFD) allows more predictable and secure storage management, especially on Oracle Linux 8 and later.

6. Cloud-Ready and Future-Proof Architecture

Oracle Database 26ai is designed with hybrid and cloud deployments in mind, offering smoother transitions between on-prem, OCI, and engineered systems while maintaining consistent architecture and tooling.


14. Why Prefer Oracle Database 26ai

·        Reduced operational overhead through automation and self-healing features

·        Higher availability and fault tolerance, especially in RAC setups

·        Faster deployments with improved installer intelligence

·        Better performance for enterprise and mission-critical workloads

·        Long-term platform readiness for cloud, hybrid, and AI-driven workloads