Steps to
Clone A Pluggable Database From Existing PDB
So, I had a
requirement for a customer where I had to clone a PDB from existing PDB on same
CDB . I followed the following steps to do this.
Step 1.
Put the PDB
in read only mode
|
SQL> select
name,open_mode from v$pdbs; NAME OPEN_MODE ------------------------------
---------- PDB$SEED READ ONLY DEV READ WRITE SQL> alter session set container=DEV;Session altered.SQL> select file_name from dba_data_files;FILE_NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/nonprod/dev/system01.dbf/u01/app/oracle/oradata/nonprod/dev/sysaux01.dbf/u01/app/oracle/oradata/nonprod/dev/users01.dbfSQL> show con_nameCON_NAME------------------------------DEVSQL> shu immediate;Pluggable Database closed.SQL> startup open read onlyPluggable Database opened. |
Step 2.
Connect to the CDB and initiate PDB clone:
|
Set Oracle
SID as CDB SID [oracle@server1]$export
ORACLE_SID=NONPROD [oracle@server1]$sqlplus
/ as sysdba SQL> show con_nameCON_NAME------------------------------CDB$ROOT-- Clone
pluggable SQL>
create pluggable database DEVCLONE from DEV
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/nonprod/dev','/u01/app/oracle/oradata/nonprod/devclone'); Pluggable
database created. |
Step 3:
Start the
new cloned PDB In read write mode
SQL> select name,open_mode from v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED READ ONLYDEV READ ONLYDEVCLONE MOUNTEDSQL> alter session set CONTAINER=DEV;Session altered.SQL> shutdown immediate;Pluggable Database closed.SQL> startupPluggable Database opened.SQL> show con_nameDEV |
Step4:-
start the new cloned PDB( DEVCLONE)
SQL> alter session set container=DEVCLONE;Session altered.SQL> SHU IMMEDIATESQL> startupPluggable Database opened.SQL> conn sys/syspassword@NONPROD as sysdbaConnected.SQL> select name,open_mode from v$pdbs;NAME OPEN_MODE------------------------------ ----------PDB$SEED READ ONLYDEV READ WRITEDEVCLONE READ WRITE |