Cloning Pluggable Databases
Overview
- 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.
Purpose
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
Introduction
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:
Scenario
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.
Prerequisites
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.
- 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
The environment used in the development of this tutorial is as follows:
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
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;
Open the PDB that you want to clone in READ ONLY mode.
alter pluggable database pdb1 open read only;
exit
Creating a Directory for the New Clone PDB
Navigate to /stage
or wherever you can find enough available space to
store the data files for pdb1_clone.
cd /stage
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
Use SQL*Plus to connect as sysdba
and set the following parameter:
alter system set db_create_file_dest='/stage/pdb1_clone';
Cloning the PDB Within the CDB
Use SQL*Plus to clone the PDB within the same CDB.
Execute the following statement:
create pluggable database pdb1_clone from pdb1;
Open the new pdb.
alter pluggable database pdb1_clone open;
Connect to the new pdb.
connect system/oracle@localhost:1521/pdb1_clone;
Verify that you are connected to the new PDB:
show con_name

Setting the Source PDB Back to Open Mode
Connect to the root in the CDB.
connect / as sysdba
alter session set container=cdb$root;
Execute the following statement:
alter pluggable database pdb1 close immediate;
Open the source pdb.
alter pluggable database pdb1 open;

Resetting Your Environment
Perform the following steps to reset your environment prior to repeating the activities covered in this OBE or starting another OBE.
Close the clone PDB.
alter pluggable database pdb1_clone close immediate;
Delete the clone PDB and its data files.
drop pluggable database pdb1_clone including datafiles;
Summary
- Prepare an existing PDB to be cloned
within the same CDB
- Clone the PDB
- To learn more about pluggable databases, refer to additional OBEs in the Oracle Learning Library
In this tutorial, you learned how to:
Resources
Credits
Curriculum Developers: Dominique Jeunot, Jean-Francois Verrier