Como posso usar o Oracle Instant Client para executar a importação ou exportação do Data Pump para a minha instância de banco de dados do Amazon RDS for Oracle?

Última atualização: 10/11/2021

Eu quero usar clientes impdp e expdp para realizar importação e exportação para a minha instância de banco de dados do Amazon Relational Database Service (Amazon RDS) for Oracle.

Resolução

Como o Amazon RDS for Oracle é um banco de dados gerenciado, você não tem acesso ao host para usar os clientes impdp ou expdp. Se você usar a API do Data Pump para realizar importações ou exportações, precisará do pacote PL/SQL. O Oracle Instant Client é um cliente do Lightweight que pode ser instalado no seu computador ou em uma instância do Amazon Elastic Compute Cloud (Amazon EC2). O Oracle Instant Client inclui os clientes impdp e expdp que podem ser usados para executar importação e exportação pela linha de comando.

Antes de usar o Oracle Instant Client, faça o seguinte:

  • Verifique o ID do documento 553337.1 para conferir se o binário que você está baixando é compatível com a exportação de versões de origem e destino. A exportação de um cliente com uma versão igual ou posterior costuma ser compatível. A importação usando a versão de cliente igual à versão principal do Amazon RDS de destino é compatível. Por exemplo, se a versão da instância de origem for 12.2 e a versão da instância de destino for 18c, você poderá instalar a versão mais recente do Oracle Instant 18c Client.
  • Para usar o Data Pump, instale o pacote Tools (Ferramentas) na parte superior do pacote Basic (Básico). Para instalar os pacotes, consulte a documentação da Oracle para o Oracle Instant Client.
  • Certifique-se de que a versão do horário de verão (DST) da instância do RDS de destino seja igual ou posterior à da instância de origem. Caso contrário, você receberá o erro ORA-39405. Use a consulta a seguir para conferir a versão atual do DST da sua instância. Para atualizar a versão do DST para a versão mais recente disponível, use a opção TIMEZONE_FILE_AUTOUPGRADE.
SELECT * FROM V$TIMEZONE_FILE;

Para testar a importação ou exportação do Data Pump por meio de um link de banco de dados usando o Oracle Instant Client, faça o seguinte:

1.    Crie uma instância do Amazon EC2 de teste usando o sistema operacional Amazon Linux 2.

2.    Download (Baixar) o pacote Basic (Básico) (RPM) e o pacote Tools (Ferramentas) (RPM). Neste artigo, os seguintes downloads de RPM são considerados:

        oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm

        oracle-instantclient19.8-tools-19.8.0.0.0-1.x86_64.rpm

3.    Transfira os binários para a instância do EC2. Para obter mais informações, consulte Transfira arquivos para instâncias do Linux usando um cliente SCP.

4.    Siga as instruções na documentação da Oracle para Install Oracle Instant Client on Linux from RPMs (Instalar o Oracle Instant Client no Linux em RPMs).
Esse processo instala os binários no local padrão /usr/lib/oracle/example-client-version/client64. Por exemplo, se você baixar os binários para a versão 19.8, o local padrão para a instalação do binário será /usr/lib/oracle/19.8/client64.

5.    Instale o SQL*Plus Package (RPM) (Pacote SQL*Plus [RPM]) para testar a conectividade entre a instância do EC2 e a instância do RDS.

6.    Defina ou atualize as seguintes variáveis de ambiente:

export PATH=$PATH:/usr/lib/oracle/19.8/client64/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/19.8/client64/lib

7.    Crie um diretório personalizado para armazenar o tnsnames.ora executando um comando semelhante ao seguinte. Defina a variável de ambiente TNS_ADMIN para apontar para o diretório.

mkdir -p /root/tnsentries

Garanta a armazenagem do arquivo tnsnames.ora nesse diretório.

Execute o seguinte comando para garantir que a variável de ambiente TNS_ADMIN aponte para o diretório.

export TNS_ADMIN=/root/tnsentries

8.    Inclua as entradas de TNS necessárias para a importação do Data Pump no arquivo tnsnames.ora.

9.    Atualize as regras de entrada para o grupo de segurança das instâncias do RDS de origem e destino para permitir conexões na instância do EC2.

10.    Crie tabelas de teste na instância do RDS de origem para realizar a exportação executando consultas como as seguintes:

CREATE TABLE TEST1 AS SELECT * FROM DBA_TABLES;
CREATE TABLE TEST2 AS SELECT * FROM DBA_OBJECTS;
CREATE TABLE TEST3 AS SELECT * FROM DBA_DATA_FILES;

11.    Para criar o link do banco de dados entre os bancos de dados de origem e de destino a ser usado com o parâmetro network_link, execute uma consulta semelhante à seguinte:

CREATE DATABASE LINK sample_conn CONNECT TO example-username IDENTIFIED BY example-password USING '(DESCRIPTION = (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = example-hostname)(PORT = example-port)))(CONNECT_DATA =(SERVICE_NAME = example-service-name)))';

Como você usa o link do banco de dados para se conectar da instância de destino para a instância de origem, as regras de entrada para o banco de dados de origem são definidas para permitir conexões da instância de destino.

12.    Para importar dados da instância de origem para a de destino, execute um comando semelhante ao seguinte:

impdp admin@target directory=data_pump_dir logfile=imp_test_tables_using_nw_link.log tables=admin.test1,admin.test2,admin.test3 network_link=sample_conn

Você pode encontrar uma saída semelhante à seguinte:

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Starting "ADMIN"."SYS_IMPORT_TABLE_01":  admin/********@target directory=data_pump_dir logfile=imp_test_tables_using_nw_link.log tables=admin.test1,admin.test2,admin.test3 network_link=sample_conn
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 3.625 MB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . imported "ADMIN"."TEST2"                              20634 rows
. . imported "ADMIN"."TEST1"                               1537 rows
. . imported "ADMIN"."TEST3"                                  6 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "ADMIN"."SYS_IMPORT_TABLE_01" successfully completed at Wed Oct 14 23:57:28 2020 elapsed 0 00:01:06

Documentação da Oracle para a Visão Geral do Oracle Data Pump

Documentação da Oracle para o DBMS_DATAPUMP

Este artigo foi útil?


Precisa de ajuda com faturamento ou suporte técnico?