3.5 Cloning Pluggable Databases

«« Previous
Next »»

1. Overview


This tutorial covers the steps required to clone a pluggable database (PDB) from a container database (CDB) into the same CDB.

Time to Complete

Approximately 15 minutes


You can copy a source PDB from a CDB and plug the copy into the same CDB or into another CDB. This capability is suitable for the following situations:
  • You want to test the application patch of your production PDB. You first clone your production application in a cloned PDB, patch the cloned PDB, and test it.
  • You want to diagnose performance issues or perform performance regression tests on your application. Because you cannot perform this operation in parallel with the production in the same database, you clone the PDB into another CDB.

In this tutorial, you will use SQL*Plus to perform a PDB cloning operation within the same CDB. 
Note: If you want to clone a PDB from a CDB into another CDB, you identify the source CDB by creating a database link to it from the CDB in which you want to create the clone.


Before starting this tutorial, you should: 
  • Ensure that you have enough disk space to hold a complete clone of the PDB.
  • Install Oracle Database 12c.
  • Create one CDB with one PDB in it.
The environment used in the development of this tutorial is as follows:
  • ORACLE_HOME: /u01/app/oracle/product/12.1.0
  • TNS Listener port: 1521
  • Container databases:
    • SID: cdb1
    • SID: cdb2
  • Pluggable databases (in cdb1):
    • pdb1
    • pdb2

2. Preparing the Source PDB to Clone

In this section, you prepare the source PDB to be cloned and the target new PDB to be created.
  • Setting the Source PDB to READ ONLY Mode
1. Use SQL*Plus to close the PDB that you want to clone.
. oraenv
[enter cdb1 at the prompt]
sqlplus / as sysdba
alter pluggable database pdb1 close immediate;

2. Open the PDB that you want to clone in READ ONLY mode.
alter pluggable database pdb1 open read only;
  • Creating a Directory for the New Clone PDB
1. Navigate to /stage or wherever you can find enough available space to store the data files for pdb1_clone. 
cd /stage

2. Create a subdirectory called pdb1_clone under /stage. Note: You may need to log in as root to create the subdirectory, and then change the owner to oracle and the group to oinstall.
mkdir pdb1_clone
  • Configuring OMF to the Directory of the Clone PDB
1. Use SQL*Plus to connect as sysdba and set the following parameter: 
sqlplus / as sysdba
alter system set db_create_file_dest='/stage/pdb1_clone';

3. Cloning the PDB Within the CDB

Use SQL*Plus to clone the PDB within the same CDB.

1. Execute the following statement:
create pluggable database pdb1_clone from pdb1;

2. Open the new pdb.
alter pluggable database pdb1_clone open;

3. Connect to the new pdb.
connect system/oracle@localhost:1521/pdb1_clone;

4. Verify that you are connected to the new PDB:
show con_name

Cloning Pluggable Databases

4. Setting the Source PDB Back to Open Mode

1. Connect to the root in the CDB.
connect / as sysdba
alter session set container=cdb$root;

2. Execute the following statement:
alter pluggable database pdb1 close immediate;

3. Open the source pdb.
alter pluggable database pdb1 open;

Cloning Pluggable Databases

5. Resetting Your Environment

Perform the following steps to reset your environment prior to repeating the activities covered in this OBE or starting another OBE.

1. Close the clone PDB.
alter pluggable database pdb1_clone close immediate;

2. Delete the clone PDB and its data files.
drop pluggable database pdb1_clone including datafiles;

«« Previous
Next »»