Daten mit Oracle Data Pump laden

Oracle Data Pump bietet eine sehr schnelle Bulkverschiebung von Daten und Metadaten zwischen Oracle-Datenbanken und Autonomous Database on Dedicated Exadata Infrastructure.

Mit Data Pump Import können Sie Daten aus Data Pump-Dateien in Oracle Cloud Infrastructure Object Storage und Oracle Cloud Infrastructure Object Storage Classic importieren. Sie können Daten im Cloud-Objektspeicher speichern und mit Oracle Data Pump Daten in Autonomous Database laden.

Hinweis:

Als Alternative zum Lesen der folgenden Themen können Sie die Schritte unter Lab 9: Migrate with Data Pump in Oracle Autonomous Database Dedicated for Fleet Administrators Workshop ausführen, um den Vorgang zu testen.

Daten aus vorhandener Oracle-Datenbank exportieren

Zunächst exportieren Sie per Oracle Data Pump-Export die vorhandenen Oracle-Datenbankschemas. Anschließend migrieren Sie sie mit Oracle Data Pump Import in Autonomous Database.

Oracle empfiehlt die Verwendung der folgenden Data Pump-Exportparameter für eine schnellere und einfachere Migration in Autonomous Database:

exclude=cluster, db_link
parallel=n
schemas=schema name
dumpfile=export%l.dmp

Der Oracle Data Pump-Export bietet mehrere Exportmodi. Oracle empfiehlt, den Schemamodus für die Migration zu Autonomous Database zu verwenden. Mit dem Parameter schemas können Sie die zu exportierenden Schemas auflisten.

Exportieren Sie die Schemas für eine schnellere Migration in mehrere Data Pump-Dateien, und verwenden Sie die Parallelität. Sie können das Namensformat der zu verwendenden Dumpdatei mit dem Parameter dumpfile angeben. Setzen Sie den Parameter parallel auf mindestens die Anzahl der CPUs, die Sie in Autonomous Database haben.

Die Parameter ausschließen und data_options stellen sicher, dass die in Autonomous Database nicht verfügbaren Objekttypen nicht exportiert und Tabellenpartitionen gruppiert werden, sodass sie schneller in Autonomous Database importiert werden können.

Hinweis:

Oracle empfiehlt, die aktuellen Statistiken zu erfassen, bevor Sie den Befehl expdp ausführen. Das Package dbms_stats stellt mehrere Prozeduren zur Erfassung der neuesten Statistiken bereit. Statistiken werden automatisch der Exportdumpdatei hinzugefügt. Sie helfen dabei, die Größe von Objekten zu bestimmen und die Parallelität während des Imports zu optimieren. Weitere Informationen finden Sie unter DBMS_STATS Betriebshinweise in Oracle Database 19c PL/SQL Packages and Types Reference und Oracle Database 23ai PL/SQL Packages and Types Reference.

Im folgenden Beispiel wird das SH-Schema aus einer Oracle-Quelldatenbank zur Migration zu einer autonomen Datenbank mit 16 CPUs exportiert:

expdp sh/sh@orcl \
exclude=cluster, db_link \
parallel=16 \
schemas=sh \
dumpfile=export%l.dmp \
encryption_pwd_prompt=yes
Hinweise zu Data Pump-Parametern:
  • Wenn Sie während des Exports mit expdp den Parameter encryption_pwd_prompt=yes verwenden, verwenden Sie encryption_pwd_prompt=yes auch mit dem Import, und geben Sie dasselbe Kennwort beim impdp-Prompt ein, 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.

    Verwenden Sie den Legacy-Platzhalter %U oder %u für Exporte aus Oracle Database vor Release 12.2. Wenn Sie diese Option verwenden und mehr als 99 Dumpdateien erforderlich sind, müssen Sie mehrere Dumpdateinamen mit jeweils dem Parameter %U oder %u angeben.

Je nach Ihren Anforderungen können Sie andere Data Pump-Exportparameter wie compression verwenden. Weitere Informationen finden Sie unter Oracle Data Pump Export in Oracle Database 19c-Utilitys oder Oracle Database 23ai-Utilitys.

