Consultar Arquivos Externos de Dump do Data Pump

Você também pode consultar arquivos de dump do Oracle Data Pump na Nuvem criando uma tabela externa usando DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

Os arquivos de origem para criar esse tipo de tabela externa devem ser exportados do sistema de origem usando o driver de acesso ORACLE_DATAPUMP em Tabelas Externas. Consulte Descarregando e Carregando Dados com o Driver de Acesso ORACLE_DATAPUMP para obter detalhes sobre como exportar usando o driver de acesso ORACLE_DATAPUMP.

Para criar uma tabela externa, primeiro mova os arquivos de dump do Oracle Data Pump que foram exportados usando o driver de acesso ORACLE_DATAPUMP para o Armazenamento de Objetos e, em seguida, use DBMS_CLOUD.CREATE_EXTERNAL_TABLE para criar a tabela externa.

Os arquivos de origem neste exemplo são os arquivos de dump do Oracle Data Pump, exp01.dmp e exp02.dmp.

  1. 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;
    /
    

    Essa 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 para criar tabelas externas.

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

  2. Crie uma tabela externa na parte superior dos arquivos de origem usando o procedimento DBMS_CLOUD.CREATE_EXTERNAL_TABLE.

    Por exemplo:

    BEGIN
       DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
        table_name =>'CHANNELS_EXT',
        credential_name =>'DEF_CRED_NAME',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp01.dmp,
                         https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp02.dmp'
        format => json_object('type' value 'datapump', 'rejectlimit' value '1'),
        column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)' );
    END;
    /
    

    Os parâmetros são:

    • table_name: é o nome da tabela externa.

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

    • file_uri_list: é uma lista delimitada por vírgulas dos arquivos de dump do Data Pump que você deseja consultar.

    • format: define as opções que você pode especificar para descrever o formato do arquivo de origem. Quando você especifica o tipo 'datapump', o único outro parâmetro de formato válido é 'rejectlimit'.

    • column_list: é uma lista delimitada por vírgulas das definições de coluna nos arquivos de origem.

    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.

    Agora você pode executar consultas na tabela externa criada na etapa anterior. Por exemplo:

    SELECT count(*) FROM channels_ext;

    Por padrão, o banco de dados espera que todas as linhas no arquivo de dados externo sejam válidas e correspondam às definições do tipo de dados de destino, bem como à definição de formato dos arquivos. Como parte da validação, DBMS_CLOUD garante que todas as partes necessárias do arquivo de dump estejam lá e também verifica se os arquivos de dump são válidos e não estão corrompidos (por exemplo, exp01.dmp, exp02.dmp etc.). Você pode usar a opção de formato rejectlimit DBMS_CLOUD para suprimir esses erros. Como alternativa, você também pode validar a tabela externa criada para ver as mensagens de erro e as linhas rejeitadas. Consulte Validar Dados Externos para obter mais informações.

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

    Consulte DBMS_CLOUD Formatos de URI para obter mais informações sobre os serviços suportados de armazenamento de objetos da nuvem.