Exportar Dados Usando o Oracle Data Pump

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

A Oracle recomenda o uso da versão mais recente do Oracle Data Pump para exportar dados do Autonomous Database para outros bancos de dados Oracle, uma vez que eles contêm aprimoramentos e correções para proporcionar 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 Database para outros bancos de dados Oracle usando o Oracle Data Pump, use uma das seguintes opções:
  • Opção 1: Mover Dados com o Data Pump Export para um Diretório do Autonomous Database

    Use o Oracle Data Pump para exportar os dados para um diretório no seu banco de dados e, em seguida, mova os dados do diretório para o Cloud Object Store. Esse método pode ser benéfico quando você deseja mover dados do seu Autonomous Database para vários bancos de dados de destino. Em vez de exportar os dados para vários Cloud Object Stores na Nuvem, você pode criar um conjunto de arquivos de dump uma vez e usá-lo para vários bancos de dados de destino.

    Execute as seguintes etapas para mover dados do Autonomous Database exportando-os para um diretório do seu banco de dados:
    1. Exporte dados para um diretório no Autonomous Database e mova o conjunto de arquivos de dump do diretório para o Cloud Object Store. Consulte Exportar Dados Usando um Diretório no Autonomous Database.
    2. Faça download dos arquivos de dump do Cloud Object Store, importe os dados para o banco de dados de destino e limpe o Cloud Object Store. Consulte Fazer Download de Arquivos de Dump, Executar a Importação de Data Pump e Limpar o Armazenamento de Objetos.
  • Opção 2: Mover Dados com o Data Pump Export para o Armazenamento de Objetos

    Usando esse método de exportação, você usa o Oracle Data Pump para exportar dados diretamente para o seu armazenamento de objetos. Esse método de exportação é suportado com o Oracle Cloud Infrastructure Object Storage e o Oracle Cloud Infrastructure Object Storage Classic. Isso evita a sobrecarga de criar um conjunto de arquivos de dump em um diretório do seu Autonomous Database e, em seguida, mover o conjunto de arquivos de dump para o Cloud Object Store. Quando você planeja mover dados para um único banco de dados de destino, esse método poupa esforço e acelera o processo de exportação.

    Execute as seguintes etapas para mover dados do Autonomous Database exportando-os diretamente para o seu armazenamento de objetos:
    1. Exporte dados do Autonomous Database diretamente para um Cloud Object Store. Consulte Exportar Dados do Autonomous Database Diretamente para o Object Store.
    2. Faça download dos arquivos de dump do Cloud Object Store, importe os dados para o banco de dados de destino e limpe o Cloud Object Store. Consulte Fazer Download de Arquivos de Dump, Executar a Importação de Data Pump e Limpar o Armazenamento de Objetos.

Exportar Dados Usando um Diretório no Autonomous Database

Para exportar dados usando um diretório no Autonomous Database, primeiro crie um conjunto de arquivos de dump com os dados exportados em um diretório do seu banco de dados e, em seguida, faça upload desses arquivos do diretório do banco de dados para o Cloud Object Store.

Usar o Data Pump para Criar um Conjunto de Arquivos de Dump no Autonomous 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 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, use encryption_pwd_prompt=yes com sua importação e digite a mesma senha no prompt impdp para decriptografar os arquivos de dump ( lembre-se da senha fornecida com a exportação). O tamanho máximo da senha de criptografia é 128 bytes.

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

      Use o curinga %L ou %l para exportações do Oracle Database Release 12.2 e posterior. Este curinga expande o nome do arquivo de dump em um inteiro de incremento de largura variável de 3 dígitos para 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 de exportação e defina o parâmetro PARALLEL com o número de CPUs em seu banco de dados. Para obter informações sobre com qual nome do serviço de banco de dados se deve estabelecer conexão para executar o Data Pump Export, consulte Nomes de Serviço de Banco de Dados Predefinidos para Autonomous 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...
    

Notas:

  • Para executar uma exportação completa ou exportar objetos pertencentes a outros usuários, você precisa da atribuição DATAPUMP_CLOUD_EXP.

  • A API que você usa para mover os arquivos de dump para o serviço Object Storage oferece suporte a tamanhos de arquivo de até 50 GB; portanto, certifique-se de não especificar tamanhos maiores do que o do argumento filesize.

  • Para obter mais informações, consulte Oracle Data Pump Export em Oracle Database 19c Utilities ou Oracle Database 23ai Utilities.

Mover um Conjunto de Arquivos de Dump do Autonomous Database para o Cloud Object Store

  1. Estabeleça conexão com o seu Autonomous 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 é seu nome de usuário do Oracle Cloud Infrastructure e password é seu token de autenticação do Oracle Cloud Infrastructure. Consulte Como Trabalhar com Tokens de Autenticação.

    • Oracle Cloud Infrastructure Object Storage Classic: username é seu nome de usuário do Oracle Cloud Infrastructure Classic e password é sua senha do 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 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 Database Diretamente para o Armazenamento de Objetos

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

  1. Estabeleça conexão com o seu Autonomous 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 é seu nome de usuário do Oracle Cloud Infrastructure e password é seu token de autenticação do Oracle Cloud Infrastructure. Consulte Como Trabalhar com Tokens de Autenticação.
    • Oracle Cloud Infrastructure Object Storage Classic: username é o seu nome de usuário do Oracle Cloud Infrastructure Classic e password é a sua senha do 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 ADMIN, defina a credencial especificada na etapa acima como a credencial padrão do seu Autonomous Database.
    Por exemplo:
    ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
  4. Execute o Data Pump Export com o parâmetro dumpfile definido como o URL de um bucket existente no Cloud Object Storage (e terminando com um nome de arquivo ou um nome de 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 do Oracle Data Pump antes da versão 19.9:
      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 sobre os parâmetros do Oracle Data Pump:
    • Por padrão, o Oracle Data Pump Export compacta somente os metadados antes de gravar no conjunto de arquivos de 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 COMPRESSION em Oracle Database 19c Utilities ou Oracle Database 23ai Utilities para obter mais detalhes.

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

      Use o curinga %L ou %l para exportações do Oracle Database Release 12.2 e posterior. Este curinga expande o nome do arquivo de dump em um inteiro de incremento de largura variável de 3 dígitos para 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 do Data Pump Export em Utilitários 19c do Oracle Data base ou Utilitários Oracle Data base 23ai.

    • 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 0,25 vezes o número de ECPUs ou igual ao número de OCPUs no Autonomous Database. Para obter informações sobre com qual nome do serviço de banco de dados se deve estabelecer conexão para executar o Data Pump Export, consulte Nomes de Serviço de Banco de Dados Predefinidos para Autonomous 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 Database, consulte Limitações no 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:

    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/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 será necessária se você estiver importando os dados para outro Autonomous Database.
    Se você exportar diretamente para o Object Store usando o Oracle Data Pump, conforme mostrado em Exportar Dados do Autonomous Database Diretamente para o Object Store, os arquivos de dump no Object Store mostrarão 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. Consulte How To: Download all files from an export to object store job in Autonomous Database using cURL para obter um exemplo.

  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 Database, consulte Carregar Dados Usando o Oracle Data Pump.

    No caso de arquivos exportados diretamente para o Object Store usando o Oracle Data Pump, conforme mostrado em Exportar Dados do Autonomous Database Diretamente para o Object Store para o Object Store, se você importar um arquivo com os procedimentos DBMS_CLOUD compatíveis com o parâmetro format type com o valor 'datapump', só precisará fornecer o nome do 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 19c do Oracle Database ou Utilitários do Oracle Database 23ai.