Como faço para conectar um PDB ao banco de dados de contêiner Oracle12c?

Resumen: Nossa missão é oferecer soluções que simplificam a TI ao fornecer soluções de banco de dados, desenvolvimento personalizado, datacenters dinâmicos e computação flexível

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Síntomas

Aplica-se a: 
Bancos de dados: Oracle 12cR1

Autor:
Mahesh Reddy

Problema: 
Como faço para conectar um PDB ao banco de dados de contêiner Oracle12c?

Solução: 
Você pode criar um banco de dados conectável das seguintes maneiras:
  • Criar um novo PDB usando seed.
  • Criar um novo PDB clonando um PDB existente
  • Conecte um PDB desconectado ao CDB
  • Criar um novo PDB a partir do 12c não CDB
1. Criar um novo PDB usando seed:

Crie um PDB usando o banco de dados SEED. Esse método copia os arquivos associados ao seed para um novo local e os associa ao novo PDB. Você pode criar facilmente um novo PDB a partir do SEED usando a instrução "create pluggable database statement".

Você pode especificar as seguintes cláusulas para criar um novo PDB a partir do SEED de diferentes maneiras:
  • Storage: você pode especificar os limites de armazenamento
  • Default Tablespace: um pequeno tablespace de arquivo é criado e atribuído a usuários que não são do sistema.
  • path_prefix: especifica o caminho absoluto
  • file_name_convert: especifica o novo local dos arquivos PDB a partir dos arquivos de origem.
  • Tempfile reuse: especifica a reutilização do tempfile a partir do local de destino.
  • Roles: funções predefinidas da Oracle que serão concedidas à função PDB_DBA.
SLN310932_pt_BR__1icon Nota: a cláusula ROLES só poderá ser usada quando você estiver criando um PDB a partir de seed.

Exemplo: 1

Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;

A instrução acima cria o PDB com o usuário local PDBUSR.  Essa instrução concede a função PDB_DBA ao administrador de PDB "pdbusr" e concede as funções predefinidas da Oracle especificadas para a função PDB_DBA, localmente no PDB.

Exemplo: 2                              

Sql> Create pluggable database PDBNAME admin user pdbusr identified by PASSWORD storage (MAXSIZE 5G) default tablespace USERS datafile ‘+DATA_NEW’ size 100M autoextend on path_prefix = ‘+DATA_NEW’ file_name_convert = (‘+DATA’,’DATA_NEW’);

A instrução acima cria o pdb com o tamanho limitado. Ela especifica que todos os tablespaces que pertencem ao PDB não devem exceder 5 GB e cria os usuários de tablespace padrão para usuários não administradores, no novo local "+DATA_NEW". 

2.  Criar um novo PDB clonando um PDB existente:

A clonagem do banco de dados de produção é uma técnica comum, usada para desenvolver e testar alterações em aplicativos e ambientes associados. Antes de uma nova versão do sistema operacional, do software de armazenamento ou do aplicativo ser instalada em um ambiente de produção, é necessário realizar um teste completo usando dados de produção. Isso geralmente é feito copiando o banco de dados de produção para um ambiente de teste.

No Oracle12c, você pode usar a instrução CREATE PLUGABLE DATABASE para clonar um PDB. Essa instrução clona um PDB de origem e conecta o clone ao mesmo CDB ou ao CDB remoto.

A instrução CREATE PLUGABLE DATABASE copia os arquivos associados ao PDB de origem para um novo local e associa os arquivos ao PDB de destino.

Diferentes tipos de cláusulas:

1.       Clonagem de um PDB local sem usar cláusulas

Não usar cláusulas significa que não haverá alterações estruturais.

Exemplo: sql> create pluggable database clone_pdb from pdb;

Aqui, o pdb de clone foi criado com o mesmo tamanho e as mesmas funções, mas com GUID diferente, no grupo de discos padrão.

2.       Clonagem de um PDB local com as cláusulas PATH_PREFIX e FILE_NAME_CONVERT

A cláusula FILE_NAME_CONVERT é necessária para especificar os locais de destino dos arquivos copiados. Neste exemplo, os arquivos são copiados de um local para outro.

Exemplo: sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');

Aqui, os arquivos de dados pdb de origem são armazenados no grupo de discos "+DATA", os arquivos de dados pdb de clone são colocados em diferentes grupos de discos "+BRLOAD". Você pode usar a cláusula FILE_NAME_CONVERT para converter o local dos arquivos de dados de "+DATA" para "+BRLOAD".

3.       Clonagem de um PDB local usando as cláusulas FILE_NAME_CONVERT e STORAGE.

Os limites de armazenamento devem ser aplicados ao PDB. Sendo assim, a cláusula STORAGE é requerida. Especificamente, todos os tablespaces que pertencem ao PDB não devem exceder 2 GB, e o armazenamento usado pelas sessões PDB no tablespace temporário compartilhado não deve ultrapassar 100 megabytes.

Exemplo: sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);

 Etapas para clonar um PDB local:

Esta seção descreve a clonagem de um PDB local. Depois de clonar um PDB local, os PDBs de origem e destino ficam no mesmo CDB.

Você pode clonar o PDB usando as seguintes etapas:

Etapa 1: verifique o status do pdb de origem

  Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

 Os PDBs que serão clonados devem estar no estado SOMENTE LEITURA. Se estiverem no modo LEITURA/GRAVAÇÃO, altere o status usando o comando abaixo

Sql> alter pluggable database pdbname close instances=all;

Aqui, instances=all significa fechar o PDB em todos os nós.

Sql> alter pluggable database pdb open read only instances=all;

Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ ONLY   NO

