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