Usando o Oracle Data Pump para Exportar Dados

O Oracle Data Pump oferece movimentação de dados e metadados em massa muito rápida entre o Autonomous AI Database e outros bancos de dados da Oracle.

A Oracle recomenda o uso da versão mais recente do Oracle Data Pump para exportar dados do Autonomous AI Database para outros bancos de dados da Oracle, pois ela contém aprimoramentos e correções para uma melhor experiência. Faça download da versão mais recente do Oracle Instant Client e faça download do Pacote de Ferramentas, que inclui o Oracle Data Pump, para sua plataforma em Downloads do Oracle Instant Client. Consulte as instruções de instalação na página de download de instalação da plataforma para obter as etapas de instalação necessárias depois de fazer download do Oracle Instant Client e do Pacote de Ferramentas.

Para mover dados de um Autonomous AI Database para outros bancos de dados da Oracle que usam o Oracle Data Pump, use uma das seguintes opções:

Exportar Dados Usando um Diretório no Autonomous AI Database

Para exportar dados usando um diretório no Autonomous AI Database, primeiro você deve criar um conjunto de arquivos para dump com os dados exportados em um diretório no seu banco e, em seguida, fazer upload desses arquivos do seu diretório de bancos de dados para o Cloud Object Armazen.

Usar o Data Pump para Criar um Conjunto de Arquivos de Dump no Autonomous AI Database

  1. Crie um diretório para armazenar os arquivos de dump que contêm os dados exportados. Por exemplo:

     CREATE DIRECTORY data_export_dir as 'data_export';
    
  2. Execute a Exportação do Data Pump com o parâmetrodumpfile definido, o parâmetrofilesize definido como menos de 50G e o parâmetrodirectory definido. Por exemplo, o seguinte mostra como exportar um esquema chamado SALES em um Autonomous AI Database chamado ATPC1 com 64 ECPUs:

     expdp sales/password@ATPC1_high
     directory=data_export_dir
     dumpfile=exp%L.dmp
     parallel=16
     encryption_pwd_prompt=yes
     filesize=1G
     logfile=export.log
    

    Observações para parâmetros do Data Pump:

    • No caso de ECPUs, parallel deve ser definido como 0,25 vezes a contagem de ECPUs. Assim, no exemplo acima com 64 ECPUs, parallel é definido como 0,25 x 64, ou seja, 16 com expdp.

    • No caso de OCPUs, parallel deve ser definido com o mesmo valor da contagem de OCPUs. No exemplo acima com 16 OCPUs, o parallel será definido como 16, com expdp.

    • Se, durante a exportação com expdp, você usar o parâmetro encryption_pwd_prompt=yes, deverá usar encryption_pwd_prompt=yes com sua importação e inserir a mesma senha no prompt impdp para decriptografar os arquivos dump (lembre-se da senha fornecida para exportação). O tamanho máximo da senha de criptografia é 128 bytes.

    • O parâmetro dumpfile suporta os caracteres curinga %L e %l, além dos caracteres curinga %U e %u legados. Por exemplo, dumpfile=export%L.dmp.

      Use o caractere curinga %L ou %l para exportações do Oracle Database Release 12.2 e superior. Este curinga expande o nome do arquivo dumpfile em um inteiro de incremento de largura variável de 3 dígitos a 10 dígitos, começando em 100 e terminando em 2147483646.

    Para obter o melhor desempenho de exportação, use o serviço de banco de dados HIGH para sua conexão da exportação e defina o parâmetro PARALLEL como o número de CPUs em um banco de dados. Para obter informações sobre qual nome de serviço do banco de dados estabelecer conexão para executar a Exportação do Data Pump, consulte Nomes de Serviço de Banco de dados Predefinidos para Autonomous AI Databases.

    Depois que a exportação estiver concluída, você poderá ver os arquivos de dump gerados executando uma consulta como a seguinte:

     SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
    

    Por exemplo, a saída dessa consulta mostra os arquivos de dump gerados e o arquivo de log de exportação:

     OBJECT_NAME                 BYTES  CHECKSUM                   CREATED          LAST_MODIFIED
    
     ---------------------- ---------- --------- ------------------------------- --------------------
     exp01.dmp                   12288               12-NOV-19 06.10.47.0 PM GMT       12-NOV-19...
     exp02.dmp                    8192               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
     exp03.dmp                 1171456               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
     exp04.dmp                  348160               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
     export.log                   1663               12-NOV-19 06.10.50.0 PM GMT       12-NOV-19...
    

Observação:

