Ultimate Oracle RAC Commands Guide | Complete DBA Reference

🚀 Ultimate Oracle RAC Commands Guide

Professional DBA Reference for Oracle Real Application Clusters (2024 Edition)
📚 Complete Oracle RAC Command Reference
This comprehensive guide provides 150+ essential commands for Oracle RAC administration, covering CRSCTL, SRVCTL, OLSNODES, OCR management, ASM operations, and advanced troubleshooting techniques. Perfect for DBAs managing Oracle 11g, 12c, 18c, 19c, and 21c RAC environments.

1. CRSCTL Commands (Cluster Ready Services Control)

⚠️ Important: Most CRSCTL commands that start/stop High Availability Services require root privileges.
Start and Stop Oracle Clusterware (run as root)
[root@racnode1 ~]# crsctl stop crs [root@racnode1 ~]# crsctl start crs
Start and Stop Cluster Resources on All Nodes
[root@racnode1 ~]# crsctl stop cluster -all [root@racnode1 ~]# crsctl start cluster -all
Check Current Status of Cluster (Local Node)
[grid@racnode1~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online
Check Status of CRS Stack
[grid@racnode1 ~]$ 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
Display Status of Cluster Resources
[grid@racnode1 ~]$ crsctl stat res -t
Check Oracle Clusterware Version
[grid@racnode1 ~]$ crsctl query crs softwareversion [grid@racnode1 ~]$ crsctl query crs activeversion [grid@racnode1 ~]$ crsctl query crs releaseversion
Oracle Clusterware version on node [racnode1] is [12.1.0.2.0]
Enable/Disable CRS Daemons (run as root)
[root@racnode1 ~]# crsctl enable crs [root@racnode1 ~]# crsctl disable crs

2. OLSNODES Commands (Oracle Local Storage Nodes)

List All Cluster Nodes
[grid@racnode1 ~]$ olsnodes
racnode1 racnode2
Print Node Names with Node Numbers
[grid@racnode1 ~]$ olsnodes -n
racnode1 1 racnode2 2
Show Virtual IP Address with Node Name
[grid@racnode1 ~]$ olsnodes -i
racnode1 racnode1-vip racnode2 racnode2-vip
Show Node Status (Active/Inactive)
[grid@racnode1 ~]$ olsnodes -s
racnode1 Active racnode2 Active
Show Global Public and Cluster Interconnect
[grid@racnode1 ~]$ oifcfg getif
eth0 192.168.56.0 global public eth1 10.10.1.0 global cluster_interconnect

3. SRVCTL Commands (Server Control)

Database Operations

Show Databases Registered in Repository
[grid@racnode1 ~]$ srvctl config database
RACDB
Show Configuration Details of Database
[grid@racnode1 ~]$ srvctl config database -d RACDB
Database unique name: RACDB Database name: RACDB Oracle home: /home/oracle/product/11.2.0/db_home1 Oracle user: oracle Spfile: +DATA/RACDB/spfileRACDB.ora Management policy: AUTOMATIC Database instances: RACDB1,RACDB2
Start/Stop All Database Instances
[grid@racnode1 ~]$ srvctl start database -d RACDB [grid@racnode1 ~]$ srvctl stop database -d RACDB
Advanced Start/Stop Options
# Shutdown immediate srvctl stop database -d RACDB -o immediate # Startup force srvctl start database -d RACDB -o force # Stop specific instance srvctl stop instance -d RACDB -i RACDB1

SCAN and Listener Operations

Display SCAN Configuration
[grid@racnode1 ~]$ srvctl config scan
SCAN name: funoracleapps-scan, Network: 1/192.168.56.0/255.255.255.0/eth0 SCAN VIP name: scan1, IP: /funoracleapps-scan/192.168.56.121
Start/Stop SCAN Resources
[grid@racnode1 ~]$ srvctl stop scan_listener [grid@racnode1 ~]$ srvctl stop scan [grid@racnode1 ~]$ srvctl start scan [grid@racnode1 ~]$ srvctl start scan_listener

4. OCR (Oracle Cluster Registry) Management

⚠️ Critical Warning: Always stop CRS on all nodes before performing OCR restore operations. Incorrect OCR operations can render your cluster unusable.
Perform Quick Health Check of OCR
[grid@racnode1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows : Version : 3 Total space (kbytes) : 262120 Used space (kbytes) : 3304 Available space (kbytes) : 258816 Device/File Name : +DATA Device/File integrity check succeeded
OCR Backup Operations
# Show backup history [grid@racnode1 ~]$ ocrconfig -showbackup # Manual backup (as root) [root@racnode1 ~]# ocrconfig -manualbackup # Change backup location [root@racnode1 ~]# ocrconfig -backuploc /backups/ocr
Add/Remove OCR Locations
# Add OCR mirror [root@racnode1 ~]# ocrconfig -add +TESTDG # Remove OCR mirror [root@racnode1 ~]# ocrconfig -delete +TESTDG # Replace OCR location [root@racnode1 ~]# ocrconfig -replace +CURRENTOCRDG -replacement +NEWOCRDG

5. Voting Disk Management

Check Voting Disk Status
[grid@racnode1 ~]$ crsctl query css votedisk
Add/Remove Voting Disk (12c+)
# Add voting disk [root@racnode1 ~]# crsctl add css votedisk +DATADG # Remove voting disk [root@racnode1 ~]# crsctl delete css votedisk +DATADG

6. ASM (Automatic Storage Management) Commands

Check ASM Instance Status
[grid@racnode1 ~]$ srvctl status asm [grid@racnode1 ~]$ ps -ef | grep asm_pmon
Connect to ASM Instance
[grid@racnode1 ~]$ sqlplus / as sysasm [grid@racnode1 ~]$ asmcmd
List ASM Diskgroups and Disks
SQL> SELECT name, state, type, total_mb, free_mb FROM v$asm_diskgroup; SQL> SELECT name, path, state, total_mb FROM v$asm_disk; ASMCMD> lsdg ASMCMD> lsdsk
Start/Stop ASM Instance
[grid@racnode1 ~]$ srvctl start asm -n racnode1 [grid@racnode1 ~]$ srvctl stop asm -n racnode1

7. ⭐ Oracle RAC Log File Locations (Essential for Troubleshooting)

💡 Pro Tip: Finding the right log file is 90% of troubleshooting. These paths assume standard Oracle installations.
Component Log Location Key Files
CRS Logs $GRID_HOME/log/<hostname>/crsd/ crsd.log, crsd.trc
OHASD Logs $GRID_HOME/log/<hostname>/ohasd/ ohasd.log
ASM Alert Log $GRID_HOME/diag/asm/+asm/+ASM1/trace/ alert_+ASM1.log
Database Alert $ORACLE_BASE/diag/rdbms/<db_name>/<instance>/trace/ alert_<instance>.log
CSSD Logs $GRID_HOME/log/<hostname>/cssd/ ocssd.log
EVMD Logs $GRID_HOME/log/<hostname>/evmd/ evmd.log
Listener Logs $GRID_HOME/diag/tnslsnr/<hostname>/listener/trace/ listener.log
SCAN Logs $GRID_HOME/diag/tnslsnr/<hostname>/listener_scan1/trace/ listener_scan1.log

💡 Swipe left/right to scroll table on mobile devices

Quick Log Analysis Commands
# View recent alert log entries tail -100 $GRID_HOME/log/$(hostname)/alert$(hostname).log # Search for errors in CRS logs grep -i error $GRID_HOME/log/$(hostname)/crsd/crsd.log # Monitor real-time cluster activity tail -f $GRID_HOME/log/$(hostname)/crsd/crsd.log

8. Cluster Diagnostics and Troubleshooting

Verify Cluster Integrity
[grid@racnode1 ~]$ cluvfy comp ocr -n all -verbose [grid@racnode1 ~]$ cluvfy comp cluster -n all -verbose
Check Node Connectivity
[grid@racnode1 ~]$ cluvfy comp nodecon -n all -verbose [grid@racnode1 ~]$ cluvfy comp nodereach -n all -verbose
Cluster Health Monitor
[grid@racnode1 ~]$ oclumon manage -get repsize [grid@racnode1 ~]$ oclumon dumpnodeview -last 01:00

9. Performance Monitoring

Check Interconnect Performance
SQL> SELECT name, value FROM gv$sysstat WHERE name LIKE '%gc%' ORDER BY name; SQL> SELECT * FROM gv$cluster_interconnects;
Monitor Global Cache Performance
SQL> SELECT event, total_waits, time_waited FROM gv$system_event WHERE event LIKE 'gc%' ORDER BY time_waited DESC;

10. Quick Reference Table

Task Command User
Start CRScrsctl start crsroot
Stop CRScrsctl stop crsroot
Check CRS Statuscrsctl check crsgrid
Start Databasesrvctl start database -d DBNAMEgrid/oracle
Stop Databasesrvctl stop database -d DBNAMEgrid/oracle
List Nodesolsnodesgrid
Check OCRocrcheckgrid
Check Voting Diskcrsctl query css votediskgrid
View Resourcescrsctl stat res -tgrid
Verify Clustercluvfy comp clu -n all -verbosegrid

11. Frequently Asked Questions

Q: What's the difference between CRSCTL and SRVCTL?
A: CRSCTL manages the Cluster Ready Services stack (CRS, CSS, EVM) and typically requires root privileges. SRVCTL manages RAC databases, instances, services, and Oracle resources, used by grid/oracle users.
Q: How do I check if my RAC cluster is healthy?
A: Run these essential health checks: • crsctl check cluster -all • crsctl stat res -t • srvctl status database -d DBNAME • ocrcheck • crsctl query css votedisk
Q: How often is OCR automatically backed up?
A: Oracle automatically backs up OCR every 4 hours, maintaining the last 3 automatic backups plus daily and weekly backups. Manual backups can be created using 'ocrconfig -manualbackup'.

📖 Ultimate Oracle RAC Commands Reference Guide

💾 Bookmark this page for quick reference | 🔄 Share with your DBA team

For official Oracle documentation, visit docs.oracle.com