Right way to restart Oracle 12c Server with pluggable databases

oracle

I am new to oracle. I installed Oracle 12c on windows with a pluggable database on a test VM. Everything was working fine. After the installation I was able to connect via EM Express on port 5500, via SQLPlus and via SQL Developer.

Them I restarted the server (windows shutdown and restart) and nothing worked. After some serious reading and a lot of trial and error I was able to connect again by starting the listener, the container database and the pluggable database. Also I had to restart the Listener service via the windows services application.

Now I have a couple of questions. Given my environment what is the recommended procedure to restart my oracle server? Is shutting down windows OK or should I shut down the oracle databases and listener before shutting down windows? What is the right startup process after a restart? Startup the container and pluggable databases and them the listener or vice versa?

All of those questions translate into just one: What is the right way (procedure and order) to shutdown and restart a windows server with Oracle 12c that has a pluggable database?

I have been reading about all those aspects but given my inexperience I haven’t found a guide about what to do in what order and why.

Thanks in advance!

Best Answer

I want to propose my findings as an answer. I have tested these procedures and they seem to work fine.

NOTE: The whole experiment was done on Windows Server 2012 R2, however based on my readings I would say most of it applies to Linux too.

Shutdown

  1. Shutdown the Oracle Database Instance to ensure that everything close cleanly https://docs.oracle.com/database/121/ADMQS/instance.htm#ADMQS052 http://www.dummies.com/how-to/content/how-to-stop-an-oracle-12c-database.html
  2. Shutdown Windows Server

Restart

  1. Start Windows Server
  2. Start the Listener https://docs.oracle.com/database/121/ADMQS/network.htm#ADMQS044
  3. Start the Database instance https://docs.oracle.com/database/121/ADMQS/instance.htm#ADMQS052

Remarks

Restarting the Windows Server should do everything automatically but there are a couple of remarks.

  1. Starting the Oracle Services on windows is not the same as starting the database instance. However they are configured by default to behave that way. Oracle Administration Assistant for Windows can be used to determine what exactly happens with the database instance when the Oracle Services are restarted. https://docs.oracle.com/database/121/NTQRF/admin.htm#i1006074

  2. Linux can also be configured to start the Oracle Database automatically using scripts. Oracle Restart was recommend in previous versions to accomplish this but is now deprecated. https://docs.oracle.com/database/121/UNXAR/strt_stp.htm#UNXAR150 http://docs.oracle.com/database/121/ADMIN/restart.htm#ADMIN12708

  3. This step is no longer necessary, see below: If a pluggable database was configured during installation it should be manually started after restarting the oracle services. https://web.archive.org/web/20180911225755/http://blog.contractoracle.com:80/2013/06/oracle-12c-need-to-start-container-and.html

Do note: The 12.1.0.2 patchset introduced the ability to preserve the startup state of PDBs through a CDB restart. This is done using the ALTER PLUGGABLE DATABASE command with the OPEN and SAVE STATE options. http://oracle-base.com/articles/12c/multitenant-startup-and-shutdown-cdb-and-pdb-12cr1.php