Daten mit Oracle Data Pump exportieren

Oracle Data Pump bietet eine sehr schnelle Bulkverschiebung von Daten und Metadaten zwischen Autonomous Database und anderen Oracle-Datenbanken.

Oracle empfiehlt, die neueste Oracle Data Pump-Version für den Export von Daten aus Autonomous Database in andere Oracle-Datenbanken zu verwenden, da diese Verbesserungen und Fixes für eine bessere Erfahrung enthält. Laden Sie die neueste Version von Oracle Instant Client herunter, und laden Sie das Toolpackage, das Oracle Data Pump enthält, für Ihre Plattform von Oracle Instant Client-Downloads herunter. Die Installationsschritte, die nach dem Herunterladen von Oracle Instant Client und dem Toolpackage erforderlich sind, finden Sie in den Installationsanweisungen auf der Downloadseite für die Plattforminstallation.

Verwenden Sie die folgenden Optionen, um Daten mit Oracle Data Pump aus einer autonomen Datenbank in andere Oracle-Datenbanken zu verschieben:
  • Option 1: Daten mit Data Pump-Export in ein Autonomous Database-Verzeichnis verschieben

    Exportieren Sie die Daten mit Oracle Data Pump in ein Verzeichnis in der Datenbank. Verschieben Sie die Daten dann aus dem Verzeichnis in den Cloud-Objektspeicher. Diese Methode kann nützlich sein, wenn Sie Daten aus Ihrer autonomen Datenbank in mehrere Zieldatenbanken verschieben möchten. Anstatt die Daten in mehrere Cloud-Objektspeicher zu exportieren, können Sie ein einzelnes Dumpdateiset erstellen und für mehrere Zieldatenbanken verwenden.

    Führen Sie die folgenden Schritte aus, um Daten aus Autonomous Database zu verschieben, indem Sie sie in ein Verzeichnis in Ihrer Datenbank exportieren:
    1. Exportieren Sie Daten in ein Verzeichnis in Autonomous Database, und verschieben Sie das Dumpdateiset aus dem Verzeichnis in den Cloud-Objektspeicher. Weitere Informationen finden Sie unter Daten mit einem Verzeichnis in Autonomous Database exportieren.
    2. Laden Sie die Dumpdateien aus dem Cloud-Objektspeicher herunter, importieren Sie die Daten in die Zieldatenbank, und bereinigen Sie den Cloud-Objektspeicher. Weitere Informationen finden Sie unter Dumpdateien herunterladen, Data Pump-Import ausführen und Objektspeicher bereinigen.
  • Option 2: Daten mit Data Pump-Export in Objektspeicher verschieben

    Bei dieser Exportmethode exportieren Sie Daten mit Oracle Data Pump direkt in den Objektspeicher. Diese Exportmethode wird mit Oracle Cloud Infrastructure Object Storage und Oracle Cloud Infrastructure Object Storage Classic unterstützt. Dadurch wird der Overhead vermieden, der entsteht, wenn Sie ein Dumpdateiset in einem Verzeichnis in Ihrer autonomen Datenbank erstellen und das Dumpdateiset dann in den Cloud-Objektspeicher verschieben. Wenn Sie beabsichtigen, Daten in eine einzelne Zieldatenbank zu verschieben, spart diese Methode Aufwand und beschleunigt den Exportprozess.

    Führen Sie die folgenden Schritte aus, um Daten aus Autonomous Database zu verschieben, indem Sie sie direkt in Ihren Objektspeicher exportieren:
    1. Exportieren Sie Daten direkt aus Autonomous Database in einen Cloud-Objektspeicher. Weitere Informationen finden Sie unter Daten direkt aus Autonomous Database in den Objektspeicher exportieren.
    2. Laden Sie die Dumpdateien aus dem Cloud-Objektspeicher herunter, importieren Sie die Daten in die Zieldatenbank, und bereinigen Sie den Cloud-Objektspeicher. Weitere Informationen finden Sie unter Dumpdateien herunterladen, Data Pump-Import ausführen und Objektspeicher bereinigen.