Mova o Conjunto de Arquivos de Dump do Autonomous AI Databaseto Seu Cloud Object Store

  1. Estabeleça conexão com o Autonomous AI Database.

  2. Armazene sua credencial do Cloud Object Storage usando o procedimento DBMS_CREDENTIAL.CREATE_CREDENTIAL. Por exemplo:

     BEGIN
       DBMS_CREDENTIAL.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
         username => 'adb_user@oracle.com',
         password => 'password'
       );
     END;
     /
    

    Os valores fornecidos para username e password dependem do serviço de Cloud Object Storage que você está usando:

    • Oracle Cloud Infrastructure Object Storage: username é o nome do usuário da Oracle Cloud Infrastructure e password é o seu token de autenticação da Oracle Cloud Infrastructure. Consulte Como Trabalhar com Tokens de Autenticação.

    • Oracle Cloud Infrastructure Object Storage Classic: username é o nome do usuário do seu Oracle Cloud Infrastructure Classic e password é a senha do seus Oracle Cloud Infrastructure Classic.

      Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial. Observe que essa etapa só é necessária uma vez, a menos que suas credenciais do armazenamento de objetos sejam alteradas. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para todos os carregamentos de dados.

  3. Mova os arquivos de dump do Autonomous AI Database para o Cloud Object Store chamando DBMS_CLOUD.PUT_OBJECT.

    Por exemplo:

     BEGIN
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp01.dmp');
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp02.dmp');
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp03.dmp');
        DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
          object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp',
          directory_name => 'DATA_EXPORT_DIR',
          file_name => 'exp04.dmp');
     END;
     /
    

    Consulte Procedimento PUT_OBJECT para obter informações sobre PUT_OBJECT.

Exportar Dados do Autonomous AI Database para o Object Store Diretamente

Mostra como usar o Oracle Data Pump para exportar dados do Autonomous AI Database para o Cloud Object Store diretamente.

  1. Estabeleça conexão com o Autonomous AI Database.

  2. Armazene sua credencial do Cloud Object Storage usando o procedimento DBMS_CREDENTIAL.CREATE_CREDENTIAL. Por exemplo:

     BEGIN
       DBMS_CREDENTIAL.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
                username => 'adb_user@oracle.com',
         password => 'password'
         );
     END;
     /
    

    Os valores fornecidos para username e password dependem do serviço de Cloud Object Storage que você está usando:

    • Oracle Cloud Infrastructure Object Storage: username é o nome do usuário da Oracle Cloud Infrastructure e password é o seu token de autenticação da Oracle Cloud Infrastructure. Consulte Como Trabalhar com Tokens de Autenticação.

    • Oracle Cloud Infrastructure Object Storage Classic: username é o nome do usuário do seu Oracle Cloud Infrastructure Classic e password é a senha do seu Oracle Cloud Infrastructure Classic.

    Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial. Observe que essa etapa só é necessária uma vez, a menos que suas credenciais do armazenamento de objetos sejam alteradas. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para todos os carregamentos de dados.

  3. Como usuário do ADMIN, defina a credencial definida na etapa acima como a credencial padrão do seu Autonomous AI Database.

    Por exemplo:

     ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
    
  4. Execute a Exportação do Data Pump com o parâmetro dumpfile definido para o URL de um bucket existente no Cloud Object Storage (terminando com um nome do arquivo ou um nome do arquivo com uma variável de substituição, como exp%U.dmp).

    • Oracle Data Pump versão 19.9 ou posterior:

      defina o parâmetro credential como o nome da credencial criada na Etapa 2. Por exemplo:

      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      credential=DEF_CRED_NAME \
      dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      

      Neste exemplo, dumpfile corresponde a um URI Swift do Oracle Cloud Infrastructure que especifica todos os arquivos cujo nome corresponde a export<number>.dmp no bucket mybucket, na região us-ashburn-1. (adbdpreview1 corresponde ao namespace do armazenamento de objetos no qual o bucket reside.)

    • Versões anteriores ao 19.9 do Oracle Data Pump:

      inicie o valor do parâmetro dumpfile com a palavra-chave default_credential e dois-pontos. Por exemplo:

      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      dumpfile=DEF_CRED_NAME:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      

      Neste exemplo, a palavra-chave default_credential no parâmetro dumpfile é obrigatória.

    Observações para parâmetros do Oracle Data Pump:

    • Por padrão, o Oracle Data Pump Export compacta somente os metadados antes da gravação no conjunto de arquivos para dump. Você pode definir o parâmetro compression como ALL para compactar metadados e dados antes de gravar no conjunto de arquivos de dump. Consulte COMPRESSÃO em Utilitários Oracle Database 19c ou Utilitários Oracle Database 26ai para obter mais detalhes.

    • O parâmetro dumpfile suporta os caracteres curinga %L e %l, além dos caracteres curinga %U e %u legados. Por exemplo, dumpfile=export%L.dmp.

      Use o caractere curinga %L ou %l para exportações do Oracle Database Release 12.2 e superior. Este curinga expande o nome do arquivo dumpfile em um inteiro de incremento de largura variável de 3 dígitos a 10 dígitos, começando em 100 e terminando em 2147483646.

      Para obter mais informações, consulte Parâmetros Disponíveis no Modo de Linha de Comando de Exportação do Data Pump em Oracle Database 19c Utilities ou Oracle Database 26ai Utilities.

    • Para obter o melhor desempenho de exportação, use o serviço de banco de dados high para sua conexão e defina o parâmetro parallel como 0,25 vezes o número de ECPUs ou igual ao número de OCPUs no seu Autonomous AI Database. Para obter informações sobre qual nome de serviço do banco de dados estabelecer conexão para executar a Exportação do Data Pump, consulte Nomes de Serviço de Banco de dados Predefinidos para Autonomous AI Databases.

    • Para obter o formato de URL do arquivo de dump de diferentes serviços do Cloud Object Storage, consulte Formatos de URI do Cloud Object Storage.

    Para obter informações sobre objetos não permitidos no Autonomous AI Database, consulte Limitações sobre o Uso de Comandos SQL.

  5. Valide os resultados.

    O Oracle Data Pump divide cada parte do arquivo de dump em chunks menores para a obtenção de uploads mais rápidos. A console do Oracle Cloud Infrastructure Object Storage mostra vários arquivos para cada parte do arquivo de dump que você exporta. O tamanho dos arquivos de dump reais será exibido como 0 (zero) e seus chunks de arquivos relacionados como 10 MB ou menos. Por exemplo:

     exp01.dmp
     exp01.dmp_aaaaaa
     exp02.dmp
     exp02.dmp_aaaaaa
    

    Observação:

    Fazer download do arquivo de dump de zero byte do console ou usar a CLI não fornecerá os arquivos de dump completos. Para fazer download dos arquivos de dump completos do Object Store, use uma ferramenta que suporte Swift, como curl, e forneça seu log-in de usuário e token de autenticação Swift. Por exemplo:

       curl -O -v -X GET -u 'user1@example.com:auth_token' \
        https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/export01.dmp
    

