Right way to restart Oracle 12c Server with pluggable databases 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!
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


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
Shutdown Windows Server


Restart


Start Windows Server
Start the Listener
https://docs.oracle.com/database/121/ADMQS/network.htm#ADMQS044
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.


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
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
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