Convert Non-Container Oracle DB to Container DB

Here are the two situations:

  • Convert a Non-Container 12C database to Container 12C database
  • Migrate Non-Container 11g/12C database to Container 12C database


  • There is no direct way to convert a Non-Container 12C database to Container 12C database. All you can do is to consider Non-Container database as a pluggable database(PDB) and attach it to the existing 12C container database.

    With that said - How to create a PDB Using a Non-CDB?

    Both the CDB and the non-CDB must be running Oracle Database 12c Release 1 (12.1.0.2) or later.
    If your current non-CDB uses an Oracle Database release before Oracle Database 12c Release 1 (12.1.0.2), then you must upgrade the non-CDB to Oracle Database 12C.

    Once you have both your Non-Container database and Container database running on 12C,
  • you can can create a PDB by cloning a non-CDB
  • This method is the simplest way to create a PDB using a non-CDB, but it requires copying the files of the non-CDB to a new location.

  • Use the DBMS_PDB package to generate an XML metadata file
  • This method is little complicated. The XML metadata file describes the database files of the non-CDB so that you can plug it into a CDB.

  • Use Oracle Data Pump export/import
  • You export the data from the non-CDB and import it into a PDB. If the Oracle Database release of the non-CDB is Oracle Database 11g Release 2 (11.2.0.3) or later, then you can use full transportable export/import to move the data.

    When transporting a non-CDB from an Oracle Database 11g Release 2 (11.2.0.3) or later Oracle Database 11g database to Oracle Database 12c, the VERSION Data Pump export parameter must be set to 12.0.0.0.0 or higher.

  • Use GoldenGate replication
  • You replicate the data from the non-CDB to a PDB. When the PDB catches up with the non-CDB, you fail over to the PDB.