Oracle Restart with Oracle Database 12c (12.1.0.1)
Back in October, I wrote a blog post on adding an Oracle 11g Database to Oracle Restart to help start the database on a server reboot (if you want to read that post, you can find it here). Since my original post on using Oracle Restart to start a database, I’ve talked with a few friends in the Oracle space looking for a similar solution to use with Oracle 12c Database. At the time of these discussions, nobody knew of a simple way to restart Oracle 12c databases on reboot, especially with Oracle Restart.
Note: Oracle has deprecation of the Oracle Restart feature in 12c. Check out this blog post for specifics on using 12c GI to implement a workaround (here). Also more information can be found in MOS Note: 1584742.1
This brings me to my testing today. To be honest, I actually stumbled across this because I was bored and just “wanted to see” if it could be done. Outlined below is what I did to get Oracle 12c Database to work with Oracle Restart.
Environment:
Oracle Enterprise Linux 6.4
Oracle Restart 11g (latest release)
Oracle Database 12c (12.1.0.1)
As I outlined in my previous post of adding a database to Oracle Restart (here), you need to provide the details of what you want Oracle Restart to do when you shutdown and start your sever. Here is the command I used to add the Oracle 12c Database to Oracle Restart:
srvctl add database
-d bc12c
-o /oracle/app/product/12.1.0.1/dbhome_1
-m acme.com
-p /oracle/app/product/12.1.0.1/dbhome_1/dbs/spfilebc12c.ora
-s OPEN
-t IMMEDIATE
-y AUTOMATIC
One thing to note here, is the SRVCTL command to add the database to Oracle Restart is actually in the Oracle 12c Database home (/oracle/app/product/12.1.0.1/dbhome_1/bin). If you try to add the database using the SRVCTL command from the CRS(GRID) home, it will error and tell you to use the correct version of SRVCTL.
Error:
PRCD-1025 : Failed to create database bc12c
PRCT-1402 : Attempt to retrieve version of SRVCTL from Oracle Home /oracle/app/product/12.1.0.1/dbhome_1/bin failed. Detailed error:
PRKC-1137 : Unable to find Version object with string value 12.1.0.1.0
After changing to the Oracle home for Oracle Database 12c, I then was able to add the database to Oracle Restart using SRVCTL. After successfully running the add command, I could see that the Oracle 12c Container Database was added to the CRS stack in an offline status.
[oracle@oel bin]$ crsctl status res -t
——————————————————————————-
NAME TARGET STATE SERVER STATE_DETAILS
——————————————————————————-
Local Resources
——————————————————————————-
ora.LISTENER.lsnr
ONLINE ONLINE oel
ora.LISTENER_TEMP.lsnr
ONLINE ONLINE oel
ora.ons
OFFLINE OFFLINE oel
——————————————————————————-
Cluster Resources
——————————————————————————-
ora.bc11g.db
1 ONLINE ONLINE oel Open
ora.bc12c.db
1 OFFLINE OFFLINE
ora.cssd
1 ONLINE ONLINE oel
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE oel
Note: Start the database using SRVCTL from the Oracle Database 12c home.
Now, that I have added the database to the Oracle Restart (CRS) stack, the question was will Oracle Restart stop and and then restart the Oracle 12c Database? The short answer is yes! Once I issued a reboot command on my server, I could see the 12c database being stopped and then on boot up I verified that the database had been started from the CRS stack.
[oracle@oel bin]$ crsctl status res -t
——————————————————————————-
NAME TARGET STATE SERVER STATE_DETAILS
——————————————————————————-
Local Resources
——————————————————————————-
ora.LISTENER.lsnr
ONLINE ONLINE oel
ora.LISTENER_TEMP.lsnr
ONLINE ONLINE oel
ora.ons
OFFLINE OFFLINE oel
——————————————————————————-
Cluster Resources
——————————————————————————-
ora.bc11g.db
1 ONLINE ONLINE oel Open
ora.bc12c.db
1 ONLINE ONLINE oel Open
ora.cssd
1 ONLINE ONLINE oel
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE&nb
sp; oel
Note: I did not add the 12c listener to the restart process. Since this worked with the database, you could add the listener as well.
Now my question was, “did the pluggable databases (PDBs) start”? From looking through SQL*Plus, the PDBs were mounted but not opened. Leaving me to believe that the CDB was successfully started using Oracle Restart. You will need to manually start the PDBs!
SQL> select name, open_mode from v$pdbs;
NAME OPEN_MODE
—————————— ———-
PDB$SEED READ ONLY
BCPDB1 MOUNTED
BCPDB2 MOUNTED
Summary
In short, you can use Oracle Restart with Oracle Database 12c (12.1.0.1). However, I’m pretty sure that this is not a supported configuration and Oracle Support may frown upon actually doing this. I would actually recommend against doing this unless you get buy-in and support from Oracle on the configuration.
Enjoy!
twitter: @dbasolved
blog: http://dbasolved.com
Current Oracle Certs

Bobby Curtis
I’m Bobby Curtis and I’m just your normal average guy who has been working in the technology field for awhile (started when I was 18 with the US Army). The goal of this blog has changed a bit over the years. Initially, it was a general blog where I wrote thoughts down. Then it changed to focus on the Oracle Database, Oracle Enterprise Manager, and eventually Oracle GoldenGate.
If you want to follow me on a more timely manner, I can be followed on twitter at @dbasolved or on LinkedIn under “Bobby Curtis MBA”.

