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