Como faço para conectar um PDB ao banco de dados de contêiner Oracle12c?
Summary: 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
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
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:
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:
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.
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
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.
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.
Article Properties
Article Number: 000146520
Article Type: Solution
Last Modified: 21 Feb 2021
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.