Oracle SRVCTL Commands
This guide is a practical cheat sheet for Oracle DBAs using srvctl
in RAC environments. Each section below covers a specific srvctl
command with a short heading, real-world examples, and optional parameters explained inline. Ideal for daily operations like starting/stopping databases, managing services, and more.
Start a Database
# Syntax: srvctl start database -d <db_name> -o <open|mount|nomount>
srvctl start database -d PRODB -o open
Stop a Database
# Syntax: srvctl stop database -d <db_name> -o <normal|immediate|transactional|abort>
srvctl stop database -d PRODB -o normal
Add a Database to CRS
# Syntax: srvctl add database -d <db_name> -o <ORACLE_HOME> -p <spfile_path>
srvctl add database -d PRODB -o /u01/app/oracle/product/12.1.0.2/dbhome_1 -p +DATA/PRODDB/parameterfile/spfilePRODB.ora
Remove a Database from CRS
# Syntax: srvctl remove database -d <db_name> [-f] [-y]
srvctl remove database -d PRODB -f -y
Start an Instance
# Syntax: srvctl start instance -d <db_name> -i <instance_name> -o <open|mount|nomount>
srvctl start instance -d PRODB -i PRODB1 -o open
Stop an Instance
# Syntax: srvctl stop instance -d <db_name> -i <instance_name> -o <normal|immediate|transactional|abort>
srvctl stop instance -d PRODB -i PRODB1 -o immediate
Add an Instance to CRS
# Syntax: srvctl add instance -d <db_name> -i <instance_name> -n <node_name>
srvctl add instance -d PRODB -i PRODB1 -n rachost1
Remove an Instance from CRS
# Syntax: srvctl remove instance -d <db_name> -i <instance_name>
srvctl remove instance -d PRODB -i PRODB1
Enable Auto-Restart of an Instance
# Syntax: srvctl enable instance -d <db_name> -i <instance_name>
srvctl enable instance -d PRODB -i PRODB1
Disable Auto-Restart of an Instance
# Syntax: srvctl disable instance -d <db_name> -i <instance_name>
srvctl disable instance -d PRODB -i PRODB1
Enable Auto-Restart of a Database
# Syntax: srvctl enable database -d <db_name>
srvctl enable database -d PRODB
Disable Auto-Restart of a Database
# Syntax: srvctl disable database -d <db_name>
srvctl disable database -d PRODB
Add a Service
# Syntax: srvctl add service -d <db_name> -s <service_name> -r <preferred_list> -a <available_list> -P <BASIC|NONE>
srvctl add service -d PRODB -s PRODB_SVC -r "PRODB1" -a "PRODB2" -P BASIC
Remove a Service
# Syntax: srvctl remove service -d <db_name> -s <service_name>
srvctl remove service -d PRODB -s PRODB_SVC
Start a Service
# Syntax: srvctl start service -d <db_name> -s <service_name>
srvctl start service -d PRODB -s PRODB_SVC
Stop a Service
# Syntax: srvctl stop service -d <db_name> -s <service_name>
srvctl stop service -d PRODB -s PRODB_SVC
Relocate a Service
# Syntax: srvctl relocate service -d <db_name> -s <service_name> -i <current_instance> -t <target_instance>
srvctl relocate service -d PRODB -s PRODB_SVC -i PRODB2 -t PRODB1
Check Service Status
# Syntax: srvctl status service -d <db_name> -s <service_name>
srvctl status service -d PRODB -s PRODB_SVC
Check Service Configuration
# Syntax: srvctl config service -d <db_name> -s <service_name>
srvctl config service -d PRODB -s PRODB_SVC
Create a TAF Policy
# Syntax: srvctl add service -db <db_name> -service <service_name> -preferred <instance> -available <instance> -tafpolicy <BASIC|NONE>
srvctl add service -db ORCLDB -service TAF_ORCL -preferred ORCLDB1 -available ORCLDB2 -tafpolicy BASIC
srvctl start service -db ORCLDB -service TAF_ORCL
Check SCAN Listener Configuration
# Syntax: srvctl config scan_listener
srvctl config scan_listener
Modify SCAN Listener Port
# Syntax: srvctl modify scan_listener -p <new_port>
srvctl modify scan_listener -p 1523
Check ASM Configuration
# Syntax: srvctl config asm
srvctl config asm
Check ASM Status
# Syntax: srvctl status asm
srvctl status asm
Stop Oracle Home Services
# Syntax: srvctl stop home -oraclehome <path> -statefile <path> -node <node_name>
srvctl stop home -oraclehome /oracle/product/12.1.0.2/dbhome_1 -statefile /home/oracle/state.txt -node dbhost-1
Start Oracle Home Services
# Syntax: srvctl start home -oraclehome <path>
srvctl start home -oraclehome /oracle/product/12.1.0.2/dbhome_1
Manage MGMTDB
# Syntax: srvctl status|start|stop mgmtdb
srvctl status mgmtdb
srvctl stop mgmtdb
srvctl start mgmtdb
Enable SRVCTL Command Trace
# Syntax: export SRVM_TRACE=true
SRVM_TRACE=true
export SRVM_TRACE
srvctl status database -d ORCL
Set Environment Variables via SRVCTL
# Syntax: srvctl setenv database -db <db_name> -env "<VAR=VALUE>"
srvctl setenv database -db ORCL -env "ORACLE_HOME=/oracle/app/oracle/product/12.1.0.2/dbhome_1"
Get Environment Variables via SRVCTL
# Syntax: srvctl getenv database -db <db_name>
srvctl getenv database -db ORCL