Create PDB from non-cdb

Overview

To create PDB from non-cdb, you need to follow these steps,

  • open non-cdb in read only mode
  • generate xml file
  • check compatibility
  • create PDB from xml file
  • run post script, noncdb_to_pdb.sql

Create xml file

$ srvctl stop database -db ORCL -o immediate

SQL> startup nomount
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE OPEN READ ONLY;

BEGIN
  DBMS_PDB.DESCRIBE(pdb_descr_file => '/tmp/orcl.xml');
END;
/

Check compatibility

SET SERVEROUTPUT ON
DECLARE
  compatible CONSTANT VARCHAR2(3) :=
    CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
      pdb_descr_file => '/tmp/orcl.xml',
      pdb_name => 'NCDB')
    WHEN TRUE THEN 'YES'
    ELSE 'NO' END;
BEGIN
  DBMS_OUTPUT.PUT_LINE(compatible);
END;
/

Create PDB using xml file

$ srvctl stop database -db ORCL -o immediate

SQL> CREATE PLUGGABLE DATABASE ORCLPDB USING '/tmp/orcl.xml';
SQL> alter session set container = ORCLPDB;
SQL> @?/rdbms/admin/noncdb_to_pdb.sql