Mover Dados para o Armazenamento de Objetos como Arquivos do Oracle Data Pump Usando EXPORT_DATA

Você pode exportar dados para arquivos de dump do Oracle Data Pump especificando uma consulta.

Com esse método de exportação, você usa o procedimento DBMS_CLOUD.EXPORT_DATA para especificar uma consulta a fim de selecionar os dados a serem exportados, da seguinte forma:

  1. Estabeleça conexão com o banco de dados.
  2. Armazene suas credenciais do armazenamento de objetos usando o procedimento DBMS_CLOUD.CREATE_CREDENTIAL.

    Por exemplo:

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

    Não será necessário criar uma credencial para acessar o Oracle Cloud Infrastructure Object Store se você ativar as credenciais do controlador de recursos. Consulte Usar o Controlador de Recursos para Acessar Recursos da Oracle Cloud Infrastructure para obter mais informações.

    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 é obrigatória apenas uma vez, a menos que as credenciais do armazenamento de objetos sejam alteradas. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial.

    Consulte Procedimento CREATE_CREDENTIAL para obter informações sobre os parâmetros username e password para diferentes serviços de armazenamento de objetos.

  3. Exporte dados do Autonomous Database para o seu Cloud Object Store como arquivo(s) de dump do Oracle Data Pump chamando DBMS_CLOUD.EXPORT_DATA com o parâmetro format type definido como valor datapump. Por exemplo:
    BEGIN
     DBMS_CLOUD.EXPORT_DATA(
        credential_name =>'DEF_CRED_NAME',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp01.dmp',
        format => json_object('type' value 'datapump'),
        query => 'SELECT warehouse_id, quantity FROM inventories'
     );
    END;
    /
    

    Os parâmetros são:

    • credential_name: é o nome da credencial criada na etapa anterior.

    • file_uri_list: é uma lista delimitada por vírgulas dos arquivos de exportação. O uso de caracteres curinga e de substituição não é suportado no file_uri_list.

    • format: especifica o parâmetro type necessário com o valor datapump e, opcionalmente, define as opções que você pode especificar para a exportação com o Driver de Acesso ORACLE_DATAPUMP.

    • query: especifica uma instrução SELECT para que somente os dados necessários sejam exportados. A consulta determina o conteúdo dos arquivos de dump.

    Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

    Observação

    O procedimento DBMS_CLOUD.EXPORT_DATA cria o(s) arquivo(s) de dump que você especificou no file_uri_list. O procedimento não substitui arquivos. Se existir um arquivo de dump no file_uri_list, o DBMS_CLOUD.EXPORT_DATA reportará um erro. DBMS_CLOUD.EXPORT_DATA não cria buckets.

    Para obter informações detalhadas sobre os parâmetros, consulte ProcedimentoEXPORT_DATA.

  4. Execute as etapas necessárias para usar a importação e a limpeza do Oracle Data Pump. Consulte Fazer Download do Arquivo de Dump, Executar Importação do Data Pump e Limpar o Armazenamento de Objetos para obter mais detalhes.

Observações para exportar dados com o DBMS_CLOUD.EXPORT_DATA:

  • Os arquivos de dump criados com o DBMS_CLOUD.EXPORT_DATA não podem ser importados usando o Oracle Data Pump impdp. Dependendo do banco de dados, você pode usar estes arquivos da seguinte forma:

    • Em um Autonomous Database, você pode usar os arquivos de dump com os procedimentos DBMS_CLOUD que suportam o parâmetro format type com o valor 'datapump'. Você pode importar os arquivos de dump usando DBMS_CLOUD.COPY_DATA ou pode chamar DBMS_CLOUD.CREATE_EXTERNAL_TABLE para criar uma tabela externa.

    • Em qualquer outro Oracle Database, como o Oracle Database 19c on-premises, você pode importar os arquivos de dump criados com o procedimento DBMS_CLOUD.EXPORT_DATA usando o driver de acesso ORACLE_DATAPUMP. Consulte Descarregando e Carregando Dados com o Driver de Acesso ORACLE_DATAPUMP para obter mais informações.

  • O número de arquivos de dump que o DBMS_CLOUD.EXPORT_DATA gera é determinado quando o procedimento é executado. O número de arquivos de dump gerados depende do número de nomes de arquivos que você fornece no parâmetro file_uri_list, bem como do número de ECPUs disponíveis para a instância, o nível de serviço e o tamanho dos dados.

    Por exemplo, se você usar uma instância do Autonomous Database de 2 ECPUs ou o serviço low, um único arquivo de dump será exportado sem paralelismo, mesmo que você forneça vários nomes de arquivo. Se você usar uma instância do Autonomous Database de 8 ECPUs com o serviço medium ou high, os jobs poderão ser executados em paralelo e vários arquivos de dump serão exportados se você fornecer vários nomes de arquivo.

  • O valor do parâmetro query que você fornece pode ser uma consulta avançada, se necessário, como uma consulta que inclui junções ou subconsultas.