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 para selecionar os dados a serem exportados da seguinte forma:

  1. Estabeleça conexão com o banco de dados.
  2. Armazene suas credenciais de 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;
    /
    

    A criação de uma credencial para acessar o Oracle Cloud Infrastructure Object Store não será necessária se você ativar as credenciais do controlador de recursos. Para obter mais informações, consulte Usar o Controlador de Recursos para Acessar Recursos do Oracle Cloud Infrastructure.

    Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para a credencial. Observe que essa etapa só é necessária uma vez, a menos que suas credenciais de 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 Cloud Object Store como arquivo(s) de dump do Oracle Data Pump chamando DBMS_CLOUD.EXPORT_DATA com o parâmetro format type definido com o 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 do(s) arquivo(s) 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 apenas os dados necessários sejam exportados. A consulta determina o conteúdo do(s) arquivo(s) de dump.

    Neste exemplo, namespace-string corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname corresponde ao 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 especificado(s) no file_uri_list. O procedimento não substitui arquivos. Se um arquivo de dump no file_uri_list existir, o DBMS_CLOUD.EXPORT_DATA reportará um erro. O DBMS_CLOUD.EXPORT_DATA não cria buckets.

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

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

Observações de exportação de dados com o DBMS_CLOUD.EXPORT_DATA:

  • Os arquivos de dump criados com DBMS_CLOUD.EXPORT_DATA não podem ser importados usando o impdp do Oracle Data Pump. Dependendo do banco de dados, você pode usar esses 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 Unloading and Loading Data with the ORACLE_DATAPUMP Access Driver 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 fornecidos no parâmetro file_uri_list, bem como do número de ECPUs disponíveis para a instância, do nível de serviço e do tamanho dos dados.

    Por exemplo, se você usar uma instância do Autonomous Database com 2 ECPU 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 com 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 fornecido pode ser uma consulta avançada, se necessário, como uma consulta que inclui junções ou subconsultas.