Close Menu
  • Home
  • Oracle
    • ASM
    • Data Guard
    • OEM
    • RAC
  • MongoDB
  • Performance
  • Python
  • Shell Script
  • Tools
  • Troubleshooting
Search

Oracle RAC 12.2 on VMware Workstation — Post 5: Final Validation and Quick Reference

2026-05-11 Oracle By Henrique

Oracle RAC 12.2 on VMware Workstation – Post 4: Oracle Database Installation and DBCA

2026-05-11 Oracle By Henrique

Oracle RAC 12.2 on VMware Workstation — Post 2: Oracle Linux Configuration and iSCSI

2026-05-11 Oracle By Henrique
YouTube LinkedIn RSS
  • Home
  • About
  • Contact
  • Legal
    • Cookie Policy
    • Disclaimer
    • Privacy Policy
    • Terms of Use
  • RSS
  • English
    • Portuguese (Brazil)
Execute StepExecute Step
YouTube LinkedIn RSS
  • Home
  • Oracle
    • ASM
    • Data Guard
    • OEM
    • RAC
  • MongoDB
  • Performance
  • Python
  • Shell Script
  • Tools
  • Troubleshooting
Execute StepExecute Step
Home » Oracle RAC 12.2 on VMware Workstation — Post 2: Oracle Linux Configuration and iSCSI
Oracle RAC

Oracle RAC 12.2 on VMware Workstation — Post 2: Oracle Linux Configuration and iSCSI

HenriqueBy Henrique2026-05-11Updated:2026-05-195 Comments13 Mins Read
Share
Facebook Twitter LinkedIn Pinterest Email Telegram WhatsApp

This post is also available in: Português (Portuguese (Brazil))

Series: Oracle RAC 12.2 — Complete Installation on VMware Workstation


📌 About this series: This guide covers Oracle RAC 12c, which is out of support. The goal is to document learning and revisit concepts — not to recommend this version for production. Read the full context in the series overview →

📋 This series — Oracle RAC 12.2 on VMware Workstation:

Series posts
Series Overview — RAC architecture, environment, and software
Post 1 — VMware Setup and targetcli iSCSI Storage
Post 2 — Oracle Linux Configuration and iSCSI Initiator ← this post
Post 3 — Grid Infrastructure 12.2 Installation
Post 4 — Oracle Database Installation and DBCA
Post 5 — Final Validation and Quick Reference

⚙️ Prerequisite: Post 1 completed — VMware configured and targetcli with iSCSI LUNs ready on vpslab.


Create the orclrac1 VM

Create the VM in VMware

File → New Virtual Machine → Custom (advanced) → Next
→ Hardware compatibility: select your installed VMware Workstation version → Next
→ I will install the operating system later → Next
→ Guest OS: Linux | Oracle Linux 64-bit → Next
→ Name: orclrac1
→ Location: /vms01/oracle/orclrac1/
→ Processors: 2 sockets × 2 cores → Next
→ Memory: 8192 MB → Next
→ Network: Custom → /dev/vmnet0 (public) → Next
→ I/O Controller: LSI Logic → Next
→ Disk: SCSI | 60 GB | Single file → Next
→ Finish

Adjust Hardware

With the VM created and powered off, adjust in Settings:

ItemConfiguration
Memory8192 MB + check Reserve all guest memory
Processors2 × 2 cores + check Virtualize VT-x/AMD-V
Network AdapterCustom → /dev/vmnet0 (public)
Network Adapter 2 (add)Custom → /dev/vmnet1 (interconnect)
Network Adapter 3 (add)Custom → /dev/vmnet0 (iSCSI — same vmnet0)
Hard Disk 2 (add)100 GB — SCSI 0:1 — for /u01

Edit orclrac1.vmx

grep "EnableUUID\|time.synchronize" /vms01/oracle/orclrac1/orclrac1.vmx

If not present, add:

cat >> /vms01/oracle/orclrac1/orclrac1.vmx << 'EOF'

time.synchronize.continue = "FALSE"
time.synchronize.restore = "FALSE"
time.synchronize.resume.disk = "FALSE"
time.synchronize.shrink = "FALSE"
time.synchronize.tools.startup = "FALSE"
disk.EnableUUID = "TRUE"
EOF

⚠️ Disabling time sync is mandatory for RAC. VMware Tools syncing the clock independently can cause drift between nodes and lead Clusterware to evict a node.

⚠️ Duplicate entries in .vmx prevent the VM from starting. Always check before adding.

Install Oracle Linux 7.9

