The full reference can be found under this blog entry - Mike Dietrich - he maintains 500 pages of guidelines and best practices to follow for your upgrade.
My database to migrate has 10GB.
1) Install new software in new oracle home
2) Purge recycle bin
3) Check for Invalid objects - recompile if you have invalid objects in SYS or SYSTEM using $ORACLE_HOME/rdbms/admin/utlrp.sql before running the upgrade.
4) Remove outdated parameters, underscores and events from init.ora
5) Necessary components
a) XDB component is mandatory in DB12c
b) Remove components which don't exists any more in DB12c
i. EM DB Control Repository
ii. OLAP AMD
6) Collect fresh stats
7) Parameter recommendations
a) Deprecated in 12c
i. SEC_CASE_SENSITIVE_LOGON=TRUE (this defaults to TRUE in 11g)
ii. This must be aged out
b) Obsolete in 12c
8) Put the db you want to upgrade in mount mode
9) Go to the new software location (12c) and invoke DBUA (Database Upgrade Assistant) from $ORACLE_HOME/bin/dbua
In step 1 we select the operation to perform.
In step 2 we select the source Oracle Home, and the SID that we plan the upgrade on
In step 2 we are prompted the validation and what action we need in order to comply.
As we have invalid object we fix this in a terminal and click on Check Again
In Oracle DB12c we can do the upgrade using parallelism. This is NEW feature in the upgrades to 12c! This can save up to 40% time.
We are prompted the option to configure EM Express. We can do this at a later time as well by setting the port.
In step 6 we have several options on moving the database files. Read carefully and act accordingly to your needs
We choose to migrate the Listener.
We are prompted to options to recover in case of problems. We choose RMAN as an option to recover.
In step 9 we are prompted with all the details of the Upgrade. This is logical and concise.
We are prompted with a progress of the steps. We can monitor this activity and also monitor the alert log.
The upgrade completes in approximately 2 hours. This was a 10GB database but it had enabled lots of options and this is also a factor which dictates the duration.
In the end we are prompted full details of the upgrade.
That is all.