Issue
While starting an Oracle RAC database or an Oracle Restart database, the following error may be encountered:
SQL> startup;
ORA-29701: unable to connect to Cluster Synchronization Service
This error prevents the database instance from starting because it cannot communicate with the Oracle Cluster Synchronization Service (CSS), which is a core component of Oracle Grid Infrastructure.
Cause of the Issue
The Cluster Synchronization Service (CSS) is responsible for maintaining node membership, cluster synchronization, and coordination between Oracle RAC instances. Even in Oracle Restart environments, CSS must be running before the database can be started.
The ORA-29701 error typically occurs due to one or more of the following reasons:
- Oracle Grid Infrastructure (Clusterware) is not running.
- Oracle High Availability Services (OHAS) is stopped.
- The CSS daemon (ocssd.bin) has failed or terminated unexpectedly.
- ASM instance is not running or is inaccessible.
- Required ASM disk groups are offline.
- The database is started manually using SQL*Plus before Grid Infrastructure services are available.
- Incorrect Oracle environment variables (ORACLE_HOME or ORACLE_SID).
- Operating system reboot without restarting Oracle Clusterware.
Resolution
Follow these steps to identify and resolve the issue.
Step 1: Verify Clusterware Status
As the Grid Infrastructure owner, execute:
crsctl check crs
or
crsctl check css
If CSS is not online, proceed to the next step.
Step 2: Check Oracle High Availability Services
crsctl check has
Expected output:
CRS-4638: Oracle High Availability Services is online
If OHAS is offline, start it.
Step 3: Start Oracle Clusterware
For Oracle RAC:
crsctl start cluster
or
crsctl start cluster -all
For Oracle Restart:
crsctl start has
Step 4: Verify Cluster Resources
Check the status of all cluster resources.
crsctl stat res -t
Ensure the following resources are online:
- CSS
- CRS
- ASM
- Disk Groups
- Database Services
Step 5: Verify ASM Status
srvctl status asm
If ASM is down, start it.
srvctl start asm
Step 6: Start the Database
Instead of using SQL*Plus directly, start the database using Server Control.
srvctl start database -d <database_name>
Verify the database status:
srvctl status database -d <database_name>
Step 7: Review Diagnostic Logs
If the issue persists, review the following log files for additional details.
Grid Infrastructure logs:
$GRID_HOME/log/<hostname>/cssd/
$GRID_HOME/log/<hostname>/crsd/
$GRID_HOME/log/<hostname>/ohasd/
Database alert log:
$ORACLE_BASE/diag/rdbms/<database>/<instance>/trace/alert_<SID>.log
Conclusion
The ORA-29701: unable to connect to Cluster Synchronization Service error indicates that the Oracle database cannot communicate with the Cluster Synchronization Service (CSS). In most cases, the issue is resolved by ensuring that Oracle Grid Infrastructure, Oracle High Availability Services, CSS, and ASM are running correctly before starting the database. Using SRVCTL for database management and monitoring the health of Grid Infrastructure components can help prevent this error and improve the stability of Oracle RAC and Oracle Restart environments.