quinta-feira, 29 de dezembro de 2016

Renomear um banco de dados PDB


Com a utilização de banco de dados PDB, na versão 12c do Oracle ficou mais fácil a tarefa de renomear um banco de dados.

Para fazer a troca de nome de um banco de dados PDB, podemos seguir o roteiro abaixo:


1) Conectar no banco de dados 12c - Container Database

$ sqlplus / as sysdba



2) Verificar os serviços ativos (PDBs)

- Com o select abaixo, podemos verificar os serviços ativos no CDB, ou seja os bancos PDBs existentes.

SQL> select name, con_id from v$active_services order by 1;

NAME CON_ID
--------------- ----------
SYS$BACKGROUND 1
SYS$USERS 1
db12c 1
db12cXDB 1
GHMR_XTR 3


Com a identificação e confirmação do banco de dados PDB que iremos renomear (GHMR_XTR), e conectados no container database (CDB) devemos:


a) Fechar o banco de dados PDB

SQL> alter pluggable database GHMR_XTR close immediate;


b) Abrir o banco de dados em modo restrito

SQL> alter pluggable database GHMR_XTR open restricted;


c) Verificar o status do banco de dados PDB

SQL> select name, open_mode from v$pdbs;

NAME             OPEN_MODE
---------------- ----------
GHMR_XTR         READ WRITE

Este passo é apenas uma verificação de que o banco de dados PDB, aberto em modo restrito, está em modo READ WRITE


d) Fazer o rename do banco de dados PDB

Neste ponto temos que sair do banco de dados CDB e nos conectar no banco de dados PDB atual, o qual iremos mudar de nome.

SQL> alter session set container=GHMR_XTR;

Em seguida, fazer a troca do nome do banco de dados PDB

SQL> alter pluggable database GHMR_XTR rename global_name to XPTO;


Observação:  Se ao tentar mudar o nome do banco de dados PDB, estivermos conectados no CDB, iremos receber o erro abaixo:

 ORA-65046: operation not allowed from outside a pluggable



e) Conferir o novo nome do banco de dados PDB

SQL> select name, con_id from v$active_services order by 1;

NAME CON_ID
------ ----------
XPTO 3


f) Fechar o banco de dados PDB (novo)

SQL> alter pluggable database XPTO close immediate ;


g) Abrir o banco de dados PDB (novo)

SQL> alter pluggable database XPTO open ;


h) Voltar para o container database (CDB)

Para voltarmos ao container database (CDB), podemos:


- Nos conectar diretamente ao container database com o comando:

SQL> conn / as sysdba

- Ou, podemos sair do banco de dados e nos conectarmos novamente ao CDB:

SQL> exit

$> sqlplus / as sysdba


i) verificar os serviços ativos no CDB, ou seja os bancos PDBs existentes.

SQL> select name, con_id from v$active_services order by 1;


NAME CON_ID
--------------- ----------
SYS$BACKGROUND 1
SYS$USERS 1
db12c 1
db12cXDB 1
XPTO 3