Sunday, May 17, 2020

How To Clone A Pluggable Database From Existing PDB in Oracle 19c

In this article we will clone a pluggable database from existing PDB (CLONETEST), residing on the same container.
First we need to place PDB in read only mode, which we are planning to clone (CLONETEST).
[code] [dev:oracle:ORCL}$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sun May 17 17:13:24 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO 4 CLONETEST READ WRITE NO SQL> alter pluggable database CLONETEST close; Pluggable database altered. SQL> alter pluggable database CLONETEST open read only; Pluggable database altered. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO 4 CLONETEST READ ONLY NO SQL> SQL> alter session set container=CLONETEST; Session altered. SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- /u01/app/oracle/oradata/ORCL/CLONETEST/system01.dbf /u01/app/oracle/oradata/ORCL/CLONETEST/sysaux01.dbf /u01/app/oracle/oradata/ORCL/CLONETEST/undotbs01.dbf /u01/app/oracle/oradata/ORCL/CLONETEST/users01.dbf SQL> show con_name CON_NAME ------------------------------ CLONETEST SQL> SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE ---------------------------------------- ---------- CLONETEST READ ONLY [/code]

We must connect to the container and then clone the pluggable

[code] SQL> alter session set container=CDB$ROOT; Session altered. SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> SQL> SQL> create pluggable database CLONETEST_CL from CLONETEST FILE_NAME_CONVERT=('/u01/app/oracle/oradata/ORCL/CLONETEST','/u01/app/oracle/oradata/ORCL/CLONETEST_CL'); Pluggable database created. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO 4 CLONETEST READ ONLY NO 5 CLONETEST_CL MOUNTED [/code]


Now make based PDB (CLONETEST) and newly created PDB (CLONETEST_CL) "open read write"

[code] SQL> alter pluggable database CLONETEST close; Pluggable database altered. SQL> alter pluggable database CLONETEST open read write; Pluggable database altered. SQL> alter pluggable database CLONETEST_CL open read write; Pluggable database altered. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO 4 CLONETEST READ WRITE NO 5 CLONETEST_CL READ WRITE NO SQL> [/code] 

No comments:

Post a Comment