Creating a new PDB by Plugging in an Unplugged PDB (with MOVE clause)

A cláusula MOVE nos permite direcionar os arquivos descritos no arquivo XML para um novo local, e em vez de ter sua cópia realizada, teremos a sua movimentação. Checando dados do PDB de origem e o desligando:

SQL> SELECT NAME FROM V$PDBS;
 
NAME
--------------------------------------------------------------------------------
PDB$SEED
HIPOFISE1
HIPOFISE2
 
SQL> set linesize 100
SQL> col name format a100
SQL> SELECT NAME FROM V$DATAFILE WHERE CON_ID = (SELECT CON_ID FROM V$PDBS WHERE NAME='HIPOFISE2');
 
NAME
----------------------------------------------------------------------------------------------------
/oracle/dados/TALAMO/BD02D62DBD0C163FE0536B00A8C0EF43/datafile/o1_mf_system_j57ozm1w_.dbf
/oracle/dados/TALAMO/BD02D62DBD0C163FE0536B00A8C0EF43/datafile/o1_mf_sysaux_j57ozm1z_.dbf
/oracle/dados/TALAMO/BD02D62DBD0C163FE0536B00A8C0EF43/datafile/o1_mf_undotbs1_j57ozm23_.dbf
/oracle/dados/TALAMO/BD02D62DBD0C163FE0536B00A8C0EF43/datafile/o1_mf_users_j57ozm23_.dbf
 
SQL> SELECT GUID FROM V$PDBS WHERE NAME='HIPOFISE2';
 
GUID
--------------------------------
BD02D62DBD0C163FE0536B00A8C0EF43
 
SQL> ALTER PLUGGABLE DATABASE HIPOFISE2 CLOSE IMMEDIATE;
 
Pluggable database altered.

Realizando o UNPLUG:

SQL> ALTER PLUGGABLE DATABASE HIPOFISE2 UNPLUG INTO '/home/oracle/BSS.xml';
 
Pluggable database altered.

Checando compatibilidade do PDB com o CDB. É reportado um erro pois o PDB de origem fica no mesmo CDB de destino, e não quero dropá-lo antes do move para ver o comportamento do processo:

SQL> set serveroutput on
DECLARE
        compatible BOOLEAN := FALSE;
BEGIN
        compatible := DBMS_PDB.CHECK_PLUG_COMPATIBILITY( PDB_DESCR_FILE => '/home/oracle/BSS.xml');
        if compatible then
                DBMS_OUTPUT.PUT_LINE('It is compatible');
        else
        DBMS_OUTPUT.PUT_LINE('It is NOT compatible');
        end if;
END;
/SQL>   2    3    4    5    6    7    8    9   10   11
DECLARE
*
ERROR at line 1:
ORA-65012: Pluggable database HIPOFISE2 already exists.
ORA-06512: at "SYS.DBMS_PDB", line 32
ORA-06512: at line 4

Realizando o clone e confirmando que o GUID do PDB novo é diferente do de origem:

SQL> CREATE PLUGGABLE DATABASE HIPOFISE3 AS CLONE USING '/home/oracle/BSS.xml' MOVE;
 
Pluggable database created.
 
SQL> SELECT GUID FROM V$PDBS WHERE NAME='HIPOFISE3';
 
GUID
--------------------------------
BDD845CA2D5E45ABE0536B00A8C0F2F1

Validando arquivos no destino:

SQL> ! ls -lthr /oracle/dados/TALAMO/BDD845CA2D5E45ABE0536B00A8C0F2F1/datafile
total 746M
-rw-r-----. 1 oracle oinstall  75M Mar 18 20:58 o1_mf_temp_j57t9v0q_.dbf
-rw-r-----. 1 oracle oinstall 5.1M Mar 18 20:58 o1_mf_users_j57t9v0r_.dbf
-rw-r-----. 1 oracle oinstall 101M Mar 18 20:58 o1_mf_undotbs1_j57t9v0q_.dbf
-rw-r-----. 1 oracle oinstall 271M Mar 18 20:58 o1_mf_system_j57t9v0p_.dbf
-rw-r-----. 1 oracle oinstall 371M Mar 18 20:58 o1_mf_sysaux_j57t9v0q_.dbf

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

1 thought on “Creating a new PDB by Plugging in an Unplugged PDB (with MOVE clause)”

  1. Pingback: ALL options for creating a PDB using Create Puggable Database command – Bruno Santos da Silva

Leave a Comment

Your email address will not be published.