Mount the ISO and power on the VM. The installer shows an Installation Summary with these sections:

ScreenConfiguration
Date & TimeSelect your region and city. Network Time: OFF
KeyboardEnglish (US) — already selected
Language SupportEnglish (United States) — already selected
Installation SourceLocal media — do not change
Software SelectionMinimal Install
Installation DestinationSelect only sda (60 GB) — sdb unchecked. Partitioning: Automatically configure
KdumpUncheck Enable kdump
Network & Host NameDo not configure network — set hostname: orclrac1.oracle.local → Apply
Security PolicyApply security policy: OFF
Root PasswordStrong password
User CreationDo not create a user

Click Begin Installation. Wait for completion and reboot.

Enable Temporary Network via nmtui

💡 Why do this now? The installation was completed without configuring the network. nmtui enables the interface temporarily via DHCP — just to get SSH access. From this point all commands run remotely.

In the orclrac1 console:

nmtui

Navigate to: Edit a connection → ens33 → check Automatically connect → OK

Then: Activate a connection → ens33 → Activate → Back → Quit

ip addr show ens33

Connect via SSH from the host:

ssh root@<dhcp-ip>

Configure Oracle Linux on orclrac1

All commands from here run over SSH.

Fix Interface Names and Configure IPs

Step 1 — Apply GRUB fix:

sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 /' \
  /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

Step 2 — Remove old interface files and create new ones:

rm -f /etc/sysconfig/network-scripts/ifcfg-ens33 \
      /etc/sysconfig/network-scripts/ifcfg-ens34 \
      /etc/sysconfig/network-scripts/ifcfg-ens35

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << 'EOF'
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.15.170
NETMASK=255.255.255.0
GATEWAY=192.168.15.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV6INIT=no
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth1 << 'EOF'
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=10.10.10.1
NETMASK=255.255.255.0
DEFROUTE=no
IPV6INIT=no
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth2 << 'EOF'
TYPE=Ethernet
BOOTPROTO=none
NAME=eth2
DEVICE=eth2
ONBOOT=yes
IPADDR=192.168.15.130
NETMASK=255.255.255.0
DEFROUTE=no
IPV6INIT=no
EOF

Step 3 — Reboot:

reboot

After rebooting, connect via SSH and validate:

ssh root@192.168.15.170

ip addr show eth0    # 192.168.15.170
ip addr show eth1    # 10.10.10.1
ip addr show eth2    # 192.168.15.130

Mount the /u01 Disk

lsblk
fdisk /dev/sdb
KeyAction
nNew partition
pPrimary type
1Partition number
EnterAccept first sector (default)
EnterAccept last sector (default)
wWrite and exit
mkfs.xfs /dev/sdb1
mkdir -p /u01
blkid /dev/sdb1    # note the UUID

echo "UUID=<uuid>   /u01   xfs   defaults   0 0" >> /etc/fstab
mount -a
df -h /u01

Configure Hostname and /etc/hosts

hostnamectl set-hostname orclrac1.oracle.local
cat >> /etc/hosts << 'EOF'

192.168.15.170   orclrac1        orclrac1.oracle.local
192.168.15.171   orclrac2        orclrac2.oracle.local

192.168.15.180   orclrac1-vip    orclrac1-vip.oracle.local
192.168.15.181   orclrac2-vip    orclrac2-vip.oracle.local

10.10.10.1       orclrac1-priv   orclrac1-priv.oracle.local
10.10.10.2       orclrac2-priv   orclrac2-priv.oracle.local

192.168.15.190   orclrac-scan    orclrac-scan.oracle.local
192.168.15.191   orclrac-scan    orclrac-scan.oracle.local
192.168.15.192   orclrac-scan    orclrac-scan.oracle.local

192.168.15.3     vpslab          vpslab.oracle.local
EOF

Install Prerequisite Packages

yum install -y oracle-database-server-12cR2-preinstall
yum install -y open-vm-tools iscsi-initiator-utils chrony

Kernel Parameters

grep "shmmax" /etc/sysctl.conf

If not configured by the preinstall package:

cat >> /etc/sysctl.conf << 'EOF'

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
vm.nr_hugepages = 2048
EOF

sysctl -p

Shell Limits

cat >> /etc/security/limits.conf << 'EOF'

oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc     16384
oracle   hard   nproc     16384
oracle   soft   stack     10240
oracle   hard   stack     32768
oracle   hard   memlock   134217728
oracle   soft   memlock   134217728
EOF

