ADVERTISEMENT

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

ADVERTISEMENT