Daten mit einem Verzeichnis in Autonomous Database exportieren

Um Daten mit einem Verzeichnis in Autonomous Database zu exportieren, müssen Sie zunächst ein Dumpdateiset mit den exportierten Daten in einem Verzeichnis in der Datenbank erstellen. Diese Dateien müssen Sie dann aus dem Datenbankverzeichnis in den Cloud-Objektspeicher hochladen.

Mit Data Pump ein Dumpdateiset in Autonomous Database erstellen

  1. Erstellen Sie ein Verzeichnis, in dem die Dumpdateien mit den exportierten Daten gespeichert werden. Beispiel:
    CREATE DIRECTORY data_export_dir as 'data_export';
  2. Führen Sie den Data Pump-Export aus, wobei der Parameter dumpfile festgelegt ist, der Parameter filesize auf einen Wert unter 50G gesetzt und der Parameter directory festgelegt ist. Das folgende Beispiel zeigt, wie Sie ein Schema namens SALES in einer Autonomous Database namens ATPC1 mit 64 ECPUs exportieren:
    expdp sales/password@ATPC1_high 
    directory=data_export_dir 
    dumpfile=exp%L.dmp 
    parallel=16
    encryption_pwd_prompt=yes
    filesize=1G
    logfile=export.log
    Hinweise zu Data Pump-Parametern:
    • Bei ECPUs muss parallel auf das 0,25-fache der ECPU-Anzahl gesetzt werden. Im obigen Beispiel mit 64 ECPUs ist parallel also auf 0,25 x 64 gesetzt, d.h. auf 16 mit expdp.

    • Bei OCPUs muss parallel auf denselben Wert wie die OCPU-Anzahl gesetzt werden. Im obigen Beispiel mit 16 OCPUs wird parallel auf 16 gesetzt, mit expdp.

    • Wenn Sie während des Exports mit expdp den Parameter encryption_pwd_prompt=yes verwenden, müssen Sie encryption_pwd_prompt=yes mit dem Import verwenden und dasselbe Kennwort beim impdp-Prompt eingeben, um die Dumpdateien zu entschlüsseln (merken Sie sich das Kennwort, das Sie beim Export angeben). Die maximale Länge des Verschlüsselungskennworts beträgt 128 Byte.

    • Der Parameter dumpfile unterstützt die Platzhalter %L und %l zusätzlich zu den Legacy-Platzhaltern %U und %u. Beispiel: dumpfile=export%L.dmp.

      Verwenden Sie den Platzhalter %L oder %l für Exporte aus Oracle Database Release 12.2 und höher. Dieser Platzhalter erweitert den Namen der Dumpdatei in eine 3-stellige, inkrementierende Ganzzahl mit variabler Breite, die bei 100 beginnt und bei 2147483646 endet.

    Um die beste Exportperformance zu erzielen, verwenden Sie den Datenbankservice HIGH für die Exportverbindung, und setzen Sie den Parameter PARALLEL auf die Anzahl der CPUs in Ihrer Datenbank. Informationen dazu, welcher Datenbankservicename für die Ausführung des Data Pump-Exports verbunden werden soll, finden Sie unter Vordefinierte Datenbankservicenamen für autonome Datenbanken.

    Nach Abschluss des Exports können Sie die generierten Dumpdateien anzeigen, indem Sie eine Abfrage wie die Folgende ausführen:
    SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
    Die Ausgabe dieser Beispielabfrage zeigt die generierten Dumpdateien und die Exportlogdatei an:
    
    OBJECT_NAME                 BYTES  CHECKSUM                   CREATED          LAST_MODIFIED  
    ---------------------- ---------- ----–---- –------------------------–----- --------------------
    exp01.dmp                   12288               12-NOV-19 06.10.47.0 PM GMT       12-NOV-19...
    exp02.dmp                    8192               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    exp03.dmp                 1171456               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    exp04.dmp                  348160               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    export.log                   1663               12-NOV-19 06.10.50.0 PM GMT       12-NOV-19...
    

