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.dbf SQL> show con_name CON_NAME —————————— DEV SQL> shu immediate; Pluggable Database closed. SQL> startup open read only Pluggable 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_name CON_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 ONLY DEV READ ONLY DEVCLONE MOUNTED SQL> alter session set CONTAINER=DEV; Session altered. SQL> shutdown immediate; Pluggable Database closed. SQL> startup Pluggable Database opened. SQL> show con_name DEV |
Step4:-
start the new cloned PDB( DEVCLONE)
| SQL> alter session set container=DEVCLONE; Session altered. SQL> SHU IMMEDIATE SQL> startup Pluggable Database opened. SQL> conn sys/syspassword@NONPROD as sysdba Connected. SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE —————————— ———- PDB$SEED READ ONLY DEV READ WRITE DEVCLONE READ WRITE |


Leave a Reply