SRVCTL is known as server control utility, which is used to add, remove,relocate and manage different crs services or components in RAC database.

1. STOP DATABASE :

SYNTAXsrvctl stop database -d db_name [-o stop_options] where stop_options is normal/immediate(default)/transactional/abort

e.g

srvctl stop database -d PRODB -o normal
srvctl stop database -d PRODB -o immediate
srvctl stop database -d PRODB -o transactional
srvctl stop database -d PRODB -o abort

2. START DATABASE
SYNTAXsrvctl start database -d db_name [-o start_options] where start_option is nomount/mount/open(default)

e.g

srvctl start database -d PRODB -o nomount
srvctl start database -d PRODB -o mount
srvctl start database -d PRODB -o open

3. STOP AN INSTANCE

SYNTAXsrvctl stop instance -d db_unique_name [-i “instance_name_list”]} [-o stop_options] [-f]
e.g

srvctl stop instance -d PRODB -i PRODB1

4. START AN INSTANCE

SYNTAXsrvctl start instance -d db_unique_name [-i “instance_name_list”} [-o start_options]
e.g

srvctl start instance -d PRODB -i PRODB1

5. REMOVING DB FROM CRS:
SYNTAXsrvctl remove database -d db_unique_name [-f] [-y] [-v]
e.g

srvctl remove database -d PRODB -f -y

6. ADDING DB IN CRS :
SYNTAXsrvctl add database -d db_unique_name -o ORACLE_HOME [-p spfile]
e.g

srvctl add database -d PRODB -o /u01/app/oracle/product/12.1.0.2/dbhome_1 -p +DATA/PRODDB/parameterfile/spfilePRODB.ora

7. REMOVING AN INSTANCE FROM CRS:
SYNTAXsrvctl remove instance -d DB_UNIQUE_NAME -i INSTANCE_NAME
e.g

srvctl remove instance -d PRODB - I PRODB1 

8.ADDING AN INSTANCE TO CRS:
SYNTAXsrvctl add instance –d db_unique_name –i inst_name -n node_name
e.g

srvctl add instance -d PRODB - i PRODB1 -n rachost1

9. Enable/disable auto restart of the instance

srvctl enable instance -d DB_UNIQUE_NAME-i INSTANCE_NAME 
srvctl disable instance -d DB_UNIQUE_NAME-i INSTANCE_NAME 

10. Enable/disable auto restart of the database

srvctl enable database -d DB_UNIQUE_NAME 
srvctl disable database -d DB_UNIQUE_NAME

11. ADDING A SERVICE:

SYNTAXsrvctl add servicec -d {DB_NAME} -s {SERVICE_NAME} -r {“preferred_list”} -a {“available_list”} [-P {BASIC | NONE | PRECONNECT}]

e.g

srvctl add service -d PREDB -s PRDB_SRV -r "PREDB1,PREDB2" -a "PREDB2" -P BASIC 

12.REMOVING A SERVICE:

SYNTAXsrvctl remove service -d {DB_NAME} -s {SERVICE_NAME}
e.g

 
srvctl remove service -d PREDB -s PRDB_SRV

13. START A SERVICE
SYNTAXsrvctl start servicec -d {DB_NAME} -s {SERVICE_NAME}
e.g

srvctl start service -d PREDB -s PRDB_SRV 

14. STOP A SERVICE

SYNTAXsrvctl stop servicec -d {DB_NAME} -s {SERVICE_NAME}
e.g

srvctl stop service -d PREDB -s PRDB_SRV

15. RELOCATE A SERVICE

SYNTAXsrvctl relocate service -d {database_name} -s {service_name} -i {old_inst_name} -r {new_inst_name}

EXAMPLE: (Relocating service PRDB_SRV from PREDB2 to PREDB1)

srvctl relocate service -d PREDB -s PRDB_SVC -i PREDB2 -t PREDB1 

16. Check the status of service
SYNTAXsrvctl status service -d {database_name} -s {service_name}

srvctl status service -d PREDB -s PRDB_SVC

17. Check the configuration of service
SYNTAXsrvctl config service -d {database_name} -s {service_name}

srvctl config service -d PREDB -s PRDB_SVC

18. Check scan listener configuration

srvctl config scan_listener

SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1522
Registration invited nodes:
Registration invited subnets:
SCAN Listener is enabled.
SCAN Listener is individually enabled on nodes:
SCAN Listener is individually disabled on nodes:
SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1522
Registration invited nodes:
Registration invited subnets:
SCAN Listener is enabled.
SCAN Listener is individually enabled on nodes:
SCAN Listener is individually disabled on nodes:
SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1522
Registration invited nodes:
Registration invited subnets:
SCAN Listener is enabled.
SCAN Listener is individually enabled on nodes:
SCAN Listener is individually disabled on nodes:

19. Modify scan_listener port:

srvctl modify scan_listener -p {new-SCAN-port}

srvctl modify scan_listener -p 1523


$GRID_HOME/bin/srvctl stop scan_listener
$GRID_HOME/bin/srvctl start scan_listener

Alter system set remote_listener='orcl-scan.stc.com.sa:1523' scope=both sid='*';


20. Manage MGMTDB in oracle 12c:

srvctl status mgmtdb
Database is enabled
Instance -MGMTDB is running on node node12-1



-- stop and start MGMT db.

srvctl stop mgmtdb
srvctl start mgmtdb

21. Enable trace for srvctl commands:

-- set this to enable trace at os 

SRVM_TRACE=true
export SRVM_TRACE

-- run any srvctl command
srvctl status database -d ORACL

22. Set environment variables through srvctl.

-- setenv to set env variables.(ORCL is the db_unique_name)

srvctl setenv database -db ORCL -env "ORACLE_HOME=/oracle/app/oracle/product/12.1.0.2/dbhome_1"
srvctl setenv database -db ORCL -env "TNS_ADMIN=/oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin"


--getenv to view the env setting:

srvctl getenv database -db ORCL

ORCL:
ORACLE_HOME=/oracle/app/oracle/product/12.1.0.2/dbhome_1
TNS_ADMIN=/oracle/app/oracle/product/12.1.0.2/dbhome_1/network/admin

23. Check status and config of ASM instance:

 srvctl config asm
ASM home: 
Password file: +MGMT/orapwASM
ASM listener: LISTENER


srvctl status asm
ASM is running on ses11-4,ses11-5

24. Stop and start services running from ORACLE_HOME

 

srvctl stop home -oraclehome /oracle/product/12.1.0.2/dbhome_1 -statefile /home/oracle/state.txt  -node dbhost-1

srvctl start home -oraclehome /oracle/product/12.1.0.2/dbhome_1 -statefile /home/oracle/state.txt  -node dbhost-1

25. Create a TAF policy

srvctl add service -db ORCLDB -service TAF_ORCL -preferred ORCLDB1 -available ORCLDB2 -tafpolicy BASIC -failovertype SELECT srvctl start service -db OMPREDB -service TAF_ORCL

SEE ALSO: