No procedimento tradicional de plug/unplug de PDBs, nós utilizamos um arquivo XML que descreve as informações e estruturas do PDB que será criado no novo CDB. A partir do XML, nos bastidores, o Oracle faz a cópia dos datafiles referenciados ou até mesmo o seu move. Mas outra alternativa para esse processo são os PDBs Archive Files, que contempla as informações do PDB + os seus datafiles, todos compactados em um único arquivo com extensão “.pdb”. Para explorar esse recurso, vamos checar a origem:
[oracle@oel8 TALAMO]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Thu Mar 18 21:18:10 2021
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
SQL> ALTER SESSION SET CONTAINER=HIPOFISE1;
Session altered.
SQL> SELECT ROUND(SUM(BYTES)/1024/1024,2) SPACE_IN_MB FROM DBA_SEGMENTS;
SPACE_IN_MB
-----------
623.44
Baixando PDB de origem:
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
Session altered.
SQL> ALTER PLUGGABLE DATABASE HIPOFISE1 CLOSE IMMEDIATE;
Pluggable database altered.
Fazendo o unplug e criando o arquivo de archive pdb:
SQL> ALTER PLUGGABLE DATABASE HIPOFISE1 UNPLUG INTO '/home/oracle/BSS.pdb';
Pluggable database altered.
SQL> ! ls -alh /home/oracle/BSS.pdb
-rw-r--r--. 1 oracle oinstall 174M Mar 18 21:20 /home/oracle/BSS.pdb
Criando novo PDB, usando a cláusula AS CLONE para que um novo GUID seja criado:
SQL> CREATE PLUGGABLE DATABASE HIPOFISE2 AS CLONE USING '/home/oracle/BSS.pdb' COPY;
Pluggable database created.
Abrindo o PDB:
SQL> ALTER PLUGGABLE DATABASE HIPOFISE2 OPEN;
Pluggable database altered.
Comparando origem e destino:
SQL> col pdb_name format a5
SQL> SELECT PDB_NAME, STATUS FROM CDB_PDBS WHERE PDB_NAME IN ('HIPOFISE1','HIPOFISE2');
PDB_N STATUS
----- ----------
HIPOF UNPLUGGED
ISE1
HIPOF NORMAL
ISE2
SQL> SELECT OPEN_MODE FROM V$PDBS WHERE NAME IN ('HIPOFISE1','HIPOFISE2');
OPEN_MODE
----------
MOUNTED
READ WRITE
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.
Pingback: ALL options for creating a PDB using Create Puggable Database command – Bruno Santos da Silva