Oracle Rac - Oracle srvctl commands

In Oracle Real Application Clusters (RAC), the Server Control (srvctl) utility is an essential tool for managing and administering various components of an Oracle RAC environment. It's used for controlling and configuring Oracle RAC resources, services, and databases.
Here are some commonly used srvctl commands in Oracle RAC

To list the configured databases in the RAC and their associated instances :
  [oracle@tesdb1 ~]$ srvctl config database
  dev
To display detailed information about a specific database :
  [oracle@tesdb1 ~]$ srvctl config database -d dev
  Database unique name: dev
  Database name: dev
  Oracle home: /u01/app/oracle/product/19c/db_1
  Oracle user: oracle
  Spfile: +DATA/DEV/PARAMETERFILE/spfile.275.1152376763
  Password file: +DATA/DEV/PASSWORD/pwddev.258.1152376405
  Domain: localdomain
  Start options: open
  Stop options: immediate
  Database role: PRIMARY
  Management policy: AUTOMATIC
  Server pools: 
  Disk Groups: DATA
  Mount point paths: 
  Services: 
  Type: RAC
  Start concurrency: 
  Stop concurrency: 
  OSDBA group: oinstall
  OSOPER group: oinstall
  Database instances: dev1,dev2
  Configured nodes: tesdb1,tesdb2
  CSS critical: no
  CPU count: 0
  Memory target: 0
  Maximum memory: 0
  Default network number for database services: 
  Database is 

To Check the Status of Database :
  [oracle@tesdb1 ~]$ srvctl status database -d dev
  Instance dev1 is running on node tesdb1
  Instance dev2 is running on node tesdb2

  
We can also check instance status using srvctl status database -d dev -v
  [oracle@tesdb1 ~]$ srvctl status database -d dev -v
  Instance dev1 is running on node tesdb1. Instance status: Open.
  Instance dev2 is running on node tesdb2. Instance status: Open.

Stop the database :
  [oracle@tesdb1 ~]$ srvctl stop database -d dev
  [oracle@tesdb1 ~]$ srvctl stop database -d dev -o normal
  [oracle@tesdb1 ~]$ srvctl stop database -d dev -o transactional
  [oracle@tesdb1 ~]$ srvctl stop database -d dev -o abort

To Check the Status of Database :
  [oracle@tesdb1 ~]$ srvctl status database -d dev -v
  Instance dev1 is not running on node tesdb1
  Instance dev2 is not running on node tesdb2
  To stop particular instance using instance name 
  [oracle@tesdb1 ~]$ srvctl stop instance -i dev1 -d dev

  [oracle@tesdb1 ~]$ srvctl status database -d dev -v
  Instance dev1 is not running on node tesdb1
  Instance dev2 is running on node tesdb2. Instance status: Open.

  [oracle@tesdb1 ~]$ srvctl stop instance -i dev2 -d dev
  [oracle@tesdb1 ~]$ srvctl status database -d dev -v
  Instance dev1 is not running on node tesdb1
  Instance dev2 is not running on node tesdb2

To Start Particular instance using instance name :
  [oracle@tesdb1 ~]$ srvctl start instance -i dev2 -d dev
  [oracle@tesdb1 ~]$ srvctl status database -d dev -v
  Instance dev1 is not running on node tesdb1
  Instance dev2 is running on node tesdb2. Instance status: Open.

Start the database in mount using srvctl start database -d dev -o mount
  [oracle@tesdb1 ~]$ srvctl start database -d dev -o mount
  [oracle@tesdb1 ~]$ srvctl status database -d dev -v
  Instance dev1 is running on node tesdb1. Instance status: Mounted (Closed).
  Instance dev2 is running on node tesdb2. Instance status: Open.

Start the database in nomount using srvctl start database -d dev -o nomount
  [oracle@tesdb1 ~]$ srvctl start database -d dev -o nomount
  Checking Node Status
  [oracle@tesdb2 ~]$ srvctl status nodeapps
  VIP 192.168.1.31 is enabled
  VIP 192.168.1.31 is running on node: tesdb2
  VIP 192.168.1.32 is enabled
  VIP 192.168.1.32 is running on node: tesdb2
  Network is enabled
  Network is not running on node: tesdb1
  Network is running on node: tesdb2
  ONS is enabled
  ONS daemon is not running on node: tesdb1
  ONS daemon is running on node: tesdb2

To Check the Status of Scan Listener :
  [oracle@tesdb2 ~]$ srvctl status scan_listener
  SCAN Listener LISTENER_SCAN1 is enabled
  SCAN listener LISTENER_SCAN1 is running on node tesdb2
  SCAN Listener LISTENER_SCAN2 is enabled
  SCAN listener LISTENER_SCAN2 is running on node tesdb2
  SCAN Listener LISTENER_SCAN3 is enabled
  SCAN listener LISTENER_SCAN3 is running on node tesdb2

Removing DB from CRS :
  srvctl remove database -d dev -f -y

Adding DB IN CRS :
  srvctl add database -d dev -o /u01/app/oracle/product/19c/db_1 -p +DATA/DEV/PARAMETERFILE/spfile.275.1152376763

Removing an instance from CRS :
  srvctl remove instance -d dev - I dev1

Adding an instance to CRS :
  srvctl add instance -d dev - i dev1 -n tesdb1

Enable/disable auto restart of the instance :
  srvctl enable instance -d dev -i dev1
  srvctl disable instance -d dev-i dev1

Enable/disable auto restart of the database :
  srvctl enable database -d dev
  srvctl disable database -d dev

To remove an instance from a database :
  srvctl remove instance -d dev -i dev1

  THERE ARE LOTS OF OPTIONS USED WITH SRVCTL COMMAND, I DESCRIBED THEM BELOW.
  -d Database Name
  -i Instance Name
  -s Service Name
  -n Node Name
  -r Preferred list
  -a Available list
  -p TAF (Transparent application failover policy)
  -v Verbose


( Oracle Rac - Oracle crsctl commands)