How to move Pluggable database from One CDB database to another CDB database.

From  
Database Name                          :               mdbpdb3
Container Database name           :               mdbcdb
Data files directory                     :               “/app/oracle/mdbcdb/mdbpdb3”
To
Database Name                          :               mdbpdb_new
Container Database name           :               ORCL
Data files directory                    :               /app/oracle/mdbpdb_new

Task: unplug pluggable database from mdbpdb3 from mdbcdb container database and plug it into another container database “ORCL” with new name “mdbpdb_new”  

Move data files from “/app/oracle/mdbcdb/mdbpdb3” to “/app/oracle/mdbpdb_new” directory.

     Connect to mdbcdb database


$ export ORACLE_SID=mdbcdb
$ sqlplus
Enter Username: / as sysdba
SQL>

     Close the pluggable database mdbpdb3

SQL> alter pluggable database mdbpdb3 close;

Pluggable database altered.

Unplug the database by specifying XML file. This XML file will be used to plug this  database into the target CDB

SQL> alter pluggable database mdbpdb3 unplug into '/app/oracle/mdbpdb3.xml';
Pluggable database altered. 

Create target directory

$mkdir /app/oracle/mdbpdb_new

Connect to Target CDB ‘orcl’

$ export ORACLE_SID=orcl
$ sqlplus
Enter User: / as sysdba

               Start the target CDB

SQL> startup

SQL>CREATE PLUGGABLE DATABASE mdbpdb_new  USING '/app/oracle/mdbpdb3.xml' MOVE 
FILE_NAME_CONVERT= '/app/oracle/mdbcdb/mdbpdb3/','/app/oracle/mdbpdb_new/') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);

Pluggable database created.

SQL> show pdbs
CON_ID CON_NAME             OPEN MODE RESTRICTED
------ ------------------------------ ---------- ----------
1      mdbpdb_new                 MOUNTED

         Open the pluggable database mdbpdb_new

SQL> alter pluggable database mdbpdb_new open;


Pluggable database altered.

Cloning an Existing Pluggable Database

From MDBPDB1 to MDBPDB3.

Old Pluggable database Name          :               MDBPDB1
Data files directory                          :               “/app/oracle/mdbcdb/mdbpdb1”

New Pluggable database Name         :               MDBPDB2.
Data Files directory                         :               “/app/oracle/mdbcdb/mdbpdb3”

Create the directory
$mkdir /app/oracle/mdbcdb/mdbpdb3

$sqlplus
Enter User: / as sysdba
SQL>

Note: Before cloning we need to close the source database mdbpdb1 and we should open in Read Only mode.

SQL> alter pluggable database mdbpdb1 close;
Pluggable database altered.

SQL> alter pluggable database mdbpdb1 open read only;
Pluggable database altered.

Then we need to issue the following command.

SQL>CREATE PLUGGABLE DATABASE mdbpdb3 FROM mdbpdb1 FILE_NAME_CONVERT = ('/app/oracle/mdbcdb/mdbpdb1/',
'/app/oracle/mdbcdb/mdbpdb3/') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);


Pluggable database created.

Creating Pluggable Database from existing pluggable database

From MDBPDB1 to MDBPDB2

Old Pluggable database Name         :               MDBPDB1
Data files directory                         :               “/app/oracle/mdbcdb/mdbpdb1”

New Pluggable database Name        :                MDBPDB2.
Data Files directory                        :               “/app/oracle/mdbcdb/mdbpdb2”

Create the directory
$mkdir /app/oracle/mdbcdb/mdbpdb2

$sqlplus
Enter User: / as sysdba
SQL>

Then use the following commands.

SQL>CREATE PLUGGABLE DATABASE mdbpdb2 ADMIN USER mdbpdb2admin IDENTIFIED BY Admin123 STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
DEFAULT TABLESPACE users DATAFILE '/app/oracle/mdbcdb/mdbpdb2/users01.dbf'
SIZE 250M AUTOEXTEND ON FILE_NAME_CONVERT= '/app/oracle/mdbcdb/mdbpdb1/','/app/oracle/mdbcdb/mdbpdb2/')