Factors to Consider Before Upgrading to Oracle 12c

Jeff Stonacek, Principal Architect

In recent months we have been helping customers plan and upgrade to 12c. In this blog post we will share some topics you should consider before upgrading.

Once you have made the decision to upgrade your Oracle database to 12c, certain prerequisites must be met.  After they have been taken care of, the next step is to decide which method to use.  Below we will discuss some of these topics as they relate to 12c upgrades.


The easiest way to upgrade to 12c is directly from an earlier version. However, there are certain version requirements that must be met for a direct upgrade. Below is the 12.1 Direct Upgrade Matrix:

Source Release

Minimum Version

11gR2 and later



9i and earlier

Interim upgrade required








If the database in question does not meet these version requirements, then a two-phased approach is needed.  The database must first be upgraded to a prior version that supports direct upgrade to 12c.  Only then can it be upgraded to 12c.

Upgrade Method

There are four upgrade methods that exist for 12c.  These should look familiar, as they are similar to 11gR2.  They are:

  • DBUA or command line upgrade scripts (AKA in place upgrade)
  • Transportable Tablespace
  • Data Pump
  • Original Export/Import


Manual Upgrade

12c introduces a new command line upgrade utility, catctl.pl.  This utility replaces the familiar catupgrd.sql utility used in previous versions.  In 12c the pre upgrade script, preupgrd.sql, will generate a fix up script to fix issues with the database prior to running the upgrade utility.  The steps to run a direct upgrade via command line scripts are:

  • Run preupgrd.sql
  • Run preupgrade_fixups.sql
  • Perform any manual fix steps identified by the pre upgrade script
  • Run catctl.pl to upgrade the database
  • Run postupgrade_fixups.sql
  • Run utlu121s.sql to display upgrade status results
  • Recompile invalid objects by running utlrp.sql
  • Verify all objects compiled cleanly by running utluiobj.sql


Pluggable Database

12c introduced the concept of the pluggable database.  The pluggable database introduces the idea of the container database (CDB).  The container database allows for the plugging in of multiple tenant databases.  This concept can be used as an upgrade path to 12c.

Certain restrictions apply when plugging into a CDB:

  • Destination CDB must be a separately created database
  • Server platforms must be the same endianness
  • The two databases must have compatible options installed
  • The two databases must have compatible character sets and nchar character sets


Please note:  Multitenant database is an additionally licensed option to Oracle Enterprise Edition.


In this post we discussed prerequisites and upgrade methods for Oracle 12c.  We also covered pluggable and container databases, a new concept introduced in 12c. You should hopefully now have a better idea of the considerations involved once you make the decision to upgrade to 12c.

Table of Contents

Related Posts