Exportdateien in Cloud-Objektspeicher hochladen

Bevor Sie die aus der Oracle-Quelldatenbank exportierten Daten importieren können, müssen Sie die Exportdateien in den Cloud-Objektspeicher hochladen.

Sie können die Exportdateien in einen vorhandenen Speicher-Bucket in Oracle Cloud Infrastructure Object Storage oder einen vorhandenen Speichercontainer in Oracle Cloud Infrastructure Object Storage Classic hochladen. Alternativ können Sie wie folgt einen neuen Speicher-Bucket erstellen und die Exportdateien in diesen hochladen.

  1. Melden Sie sich unter cloud.oracle.com bei Ihrem Oracle Cloud-Account an.

  2. Wählen Sie in der linken Navigationsliste von Oracle Cloud Infrastructure "Object Storage" aus, und wählen Sie in der Unterliste "Object Storage" aus.

  3. Wählen Sie ein Compartment aus, in dem der Speicher-Bucket erstellt werden soll.

  4. Klicken Sie auf Bucket erstellen.

  5. Geben Sie dem Bucket im Dialogfeld "Create Bucket" einen Namen, und klicken Sie auf Create Bucket.

  6. Nachdem der Bucket erstellt wurde, klicken Sie in der Liste der Buckets auf seinen Namen, um die Seite "Bucket-Details" anzuzeigen.

  7. Klicken Sie im Feld "Objekte" auf Objekte hochladen.

  8. Klicken Sie im Dialogfeld "Objekte hochladen" im Feld "Dateien auf dem Rechner auswählen" auf den Link Dateien auswählen.

  9. Navigieren Sie im Dateibrowser zu den Exportdateien, und wählen Sie sie aus. Klicken Sie dann auf Öffnen.

  10. Klicken Sie im Dialogfeld "Objekte hochladen" auf Objekte hochladen, um mit dem Upload der ausgewählten Dateien zu beginnen.

  11. Schließen Sie nach Abschluss der Uploads das Dialogfeld "Objekte hochladen".

Daten mit Oracle Data Pump importieren

Oracle empfiehlt, die neueste Oracle Data Pump-Version für den Import von Daten aus Data Pump-Dateien in Autonomous Database zu verwenden, da diese Verbesserungen und Fixes für eine bessere Erfahrung enthält.

Laden Sie die neueste Version des Oracle Instant Client Basic Package und des Toolpackage (inklusive Oracle Data Pump) für Ihre Plattform unter Oracle Instant Client-Downloads herunter. Die Installationsschritte, die nach dem Herunterladen von Oracle Instant Client erforderlich sind, finden Sie in den Installationsanweisungen auf der Downloadseite für die Plattforminstallation.

In Oracle Data Pump Version 18.3 und höher authentifiziert das Argument credential Data Pump beim Cloud Object Storage-Service, den Sie für Ihre Quelldateien verwenden. Das Argument dumpfile ist eine durch Komma getrennte Liste von URLs für die Data Pump-Dateien.

Die Data Pump Import-Versionen 12.2.0.1 und früher enthalten nicht den Parameter credential. Wenn Sie eine ältere Version von Data Pump Import verwenden, müssen Sie eine Standardzugangsdateneigenschaft für Autonomous Database definieren und das Schlüsselwort default_credential im Parameter dumpfile verwenden.