Hinweise:

  • Um einen vollständigen Export durchzuführen oder Objekte zu exportieren, deren Eigentümer andere Benutzer sind, benötigen Sie die Rolle DATAPUMP_CLOUD_EXP.

  • Die API, mit der Sie die Dumpdateien in den Objektspeicher verschieben, unterstützt Dateigrößen bis zu 50 GB. Stellen Sie daher sicher, dass Sie keine höhere Größe als die im Argument filesize angegebene angeben.

  • Weitere Informationen finden Sie unter Oracle Data Pump Export in Oracle Database 19c-Utilitys oder Oracle Database 23ai-Utilitys.

Dumpdateiset aus Autonomous Database in Cloud-Objektspeicher verschieben

  1. Stellen Sie eine Verbindung zur autonomen Datenbank her.

  2. Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur DBMS_CREDENTIAL.CREATE_CREDENTIAL. Beispiel:
    BEGIN
      DBMS_CREDENTIAL.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@oracle.com',
        password => 'password'
      );
    END;
    /
    Die Werte, die Sie für username und password angeben, hängen vom verwendeten Cloud-Objektspeicherservice ab:
    • Oracle Cloud Infrastructure Object Storage: username ist Ihr Oracle Cloud Infrastructure-Benutzername, und password ist Ihr Oracle Cloud Infrastructure-Auth-Token. Siehe Mit Authentifizierungstoken arbeiten.

    • Oracle Cloud Infrastructure Object Storage Classic: username ist Ihr Oracle Cloud Infrastructure Classic-Name. password ist Ihr Oracle Cloud Infrastructure Classic-Kennwort.

      Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, es sei denn, Ihre Objektspeicherzugangsdaten werden geändert. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für alle Dataloads verwenden.

  3. Verschieben Sie die Dumpdateien aus Autonomous Database in den Cloud-Objektspeicher, indem Sie DBMS_CLOUD.PUT_OBJECT aufrufen.

    Beispiel:
    BEGIN
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp01.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp02.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp03.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp04.dmp');
    END;
    /

    Informationen zu PUT_OBJECT finden Sie unter PUT_OBJECT-Prozedur.

Daten direkt aus Autonomous Database in den Objektspeicher exportieren

