Saturday, January 23, 2021

How To Clone a PDB (Pluggable Database) From Existing PDB



SQL> select name,open_mode from v$pdbs;

NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
pdb1 READ WRITE


SQL> alter session set container=pdb1;

Session altered.

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
/u01/oradata/cdb1/pdb1/system01.dbf
/u01/oradata/cdb1/pdb1/sysaux01.dbf

SQL> show con_name

CON_NAME
------------------------------
pdb1


SQL> shutdown immediate;
Pluggable Database closed.

SQL> startup open read only
Pluggable Database opened.

Connect to the CDB and clone the PDB:

SQL> conn sys/oracle@cdb1 as sysdba
Connected.
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT



-- Clone pluggable


SQL> create pluggable database pdb1_clone from pdb1 FILE_NAME_CONVERT=('/u01/oradata/cdb1/pdb1','/u01/oradata/cdb1/pdb1_clone');

Pluggable database created.

Now make the existing PDB ( pdb1) from read only to read write:

SQL> select name,open_mode from v$pdbs;

NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
pdb1 READ ONLY
pdb1_clone MOUNTED

SQL> alter session set CONTAINER=pdb1;

Session altered.

SQL> shutdown immediate;
Pluggable Database closed.
SQL> startup
Pluggable Database opened.
SQL> show con_name

start the new cloned PDB( pdb1_clone)

SQL> alter session set container=pdb1_clone;

Session altered.

SQL> startup
Pluggable Database opened.


SQL> conn sys/oracle@cdb1 as sysdba
Connected.
SQL> select name,open_mode from v$pdbs;

NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
pdb1 READ WRITE
pdb1_clone READ WRITE

No comments:

Post a Comment