Olá a todos. No post anterior, vimos como migrar e atualizar uma base de dados do 11g para o 12c. Essa base migrada será do tipo “non-CDB”. Para concluír o procedimento, será necessário converter essa base “non-CDB” para a arquitetura Multitenant, permitindo que ela seja “plugada” em um CDB. Neste post mostrarei como fazer isso.
1. Considerações iniciais
Todas as bases pré-12c são chamadas de “non-CDB”
No 12c, caso uma base seja criada com o parâmetro ENABLE_PLUGGABLE_DATABASE = FALSE, essa base também é do tipo “non-CDB”.
Existem algumas maneiras de criar um PDB a partir de um “non-CDB”:
* Usando o pacote DBMS_PDB, que gera os metadados para a criação do PDB. Esse pacote geram um .xml contendo metadados sobre os datafiles do non-CDB. Neste post vamos usar esse pacote.
OBS1: A limitação dessa tecnica é que o non-CDB deve ser 12c ou superior. Para que bases de dados de versões anteriores possam ser convertidas para um PDB através dessa tecnica, essas bases devem ser atualizadas para o 12c.
* Datapump, usando a feature de Transportable Tablespaces
* Goldengate
2. Passos
2.1) Colocar a base non-CDB em read-only
2.2) Gerar um XML contendo a estrutura da base non-CDB
2.3) Desligar a base non-CDB
2.4) Setar as variáveis de ambiente da base CDB que hospedará a base non-CDB, e se conectar a ela
2.5) Checar se a base non-CDB é compatível com a base CDB que a hospedará
2.6) Criar o PDB a partir do XML criado no passo 2.2
2.7) Se conectar a PDB recem-criada e executar o seguinte script. Após a execução desse script, a nova base PDB deve ser aberta em READ-WRITE (tentar abri-la em READ-ONLY lançará um erro):
2.8) Ao término desse procedimento, a base non-CDB ainda existirá, bem como existirá o PDB criado a partir dessa base de dados.
Com isso, a base “non-CDB” migrada do 11g para o 12c fará parte de um CDB como uma Pluggable Database.
Até a próxima, pessoal.