Hier erfahren Sie, wie Sie mit Oracle Data Pump Daten direkt aus Autonomous Database in den Cloud-Objektspeicher exportieren.

  1. Stellen Sie eine Verbindung zur autonomen Datenbank her.
  2. Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur DBMS_CREDENTIAL.CREATE_CREDENTIAL. Beispiel:
    BEGIN
      DBMS_CREDENTIAL.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
               username => 'adb_user@oracle.com',
        password => 'password'
        );
    END;
    /
    Die Werte, die Sie für username und password angeben, hängen vom verwendeten Cloud-Objektspeicherservice ab:
    • Oracle Cloud Infrastructure Object Storage: username ist Ihr Oracle Cloud Infrastructure-Benutzername, und password ist Ihr Oracle Cloud Infrastructure-Auth-Token. Siehe Mit Authentifizierungstoken arbeiten.
    • Oracle Cloud Infrastructure Object Storage Classic: username ist Ihr Name für Oracle Cloud Infrastructure Classic. password ist Ihr Oracle Cloud Infrastructure Classic-Kennwort.

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, es sei denn, Ihre Objektspeicherzugangsdaten werden geändert. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen für alle Dataloads verwenden.

  3. Legen Sie als ADMIN-Benutzer die im obigen Schritt definierten Zugangsdaten als Standardzugangsdaten für Ihre autonome Datenbank fest.
    Beispiel:
    ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
  4. Führen Sie den Data Pump-Export aus, wobei der Parameter dumpfile auf die URL für einen vorhandenen Bucket in Ihrem Cloud-Objektspeicher gesetzt ist (mit einem Dateinamen oder einem Dateinamen mit einer Ersetzungsvariable, wie exp%U.dmp).
    • Oracle Data Pump-Version 19.9 oder höher:
      Stellen Sie den Parameter credential auf den Namen der Zugangsdaten ein, die Sie in Schritt 2 erstellt haben. Beispiel:
      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      credential=DEF_CRED_NAME \
      dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      In diesem Beispiel ist dumpfile eine Oracle Cloud Infrastructure-Swift-URI, die alle Dateien angibt, deren Namen mit export<number>.dmp im Bucket mybucket in der Region us-ashburn-1 übereinstimmen. (adbdpreview1 ist der Objektspeicher-Namespace, in dem sich der Bucket befindet.)
    • Oracle Data Pump-Versionen vor 19.9:
      Beginnen Sie den Wert des Parameters dumpfile mit dem Schlüsselwort default_credential und einem Doppelpunkt. Beispiel:
      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      dumpfile=DEF_CRED_NAME:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \ 
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index 
      In diesem Beispiel ist das Schlüsselwort default_credential im Parameter dumpfile erforderlich.
    Hinweise zu Oracle Data Pump-Parametern:
    • Standardmäßig komprimiert der Oracle Data Pump-Export nur Metadaten, bevor sie in das Dumpdateiset geschrieben werden. Sie können den Parameter compression auf ALL setzen, um Metadaten und Daten zu komprimieren, bevor sie in das Dumpdateiset geschrieben werden. Weitere Informationen finden Sie unter KOMPRESSION in Oracle Database 19c Utilities oder Oracle Database 23ai Utilities.

    • Der Parameter dumpfile unterstützt die Platzhalter %L und %l zusätzlich zu den Legacy-Platzhaltern %U und %u. Beispiel: dumpfile=export%L.dmp.

      Verwenden Sie den Platzhalter %L oder %l für Exporte aus Oracle Database Release 12.2 und höher. Dieser Platzhalter erweitert den Namen der Dumpdatei in eine 3-stellige, inkrementierende Ganzzahl mit variabler Breite, die bei 100 beginnt und bei 2147483646 endet.

      Weitere Informationen finden Sie unter Im Befehlszeilenmodus für Data Pump-Export verfügbare Parameter in Oracle-Datenbankutilitys 19c oder Oracle-Datenbankutilitys 23ai.

    • Um die beste Exportperformance zu erreichen, verwenden Sie den Datenbankservice high für Ihre Exportverbindung und setzen den Parameter parallel auf das 0,25-fache der Anzahl der ECPUs oder auf die Anzahl der OCPUs in Ihrer Autonomous Database. Informationen dazu, welcher Datenbankservicename für die Ausführung des Data Pump-Exports verbunden werden soll, finden Sie unter Vordefinierte Datenbankservicenamen für autonome Datenbanken.

    • Informationen zum URL-Format der Dumpdatei für verschiedene Cloud-Objektspeicherservices finden Sie unter URI-Formate für Cloud-Objektspeicher.

    Informationen zu nicht zulässigen Objekten in Autonomous Database finden Sie unter Einschränkungen bei der Verwendung von SQL-Befehlen.

  5. Validieren Sie die Ergebnisse.
    Oracle Data Pump unterteilt jeden Teil der Dumpdatei in kleinere Chunks, um schnellere Uploads zu ermöglichen. In der Oracle Cloud Infrastructure Object Storage-Konsole werden für jeden exportierten Teil der Dumpdatei mehrere Dateien angezeigt. Die Größe der tatsächlichen Dumpdateien wird als null (0) angezeigt und die Größe der zugehörigen Datei-Chunks als 10 MB oder weniger. Beispiel:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa

    Hinweis:

    Wenn Sie die Null-Byte-Dumpdatei aus der Oracle Cloud Infrastructure-Konsole oder mit der Oracle Cloud Infrastructure-CLI herunterladen, erhalten Sie nicht die vollständigen Dumpdateien. Um die vollständigen Dumpdateien aus dem Objektspeicher herunterzuladen, verwenden Sie ein Tool wie cURL, das Swift unterstützt. Geben Sie Ihre Benutzeranmeldung und Ihr Swift-Authentifizierungstoken an. Beispiel:
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/export01.dmp

