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