Etapa 2: escolha as opções necessárias de diferentes cláusulas de clonagem mencionadas na Seção2,

Sql> create pluggable database clone_pdb1 from pdb1; (no clauses)

Em que pdb1 é a origem e clone_pdb1 é o destino

Etapa 3: o PDB clonado estará no modo montado e seu status será NOVO. Você pode visualizar o status de um PDB consultando a coluna STATUS da visualização CDB_PDBS ou DBA_PDBS.

Depois disso, altere o estado do pdb usando "alter pluggable database". Em seguida, você precisará adicionar o serviço PDB em tnsnames.ora, em todos os nós.

3. Desconecte e conecte um PDB ao CDB:

Desconectando um PDB:

Desconectar um PDB desassocia o PDB de um CDB. A operação de desconexão faz algumas alterações nos arquivos de dados do PDB para registrar, por exemplo, que o PDB foi desconectado com sucesso. Como o PDB desconectado ainda faz parte do CDB, ele é incluído em um backup RMAN de todo o CDB. Esse backup é uma maneira conveniente de arquivar o PDB desconectado, caso ele seja necessário no futuro. É preciso fechar o PDB para poder desconectá-lo. Quando você desconecta um PDB de um CDB, o PDB desconectado fica no modo montado

Etapas para desconectar um PDB:

Verifique o status do pdb de origem

 Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

Se o PDB de origem estiver no modo Leitura/Gravação, você deve alterar o estado do PDB para MONTADO.

Sql> alter pluggable database PDBNAME close instances=all;

Conecte-se ao contêiner raiz e execute o comando abaixo

Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;

Aqui, o arquivo de metadados pdb1.xml é criado no diretório /u01/app/oracle.

Usando o arquivo de metadados XML, você pode conectar o PDB ao

3.1. mesmo CDB

3.2. CDB remoto

Você pode conectar o PDB ao CDB usando "create pluggable database" e, então, especificar o arquivo XML com cláusulas diferentes.

Diferentes tipos de cláusulas:

Usando source_file_name_convert, sem cláusula de cópia:
SOURCE_FILE_NAME_CONVERT: o XML não mostra a localização atual dos arquivos. Dessa vez, podemos usar essa cláusula. O XML indica que os arquivos estão em +DATA, mas os arquivos reais estão em +DATA1.

Source_file_name_convert = (‘+DATA’,’+DATA1’)

+DATA= string1   +DATA1=string2

Aqui, o padrão de nome de arquivo string2 substitui o padrão de nome de arquivo string1.

2.       Usando a cláusula path_prefix, copy, file_name_convert:

PATH_PREFIX: essa cláusula é usada para especificar o caminho absoluto do local dos arquivos de dados.

FILE_NAME_CONVERT: quando os arquivos não estiverem no local de destino e você quiser copiá-los ou movê-los depois, durante a criação do PDB, use essa cláusula.

3.       Usando a cláusula FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT:

O arquivo Xml não descreve a localização atual dos arquivos, portanto, a conversão do nome do arquivo de origem é requerida. Exemplo: o arquivo xml indica que os arquivos estão em "+DATA", mas os arquivos estão em "/u01/app".

A conversão do nome do arquivo é requerida para mover os arquivos de "/u01/app" para "+DATA1".

3.1 Conectar o pdb desconectado ao mesmo CDB:

O PDB deve ser retirado do CDB antes de ser conectado novamente ao mesmo CDB.

 Crie um banco de dados conectável usando o arquivo XML com métodos diferentes.

a)       Método NOCOPY

Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;

b)      Método COPY

Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);

c)       Método AS CLONE MOVE

Sql> Create pluggable database pdb1 as clone using ‘/u01/app/oracle/pdb1.xml’ move file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);

3.2 Conectar o pdb desconectado ao CDB remoto:

Pré-requisitos:

A)      Eles devem ter o mesmo formato endian.

B)      Eles devem ter o mesmo conjunto de opções de banco de dados instalado.

FONTE:

1.   Depois de desconectar o PDB, transfira o XML para o local de destino e também transfira os arquivos do banco de dados do grupo de discos (+DATA) para o local do sistema operacional (/home/) usando o comando ASMCMD cp ou DATA_FILE_NAME_CONVERT.

2.   Transfira os arquivos do banco de dados do local de origem para o sistema operacional de destino. 

DESTINO:

Depois de obter os arquivos XML e de banco de dados de origem, você pode usar a função DBMS_PDB.CHECK_PLUG_COMPATIBILITY para determinar se o pdb desconectado é compatível com o CDB de DESTINO.

Se você receber uma saída "YES", o PDB é compatível.

Se você receber uma saída "NO", o PDB não é compatível. Verifique os erros na visualização PDB_PLUG_IN_VIOLATIONS.

Ao criar um PDB remoto, escolha as cláusulas requeridas da seção3,

Exemplo: Sql> Create pluggable database pdbname using ‘/home/oracle/pdbname.xml’

      Source_file_name_convert = (‘+SOURCE_DATA’,’/home/oracle/datafiles’)

      Move

      File_name_convert = (‘/home/oracle/datafiles’,’+TARGET_DATA’);

Descrição: o arquivo xml especifica o local dos arquivos de dados do PDB em termos de discos ASM, mas os arquivos reais residem no local "/home/oracle". A cláusula Source_file_name_convert ajuda a substituir o padrão do nome do arquivo e indica o local de origem real. A cláusula file_name_convert ajuda a mover dados do local do sistema operacional para os discos ASM.

4. Migrar o 12c não cdb para o PDB:

Consulte este white paper.
Propiedades del artículo
Número del artículo: 000146520
Tipo de artículo: Solution
Última modificación: 21 feb 2021
Versión:  3
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.