Grid Autostart

Hi, Checking if the database resource is configured to restart automatically after reboot / shutdown of the host / cluster:

$ crsctl stat res ora.fdb1.db -f |grep AUTO_START
AUTO_START=restore

Restore means that after restart

, the database will remain in the state it was in before the restart.

Changing the database resource to start always after reboot:
$ crsctl modify resource ora.fdb1.db -attr AUTO_START=always -unsupported

The -unsupported syntax is needed for Oracle 12c.

Verify again the resource configuration:
$ crsctl stat res ora.fdb1.db -f |grep AUTO_START
AUTO_START=always

Modify the startup state:
srvctl modify database -o mount

$ srvctl config database -d fdb1 -all
Database unique name: fdb1
Database name: fdb1
Oracle home: /oracle/product/12.1.0.2/dbhome_1
Oracle user: oracle
Spfile:
Password file:
Domain:
Start options: mount
Stop options: immediate
Database role: FAR_SYNC
Management policy: AUTOMATIC
Disk Groups: DATA
Services:
Database is enabled
OSDBA group:
OSOPER group:
Database instance: fdb1

Oracle SRVCTL: Management Policy vs CRSCTL: AUTO_START (in Oracle Restart)

In Oracle Restart, there are two confusing commands for setting up restart behavior.

  1. SRVCTL Commandsrvctl add/modify database -y {AUTOMATIC | MANUAL}Management policy for the database. If AUTOMATIC (the default), the database is automatically restored to its previous running condition (started or stopped) upon restart of the database host computer. If MANUAL, the database is never automatically restarted upon restart of the database host computer. A MANUAL setting does not prevent Oracle Restart from monitoring the database while it is running and restarting it if a failure occurs. https://docs.oracle.com/cd/E11882_01/server.112/e25494/restart.htm#BABHHAHI

 

  1. CRSCTL Commandcrsctl modify resource ora.pdb.db -attr  AUTO_START=restore –unsupported (The -unsupported syntax is needed for Oracle 12c.)AUTO_START indicates whether Oracle Clusterware automatically starts a resource after a cluster server restart. Valid AUTO_START values are:
  • always: Restarts the resource when the server restarts regardless of the state of the resource when the server stopped.
  • restore: Restores the resource to the same state that it was in when the server stopped. Oracle Clusterware attempts to restart the resource if the value of TARGET was ONLINE before the server stopped.
  • never: Oracle Clusterware never restarts the resource regardless of the state of the resource when the server stopped.

https://docs.oracle.com/cd/E11882_01/rac.112/e41959/resatt.htm#CHDFFEHJ

SRVCTL parameter for database: Management policy = AUTOMATIC is equivalent to CRSCTL parameter for resource: AUTO_START=restore

So, what happens when the database management policy is configured as AUTOMATIC and the resource of the database parameter AUTO_START is configured as always?

Because the cluster is the first in the chain of commands, it overrides the database; the cluster will restore its last state. For example: If we shut down the database and then reboot the operating system, the database will not automatically start.