Fazer Download de Arquivos de Dump, Executar a Importação de Data Pump e Limpar o Armazenamento de Objetos

Se necessário, faça download dos arquivos de dump do Cloud Object Store e use a Importação do Oracle Data Pump para importar o conjunto de arquivos de dump para o banco de dados de destino. Em seguida, execute qualquer limpeza necessária.

  1. Faça download dos arquivos de dump do Cloud Object Store.

    Observação: esta etapa não é necessária se você estiver importando os dados para outro Autonomous AI Database

    Se você exportar diretamente para a Área de Armazenamento de Objetos usando o Oracle Data Pump, conforme mostrado em Exportar Dados do Autonomous AI Database Diretamente para a Área de Armazenamento de Objetos, os arquivos para dump na Área de Armazenamento de Objetos mostrarão tamanho 0. O Oracle Data Pump divide cada parte do arquivo de dump em chunks menores para a obtenção de uploads mais rápidos. A console do Oracle Cloud Infrastructure Object Storage mostra vários arquivos para cada parte do arquivo de dump que você exporta. O tamanho dos arquivos de dump reais será exibido como 0 (zero) e seus chunks de arquivos relacionados como 10 MB ou menos. Por exemplo:

    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    

    O download do arquivo de dump de zero byte na console do Oracle Cloud Infrastructure ou usando a CLI do Oracle Cloud Infrastructure não fornecerá a você os arquivos de dump completos. Para fazer download dos arquivos de dump completos do Object Store, use uma ferramenta que suporte Swift, como curl, e forneça seu log-in de usuário e token de autenticação Swift. Por exemplo:

    curl -O -v -X GET -u 'user1@example.com:auth_token' \
    https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp
    

    O comando cURL não suporta caracteres curinga ou de substituição em seu URL. Você precisa usar vários comandos cURL para fazer download do conjunto de arquivos de dump do seu Object Store. Como alternativa, você pode usar um script que suporte caracteres de substituição para fazer download de todos os arquivos de dump do Object Store em um único comando.

  2. Execute a Importação do Data Pump para importar o conjunto de arquivos de dump para o banco de dados de destino.

    Observação: Se você estiver importando os dados para outro Autonomous AI Database, consulte Load Data Using Oracle Data Pump.

    No caso de arquivos exportados diretamente para a Área de Armazenamento de Objetos com o Oracle Data Pump, conforme mostrado em Exportar Dados do Autonomous AI Database para a Área de Armazenamento de Objetos Diretamente, se você importar um arquivo com os procedimentos DBMS_CLOUD que suportam o parâmetro format type com o valor 'datapump', só precisará fornecer o nome de arquivo principal. Os procedimentos que suportam o tipo de formato 'datapump' descobrem e fazem download automaticamente dos chunks.

  3. Execute tarefas de limpeza pós-importação. Se você terminar de importar os arquivos de dump para seu(s) banco(s) de dados de destino, elimine o bucket que contém os dados ou remova os arquivos de dump do bucket do Cloud Object Store e remova os arquivos de dump do local em que você fez download dos arquivos de dump para executar a Importação do Data Pump.

Para obter informações detalhadas, consulte Parâmetros Disponíveis no Modo de Linha de Comando de Importação do Oracle Data Pump em Utilitários Oracle Database 19c ou Utilitários Oracle Database 26ai.