Useful srvctl Commands for Oracle RAC and Non-RAC Databases
This post provides a comprehensive guide to srvctl
commands used to manage Oracle RAC and non-RAC databases. These commands include database, instance, service, listener, and node application management. Each command is detailed with examples and differences between RAC and non-RAC environments.
1. Managing Databases
Adding a Database
For RAC:
srvctl add database -db <db_unique_name>
-oraclehome <oracle_home_path> -spfile <spfile_path>
Example:
srvctl add database -db myracdb
-oraclehome /u01/app/oracle/product/19.0.0/dbhome_1
-spfile +DATA/MYRACDB/spfilemyracdb.ora
Adds the RAC database MYRACDB
with its SPFILE in the +DATA
disk group.
For Non-RAC:
srvctl add database -db <db_unique_name>
-oraclehome <oracle_home_path> -spfile <spfile_path>
Example:
srvctl add database -db mydb
-oraclehome /u01/app/oracle/product/19.0.0/dbhome_1
-spfile /u01/app/oracle/dbs/spfilemydb.ora
Adds the standalone database MYDB
with its SPFILE in the local filesystem.
Starting a Database
For RAC:
srvctl start database -db <db_unique_name>
Example:
srvctl start database -db myracdb
For Non-RAC:
srvctl start database -db <db_unique_name>
Example:
srvctl start database -db mydb
Stopping a Database
For RAC:
srvctl stop database -db <db_unique_name>
Example:
srvctl stop database -db myracdb
For Non-RAC:
srvctl stop database -db <db_unique_name>
Example:
srvctl stop database -db mydb
Checking Database Status
For RAC:
srvctl status database -db <db_unique_name>
Example:
srvctl status database -db myracdb
Output:
Instance myracdb1 is running on node racnode1 Instance myracdb2 is running on node racnode2
For Non-RAC:
srvctl status database -db <db_unique_name>
Example:
srvctl status database -db mydb
Output:
Instance mydb is running on node standalonehost
Removing a Database
For RAC:
srvctl remove database -db <db_unique_name>
Example:
srvctl remove database -db myracdb
For Non-RAC:
srvctl remove database -db <db_unique_name>
Example:
srvctl remove database -db mydb
2. Managing Database Instances
Starting an Instance
For RAC:
srvctl start instance -db <db_unique_name> -instance <instance_name>
Example:
srvctl start instance -db myracdb -instance myracdb1
For Non-RAC:
srvctl start database -db <db_unique_name>
Example:
srvctl start database -db mydb
Stopping an Instance
For RAC:
srvctl stop instance -db <db_unique_name> -instance <instance_name>
Example:
srvctl stop instance -db myracdb -instance myracdb1
For Non-RAC:
srvctl stop database -db <db_unique_name>
Example:
srvctl stop database -db mydb
Checking Instance Status
For RAC:
srvctl status instance -db <db_unique_name> -instance <instance_name>
Example:
srvctl status instance -db myracdb -instance myracdb1
For Non-RAC:
srvctl status database -db <db_unique_name>
Example:
srvctl status database -db mydb
3. Managing Services
Adding a Service
For RAC:
srvctl add service -db <db_unique_name>
-service <service_name> -preferred <preferred_instances>
-available <available_instances>
Example:
srvctl add service -db myracdb
-service app_service -preferred myracdb1,myracdb2 -available myracdb3
For Non-RAC:
srvctl add service -db <db_unique_name> -service <service_name>
Example:
srvctl add service -db mydb -service app_service
Starting a Service
srvctl start service -db <db_unique_name> -service <service_name>
Example:
For RAC:
srvctl start service -db myracdb -service app_service
For Non-RAC:
srvctl start service -db mydb -service app_service
Stopping a Service
srvctl stop service -db <db_unique_name> -service <service_name>
Example:
For RAC:
srvctl stop service -db myracdb -service app_service
For Non-RAC:
srvctl stop service -db mydb -service app_service
Checking Service Status
srvctl status service -db <db_unique_name> -service <service_name>
Example:
For RAC:
srvctl status service -db myracdb -service app_service
For Non-RAC:
srvctl status service -db mydb -service app_service
4. General Commands
View Database Configuration
srvctl config database -db <db_unique_name>
Example:
srvctl config database -db myracdb
Relocate a Service (RAC Only)
Move a service from one instance to another:
srvctl relocate service -db <db_unique_name>
-service <service_name> -oldinst <old_instance> -newinst <new_instance>
Example:
srvctl relocate service -db myracdb
-service app_service -oldinst myracdb1 -newinst myracdb2
Check srvctl Version
srvctl -v
Post a Comment
Post a Comment