Wenn die Quelldateien in Oracle Cloud Infrastructure Object Storage, gespeichert sind, können Sie in Oracle Data Pump native Oracle Cloud Infrastructure-URIs oder die Swift-URIs verwenden. Details zu diesen URI-Formaten finden Sie unter URI-Formate für Cloud-Objektspeicher.

  1. Speichern Sie die Zugangsdaten für den Cloud-Objektspeicher mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL.

    Der Data Pump-Import unterstützt auf Oracle Cloud Infrastructure-Authentifizierungstoken basierende Zugangsdaten und auf Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten.

    Beispiel 1: So erstellen Sie Zugangsdaten für das Oracle Cloud Infrastructure-Authentifizierungstoken:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'DEF_CRED_NAME',
      username => 'adb_user@oracle.com',
      password => 'password'
      );
    END;
    /
    Beispiel 2: So erstellen Sie auf dem Oracle Cloud Infrastructure-Signaturschlüssel basierende Zugangsdaten:
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'DEF_CRED_NAME',
        user_ocid       => ‘ocid1.user.oc1..unique_ID’,
        tenancy_ocid    => ‘ocid1.tenancy.oc1..unique_ID’,
        private_key     => ‘MIIEogIBAAKCAQEAtUnxbmre.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
        fingerprint     => ‘fingerprint value’
      );
    END;
    /

    Weitere Informationen zu den Zugangsdatentypen für Oracle Cloud Infrastructure Cloud Object Storage finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Wenn Sie Oracle Data Pump Version 12.2.0.1 oder früher verwenden, müssen Sie die Zugangsdaten als Standardzugangsdaten für Autonomous Database als ADMIN-Benutzer festlegen. Beispiel:
    alter database property set default_credential = 'ADMIN.DEF_CRED_NAME'
  3. Führen Sie Data Pump Import aus, und setzen Sie den Parameter dumpfile auf die Liste der Datei-URLs in Ihrem Cloud-Objektspeicher.
    • Oracle Data Pump Version 18.3 oder höher: Setzen Sie den Parameter credential auf den Namen der Zugangsdaten, die Sie in Schritt 1 erstellt haben. Beispiel:

      impdp admin/password@ATPC1_high \
        credential=def_cred_name \
        dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/export%l.dmp \ 
        parallel=16 \
        transform=segment_attributes:n \
        exclude=cluster, db_link

      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-phoenix-1 übereinstimmen. (idthydc0kinr ist der Objektspeicher-Namespace, in dem sich der Bucket befindet.)

    • Oracle Data Pump Version 12.2.0.1 oder früher: Beginnen Sie den Wert des Parameters dumpfile mit dem Schlüsselwort default_credential und einem Doppelpunkt. Beispiel:

      impdp admin/password@ATPC1_high \
        dumpfile=default_credential:https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/export%l.dmp \
        parallel=16 \      
        transform=segment_attributes:n \      
        exclude=cluster, db_link
    Hinweise zum Data Pump-Import
    • Wenn Sie während des Exports mit expdp den Parameter encryption_pwd_prompt=yes verwendet haben, verwenden Sie encryption_pwd_prompt=yes, und geben Sie am impdp-Prompt dasselbe Kennwort ein, das Sie beim Export angegeben haben.

    • 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.

      Verwenden Sie den Legacy-Platzhalter %U oder %u für Exporte aus Oracle Database vor Release 12.2. Wenn Sie diese Option verwenden und mehr als 99 Dumpdateien erforderlich sind, müssen Sie mehrere Dumpdateinamen mit jeweils dem Parameter %U oder %u angeben.

    • Um die beste Importperformance zu erzielen, verwenden Sie den Datenbankservice high für die Importverbindung, und setzen Sie den Parameter parallel auf die Anzahl der CPUs Ihrer Datenbank.

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

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

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

    Ausführliche Informationen zu den Importparametern finden Sie unter Oracle Data Pump Import in Oracle Database 19c Utilities oder Oracle Database 23ai Utilities.

Auf Logdateien für Data Pump-Import zugreifen

Die Logdateien für Data Pump-Importvorgänge werden in dem Verzeichnis gespeichert, das Sie mit dem Data Pump-Parameter impdp verzeichnis angeben.

Um auf die Logdatei zuzugreifen, müssen Sie die Logdatei mit der Prozedur DBMS_CLOUD.PUT_OBJECT in den Cloud-Objektspeicher verschieben. Beispiel: Der folgende PL/SQL-Block verschiebt die Datei import.log in den Cloud-Objektspeicher:

BEGIN
  DBMS_CLOUD.PUT_OBJECT(
    credential_name => 'DEF_CRED_NAME',
    object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/import.log',
    directory_name  => 'DATA_PUMP_DIR',
    file_name => 'import.log');
END;
/

In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

Weitere Informationen finden Sie unter DBMS_CLOUD für Objekte und Dateien.