Uso de Pump de Datos de PL/SQL con DBMS_DATAPUMP

Utilice el paquete PL/SQL DBMS_DATAPUMP para exportar e importar archivos de volcado de pump de datos directamente desde y hacia Object Storage.

El paquete PL/SQL DBMS_DATAPUMP proporciona una interfaz para las operaciones de exportación e importación de Oracle Data Pump directamente desde la base de datos. DBMS_DATAPUMP es adecuado para exportaciones e importaciones completas y a nivel de esquema. Para exportar o cargar datos de nivel de consulta o de objeto, considere utilizar DBMS_CLOUD.EXPORT_DATA o DBMS_CLOUD.COPY_DATA. Para la importación o exportación a nivel de base de datos completa mediante las utilidades de línea de comandos, utilice las herramientas de pump de datos expdp y impdp.

En este tema se describe cómo utilizar el paquete PL/SQL DBMS_DATAPUMP para exportar e importar archivos de volcado de pump de datos directamente desde y hacia un almacén de objetos. Para escribir o leer un archivo de almacén de objetos, especifique un URI de almacén de objetos en ADD_FILE y proporcione un nombre de credencial.

Requisitos

Cree las credenciales de Object Storage, las ACL de red y los objetos de credenciales o directorios necesarios antes de seguir estos ejemplos.

Ejemplo: exportación a Object Storage

En este ejemplo se crea un trabajo de exportación, se escribe el archivo de volcado en Object Storage y se utiliza el nombre de credencial en lugar de un objeto de directorio 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;
/

Ejemplo: importación desde Object Storage

En este ejemplo, se importa el archivo de volcado de Object Storage y se vuelve a asignar el esquema durante la importación.

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