O Oracle Multitenant já está presente em nossas vidas há algum tempo, esta arquitetura nos ajuda a consolidar vários bancos de dados como PDBs em um CDB.
Hoje irei criar um PDB sem dados, existem diversas aplicações para esta funcionalidade, um exemplo claro seria criar uma mesma estrutura de objetos para uma nova filial ou cliente da empresa.
Listar PDBs existentes:
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- -------------- ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
5 PRD_BA READ WRITE NO
SQL>
Verifiquei se o parâmetro db_create estava configurado:
SYS@db AS SYSDBA> show parameter db_create
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string +DATAC1
db_create_online_log_dest_1 string +DATAC1
db_create_online_log_dest_2 string +RECOC1
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
Clonei o PDB PRD_BA para o destino PRD_SE, o segredo é a opção (no data):
SQL> create pluggable database PRD_SE from PRD_BA no data;
Pluggable database created.
Fiz a abertura do PDB PRD_SE para uso:
SQL> alter pluggable database PRD_SE open instances=all;
SQL> alter pluggable database all save state instances=all;
Listei os PDBs:
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- -------------- ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
5 HML_NOVO READ WRITE NO
6 PRD_BA READ WRITE NO
7 PRD_SE READ WRITE NO
SQL>
Agora que finalizei todos os passos do clone de pdb, ele já pode ser utilizado.