Usar o Data Pump do PL/SQL com DBMS_DATAPUMP

Use o pacote PL/SQL DBMS_DATAPUMP para exportar e importar arquivos de dump do Data Pump diretamente de/para o serviço Object Storage.

O pacote PL/SQL DBMS_DATAPUMP fornece uma interface para operações de exportação e importação do Oracle Data Pump diretamente de dentro do banco de dados. DBMS_DATAPUMP é adequado para importações e exportações completas e em nível de esquema. Para exportar ou carregar dados no nível da consulta ou do objeto, considere o uso de DBMS_CLOUD.EXPORT_DATA ou DBMS_CLOUD.COPY_DATA. Para importação ou exportação completa no nível do banco de dados usando os utilitários de linha de comando, use as ferramentas do Data Pump expdp e impdp.

Este tópico descreve como usar o pacote PL/SQL DBMS_DATAPUMP para exportar e importar arquivos de dump do Data Pump diretamente de e para um armazenamento de objetos. Para gravar ou ler um arquivo de armazenamento de objetos, especifique um URI de armazenamento de objetos em ADD_FILE e forneça um nome de credencial.

Pré-requisitos

Crie credenciais do Object Storage, ACLs de rede e qualquer diretório ou objeto de credencial necessário antes de seguir esses exemplos.

Exemplo: Exportar para o Serviço Object Storage

Este exemplo cria um job de exportação, grava o arquivo de dump no Object Storage e usa o nome da credencial no lugar de um objeto de diretório local.

DECLARE
  hdl       NUMBER;
  dump_file VARCHAR2(1024) := 'https://objectstorage.example.com/n/namespace/b/bucket/o/hr_exp_%U.dmp';
  cred_name VARCHAR2(128)  := 'OBJSTORE_CRED';
BEGIN
  hdl := DBMS_DATAPUMP.OPEN(
           operation => 'EXPORT',
           job_mode   => 'SCHEMA',
           job_name   => 'HR_EXP_OBJSTORE');

  DBMS_DATAPUMP.ADD_FILE(
    handle    => hdl,
    filename  => dump_file,
    directory => cred_name,
    filesize  => NULL,
    filetype  => DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE,
    reusefile => 1);

  DBMS_DATAPUMP.METADATA_FILTER(hdl, 'SCHEMA_EXPR', 'IN (''HR'')');
  DBMS_DATAPUMP.START_JOB(hdl);
  DBMS_DATAPUMP.DETACH(hdl);
END;
/

Exemplo: Importar do Serviço Object Storage

Este exemplo importa o arquivo de dump do Object Storage e remapeia o esquema durante a importação.

DECLARE
  hdl       NUMBER;
  dump_file VARCHAR2(1024) := 'https://objectstorage.example.com/n/namespace/b/bucket/o/hr_exp_%U.dmp';
  cred_name VARCHAR2(128)  := 'OBJSTORE_CRED';
BEGIN
  hdl := DBMS_DATAPUMP.OPEN(
           operation => 'IMPORT',
           job_mode   => 'SCHEMA',
           job_name   => 'HR_IMP_OBJSTORE');

  DBMS_DATAPUMP.ADD_FILE(
    handle    => hdl,
    filename  => dump_file,
    directory => cred_name,
    filetype  => DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE);

  DBMS_DATAPUMP.METADATA_REMAP(hdl, 'REMAP_SCHEMA', 'HR', 'HR2');
  DBMS_DATAPUMP.START_JOB(hdl);
  DBMS_DATAPUMP.DETACH(hdl);
END;
/