Thursday, 18 September 2025

RAC Startup Sequence

 In an Oracle RAC environment, multiple instances start up and mount one shared database. The startup is coordinated by Oracle Clusterware.


🧩 RAC Startup Steps

1. Clusterware Startup (Infrastructure Layer)

  • Before any database instance starts, Clusterware (CRS) must be running on all nodes.

  • Clusterware includes:

    • Cluster Ready Services (CRS)

    • Oracle Cluster Synchronization Services (CSS)

    • Oracle High Availability Services (OHASD)

Commands:

crsctl start crs # Start Clusterware stack on a node crsctl check crs # Verify status

2. Automatic Startup of RAC Instances

  • Once CRS is up, it will start:

    • Oracle ASM instances (if used)

    • Listener

    • Database instances (configured as resources in CRS)

Commands:

srvctl start asm -n <node_name> # Start ASM on a specific node srvctl start listener -n <node_name> # Start listener on a node srvctl start database -d <db_name> # Start all RAC instances
  • Alternatively, to start an instance manually (on one node):

sqlplus / as sysdba STARTUP

⚙ RAC Instance Startup Phases

Each RAC instance goes through these standard Oracle startup stages:

StageWhat Happens
STARTUP NOMOUNTAllocates SGA, starts background processes. Uses init.ora / spfile
STARTUP MOUNTReads control files from shared storage. Opens redo threads.
STARTUP OPENOpens datafiles and online redo logs, database available to users
  • At MOUNT, the instance joins the cluster group using Global Enqueue Service (GES) and Global Cache Service (GCS).

  • At OPEN, the database becomes fully accessible.


πŸ” Typical RAC Startup Flow

[Start Clusterware] ↓ [Start ASM Instances] ↓ [Start Listeners] ↓ [Start RAC Instances (Node1, Node2,...)] ↓ [Each instance does: NOMOUNT → MOUNT → OPEN] ↓ [Clustered Database becomes available]

πŸ“Œ Useful RAC Startup/Shutdown Commands

TaskCommand
Start whole RAC DBsrvctl start database -d <db_name>
Stop whole RAC DBsrvctl stop database -d <db_name>
Start one instancesrvctl start instance -d <db_name> -i <inst_name>
Stop one instancesrvctl stop instance -d <db_name> -i <inst_name>
Check database statussrvctl status database -d <db_name>

No comments:

Post a Comment