Starting with Oracle RDBMS 12.1 the syntax for srvctl is changed, instead of the abbreviations you can now use the new full names. The old syntax is still valid.

For example:  srvctl status database -d <your dbname> will now become srvctl status database -db <your dbname>. This is a simple example but if we look to more details like add a service. It was and now it is.


But the main reason I wanted to create this blog is to tell about the unknown -compatible option.

If you are not sure what is the new syntax for the  old abbreviation you can use the -compatible argument when executing srvctl and it will show BOTH the new and old syntax.

Small example:

$ srvctl add database -h -compatible

Adds a database configuration to the Oracle Clusterware.

Usage: srvctl add database -db <db_unique_name> -oraclehome ......

    -db(d) <db_unique_name>        Unique name for the database
    -oraclehome(o) <path>          Oracle home path
    -dbtype(c) <type>              Type of database: RAC One Node, RAC, or Single Instance
    -server(e) <server_list>       Candidate server list for RAC One Node database
    -instance(i) <inst_name>       Instance name prefix for administrator-managed RAC One Node database 
(default first 12 characters of <db_unique_name>)
    -timeout(w) <timeout>          Online relocation timeout in minutes
    -node(x) <node_name>           Node name (for single-instance databases)
    -domain(m) <domain>            Domain for database. Must be set if database has DB_DOMAIN set.
    -spfile(p) <spfile>            Server parameter file path
    -pwfile <password_file_path>   Password file path
    -role(r) <role>                Role of the database (PRIMARY, PHYSICAL_STANDBY, LOGICAL_STANDBY,

As you can see, both the syntax options are listed.

Hope this helps, enjoy