Data Pump aus PL/SQL mit DBMS_DATAPUMP verwenden

Verwenden Sie das PL/SQL-Package DBMS_DATAPUMP, um Data Pump-Dumpdateien direkt in und aus Object Storage zu exportieren und zu importieren.

Das PL/SQL-Package DBMS_DATAPUMP stellt eine Schnittstelle für Oracle Data Pump-Export- und -Importvorgänge direkt aus der Datenbank bereit. DBMS_DATAPUMP eignet sich für Exporte und Importe auf Voll- und Schemaebene. Wenn Sie Daten auf Abfrage- oder Objektebene exportieren oder laden möchten, verwenden Sie DBMS_CLOUD.EXPORT_DATA oder DBMS_CLOUD.COPY_DATA. Für den vollständigen Import oder Export auf Datenbankebene mit den Befehlszeilen-Utilitys verwenden Sie die Data Pump-Tools expdp und impdp.

In diesem Thema wird beschrieben, wie Sie mit dem PL/SQL-Package DBMS_DATAPUMP Data Pump-Dumpdateien direkt in und aus einem Objektspeicher exportieren und importieren. Um eine Objektspeicherdatei zu schreiben oder zu lesen, geben Sie eine Objektspeicher-URI in ADD_FILE an und geben einen Zugangsdatennamen an.

Voraussetzungen

Erstellen Sie Object Storage-Zugangsdaten, Netzwerk-ACLs und alle erforderlichen Directory- oder Zugangsdatenobjekte, bevor Sie diese Beispiele befolgen.

Beispiel: In Objektspeicher exportieren

In diesem Beispiel wird ein Exportjob erstellt, die Dumpdatei in Object Storage geschrieben und der Zugangsdatenname anstelle eines lokalen Verzeichnisobjekts verwendet.

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

Beispiel: Aus Object Storage importieren

In diesem Beispiel wird die Dumpdatei aus Object Storage importiert und das Schema während des Imports neu zugeordnet.

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