Create ASM Groups and Configure the oracle User

groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin

usermod -a -G asmadmin,asmoper,asmdba oracle

echo "oracle:Welcome1" | chpasswd

id oracle

Oracle Directory Structure

mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1
mkdir -p /u01/stage

chown -R oracle:oinstall /u01
chmod -R 775 /u01

Environment Variables

cat >> /home/oracle/.bash_profile << 'EOF'

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/12.2.0/grid
export ORACLE_SID=+ASM1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS'
umask 022

alias grid_env='export ORACLE_HOME=/u01/app/12.2.0/grid; export ORACLE_SID=+ASM1; export PATH=$ORACLE_HOME/bin:$PATH; echo "Grid Home: $ORACLE_HOME"'
alias db_env='export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1; export ORACLE_SID=ORCL1; export PATH=$ORACLE_HOME/bin:$PATH; echo "DB Home: $ORACLE_HOME"'
EOF

Disable Firewall and SELinux

systemctl disable firewalld
systemctl stop firewalld
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

Configure Swap

Oracle recommends at least 8 GB of swap for VMs with 8 GB of RAM. Run on both nodes to avoid OUI prerequisite warnings:

dd if=/dev/zero of=/swapfile bs=1M count=8192
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

free -h

Configure Chrony

Add external NTP servers before enabling the service. Both Grid and Database OUI validate synchronization with an external source — without this, NTP checks will fail during installation:

cat >> /etc/chrony.conf << 'EOF'
server 216.239.35.0 iburst
server 216.239.35.4 iburst
EOF

systemctl enable chronyd
systemctl restart chronyd
sleep 15
chronyc sources

Confirm at least one source has * in the first column before proceeding:

^* 216.239.35.0    1   6   377   ...

Reboot and Validate

reboot
sestatus           # permissive
df -h /u01         # ~100 GB
ip addr show eth0  # 192.168.15.170
hostname           # orclrac1.oracle.local
id oracle          # confirm ASM groups
chronyc sources    # confirm *

Clone orclrac1 → orclrac2

⚠️ orclrac1 must be completely powered off before cloning.

Right-click on orclrac1 → Manage → Clone
→ Full clone
→ Name: orclrac2
→ Location: /vms01/oracle/orclrac2/
→ Finish

Regenerate orclrac2 MAC Addresses

Settings → Network Adapter   → Advanced → Generate
Settings → Network Adapter 2 → Advanced → Generate
Settings → Network Adapter 3 → Advanced → Generate

Adjust orclrac2 — Hostname, IPs, and SIDs

Power on orclrac2 and run as root:

hostnamectl set-hostname orclrac2.oracle.local

sed -i 's/192.168.15.170/192.168.15.171/' \
  /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/10.10.10.1/10.10.10.2/' \
  /etc/sysconfig/network-scripts/ifcfg-eth1
sed -i 's/192.168.15.130/192.168.15.131/' \
  /etc/sysconfig/network-scripts/ifcfg-eth2

systemctl restart network

ip addr show eth0    # 192.168.15.171
ip addr show eth1    # 10.10.10.2
ip addr show eth2    # 192.168.15.131
hostname             # orclrac2.oracle.local

Adjust SIDs:

sed -i 's/ORACLE_SID=+ASM1/ORACLE_SID=+ASM2/' /home/oracle/.bash_profile
sed -i 's/ORACLE_SID=ORCL1/ORACLE_SID=ORCL2/' /home/oracle/.bash_profile

Configure iSCSI Initiator — orclrac1

systemctl enable iscsid && systemctl start iscsid

echo "InitiatorName=iqn.2024-01.local.oracle:orclrac1" \
  > /etc/iscsi/initiatorname.iscsi

ping -c 3 192.168.15.3

iscsiadm -m discovery -t sendtargets -p 192.168.15.3
iscsiadm -m node \
  -T iqn.2024-01.com.vpslab:rac-storage \
  -p 192.168.15.3 --login

iscsiadm -m node \
  -T iqn.2024-01.com.vpslab:rac-storage \
  -p 192.168.15.3 --op update \
  -n node.startup -v automatic

systemctl restart iscsid iscsi

Check how many disks appear:

ls -la /dev/disk/by-path/ | grep iscsi

Expected output with 6 disks:

ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-0 -> ../../sdc
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-1 -> ../../sdh
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-2 -> ../../sdg
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-3 -> ../../sdf
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-4 -> ../../sde
ip-192.168.15.3:3260-iscsi-iqn.2024-01.com.vpslab:rac-storage-lun-5 -> ../../sdd

