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.