Dumpdateien herunterladen, Data Pump Import ausführen und Objektspeicher bereinigen

Laden Sie bei Bedarf die Dumpdateien aus dem Cloud-Objektspeicher herunter, und importieren Sie das Dumpdateiset mit Oracle Data Pump Import in die Zieldatenbank. Führen Sie dann eine Bereinigung durch, wenn erforderlich.

  1. Laden Sie die Dumpdateien aus dem Cloud-Objektspeicher herunter.

    Hinweis:

    Dieser Schritt ist nicht erforderlich, wenn Sie die Daten in eine andere Autonomous Database-Instanz importieren.
    Wenn Sie mit Oracle Data Pump direkt in den Objektspeicher exportieren, wie unter Daten direkt aus Autonomous Database in den Objektspeicher exportieren beschrieben, wird für die Größe der Dumpdateien im Objektspeicher 0 angezeigt. Oracle Data Pump unterteilt jeden Teil der Dumpdatei in kleinere Chunks, um schnellere Uploads zu ermöglichen. In der Oracle Cloud Infrastructure Object Storage-Konsole werden für jeden exportierten Teil der Dumpdatei mehrere Dateien angezeigt. Die Größe der tatsächlichen Dumpdateien wird als null (0) angezeigt und die Größe der zugehörigen Datei-Chunks als 10 MB oder weniger. Beispiel:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    Wenn Sie die Null-Byte-Dumpdatei aus der Oracle Cloud Infrastructure-Konsole oder mit der Oracle Cloud Infrastructure-CLI herunterladen, erhalten Sie nicht die vollständigen Dumpdateien. Um die vollständigen Dumpdateien aus dem Objektspeicher herunterzuladen, verwenden Sie ein Tool wie cURL, das Swift unterstützt. Geben Sie Ihre Benutzeranmeldung und Ihr Swift-Authentifizierungstoken an. Beispiel:
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp

    Der cURL-Befehl unterstützt in seiner URL weder Platzhalter noch Ersetzungszeichen. Sie müssen mehrere cURL-Befehle verwenden, um das Dumpdateiset aus dem Objektspeicher herunterzuladen. Alternativ können Sie ein Skript verwenden, das Ersetzungszeichen unterstützt, um alle Dumpdateien aus dem Objektspeicher mit einem einzigen Befehl herunterzuladen. Ein Beispiel finden Sie unter How To: Download all files from an export to object store job in Autonomous Database using cURL.

  2. Führen Sie Data Pump Import aus, um das Dumpdateiset in die Zieldatenbank zu importieren.

    Hinweis:

    Wenn Sie die Daten in eine andere autonome Datenbank importieren, finden Sie weitere Informationen unter Daten mit Oracle Data Pump laden.

    Wenn Dateien mit Oracle Data Pump direkt in den Objektspeicher exportiert werden, wie unter Daten direkt aus Autonomous Database in den Objektspeicher exportieren beschrieben, und Sie dann eine Datei mit den DBMS_CLOUD-Prozeduren importieren, die den format-Parameter type mit dem Wert 'datapump' unterstützen, müssen Sie nur den primären Dateinamen angeben. Die Prozeduren, die den Formattyp 'datapump' unterstützen, ermitteln die Chunks und laden sie automatisch herunter.

  3. Führen Sie Bereinigungsaufgaben nach dem Import aus. Wenn Sie die Dumpdateien in die Zieldatenbank(en) importiert haben, löschen Sie den Bucket mit den Daten, oder entfernen Sie die Dumpdateien aus dem Cloud-Objektspeicher-Bucket. Entfernen Sie außerdem die Dumpdateien aus dem Speicherort, in den Sie die Dumpdateien für die Ausführung von Data Pump Import heruntergeladen haben.

Ausführliche Informationen finden Sie unter Im Befehlszeilenmodus für den Oracle Data Pump-Import verfügbare Parameter in Oracle Database-Utilitys 19c oder Oracle Database 23ai-Utilitys.