Configure iSCSI Initiator — orclrac2

systemctl enable iscsid && systemctl start iscsid

echo "InitiatorName=iqn.2024-01.local.oracle:orclrac2" \
  > /etc/iscsi/initiatorname.iscsi

iscsiadm -m discovery -t sendtargets -p 192.168.15.3

iscsiadm -m node \
  -T iqn.2024-01.com.vpslab:rac-storage \
  -p 192.168.15.3 --login

iscsiadm -m node \
  -T iqn.2024-01.com.vpslab:rac-storage \
  -p 192.168.15.3 --op update \
  -n node.startup -v automatic

systemctl restart iscsid iscsi

ls -la /dev/disk/by-path/ | grep iscsi

Validate the Complete Environment

Network Connectivity

From orclrac1:

ping -c 3 192.168.15.171    # orclrac2 public
ping -c 3 10.10.10.2        # orclrac2 interconnect
ping -c 3 192.168.15.3      # vpslab iSCSI

From orclrac2:

ping -c 3 192.168.15.170    # orclrac1 public
ping -c 3 10.10.10.1        # orclrac1 interconnect
ping -c 3 192.168.15.3      # vpslab iSCSI

Interconnect Latency

ping -c 50 10.10.10.2 | tail -2

ping -c 50 10.10.10.1 | tail -2

avg below 1ms is required for Cache Fusion to work correctly.

SSH Equivalency

On orclrac1:

su - oracle
ssh-keygen -t rsa -N ''
ssh-copy-id oracle@orclrac1
ssh-copy-id oracle@orclrac2

On orclrac2:

su - oracle
ssh-keygen -t rsa -N ''
ssh-copy-id oracle@orclrac1
ssh-copy-id oracle@orclrac2

Validate on both nodes:

ssh orclrac1 date && ssh orclrac2 date
ssh orclrac1-priv date && ssh orclrac2-priv date

⚠️ Important: Validation must be done on both nodes and in both directions. The Grid OUI runs scripts remotely in both directions — any failure immediately stops the installer.


Next Up

In Post 3 we’ll install Grid Infrastructure 12.2 with all 19 OUI screens documented and the most common errors you’ll encounter.


asm clusterware installation iSCSI lab oracle-database oracle-linux oracle-rac
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp
Previous ArticleOracle RAC 12.2 on VMware Workstation — Post 3: Grid Infrastructure Installation
Next Article Oracle RAC 12.2 on VMware Workstation – Post 4: Oracle Database Installation and DBCA

Related Posts

Oracle

Oracle RAC 12.2 on VMware Workstation — Post 5: Final Validation and Quick Reference

2026-05-11
Read More
Oracle

Oracle RAC 12.2 on VMware Workstation – Post 4: Oracle Database Installation and DBCA

2026-05-11
Read More
Oracle

Oracle RAC 12.2 on VMware Workstation — Post 3: Grid Infrastructure Installation

2026-05-11
Read More
View 5 Comments

5 Comments

  1. Pingback: Oracle RAC 12.2 on VMware Workstation — Post 3: Grid Infrastructure Installation | Execute Step

  2. Pingback: Oracle RAC 12.2 on VMware Workstation — Post 5: Final Validation and Quick Reference | Execute Step

  3. Pingback: Oracle RAC 12.2 on VMware Workstation — Post 1: VMware Setup and iSCSI Target with targetcli | Execute Step

  4. Pingback: Oracle RAC 12.2 on VMware Workstation — Post 4: Oracle Database Installation and DBCA | Execute Step

  5. Pingback: Oracle RAC 12.2 on VMware Workstation — Series Overview | Execute Step

Leave A Reply Cancel Reply

Demo
Follow Me
  • Email
  • GitHub
  • LinkedIn
  • RSS
  • YouTube

INS-06006 – Passwordless SSH Connectivity Not Set Up

2026-02-2614 Views

ORA-29548 — How to Fix “Java System Class Reported” in Oracle Database

2026-03-0510 Views

PRVG-2002 — How to Fix “Encountered Error in Copying File” in Oracle RAC

2026-03-078 Views
Demo
Blogroll
  • oravirt
Execute Step
YouTube LinkedIn RSS
  • Home
  • About
  • Contact
  • RSS
  • English
    • Português (Portuguese (Brazil))
© 2026 ExecuteStep. Designed by ThemeSphere.

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Our website is made possible by displaying online advertisements to our visitors. Please support us by disabling your Ad Blocker.