

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Importieren mit Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump"></a>

Oracle Data Pump ist ein Dienstprogramm, mit dem Sie Oracle-Daten in eine Dump-Datei exportieren und in eine andere Oracle-Datenbank importieren können. Es ist ein langfristiger Ersatz für die Export/Import Oracle-Dienstprogramme. Oracle Data Pump ist die empfohlene Methode zum Verschieben großer Datenmengen von einer Oracle-Datenbank in eine Amazon-RDS-DB-Instance.

Die Beispiele in diesem Abschnitt zeigen eine Möglichkeit, Daten in eine Oracle-Datenbank zu importieren. Oracle Data Pump unterstützt jedoch weitere Methoden. Weitere Informationen finden Sie in der [Oracle Database-Dokumentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump.html#GUID-501A9908-BCC5-434C-8853-9A6096766B5A).

Für die Beispiele in diesem Abschnitt wird das `DBMS_DATAPUMP`-Paket verwendet. Dieselben Aufgaben können mithilfe der Befehlszeilendienstprogramme `impdp` und `expdp` von Oracle Data Pump ausgeführt werden. Sie können diese Dienstprogramme, einschließlich Oracle Instant Client, auf einem Remote-Host als Teil einer Oracle Client-Installation installieren. Weitere Informationen finden Sie unter [So wird Oracle Instant Client verwendet, um den Import oder Export von Data Pump für Amazon RDS für Oracle-DB-Instances auszuführen](https://aws.amazon.com/premiumsupport/knowledge-center/rds-oracle-instant-client-datapump/)

**Topics**
+ [Übersicht über Oracle Data Pump](#Oracle.Procedural.Importing.DataPump.Overview)
+ [Importieren von Daten mit Oracle Data Pump und einem Amazon S3-Bucket](#Oracle.Procedural.Importing.DataPump.S3)
+ [Importieren von Daten mit Oracle Data Pump und einer Datenbankverbindung](#Oracle.Procedural.Importing.DataPump.DBLink)

## Übersicht über Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview"></a>

Oracle Data Pump besteht aus den folgenden Komponenten:
+ Befehlszeilenclients `expdp` und `impdp`
+ Das `DBMS_DATAPUMP` PL/SQL -Paket
+ Das `DBMS_METADATA` PL/SQL -Paket

Sie können Oracle Data Pump für die folgenden Szenarien verwenden:
+ Importieren von Daten aus einer Oracle Datenbank, entweder On-Premises oder mit einer Amazon-EC2-Instance, zu einer Oracle-DB-Instance.
+ Importieren von Daten aus einer DB-Instance von RDS für Oracle in eine Oracle-Datenbank, entweder On-Premises oder mit einer Amazon-EC2-Instance.
+ Importieren von Daten zwischen DB-Instances von RDS für Oracle, beispielsweise zum Migrieren von Daten von EC2-Classic nach VPC.

Sie können Oracle Data Pump-Dienstprogramme unter [Oracle Database Software Downloads](http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html) auf der Oracle Technology Network-Website herunterladen. Überlegungen zur Kompatibilität bei der Migration zwischen Versionen der Oracle-Datenbank finden Sie in der [Oracle-Database-Dokumentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-BAA3B679-A758-4D55-9820-432D9EB83C68).

### Oracle Data-Pump-Workflow
<a name="Oracle.Procedural.Importing.DataPump.Overview.how-it-works"></a>

In der Regel verwenden Sie Oracle Data Pump in den folgenden Phasen:

1. Exportieren Sie Ihre Daten in eine Dump-Datei in der Quelldatenbank.

1. Laden Sie Ihre Dump-Datei in Ihre Ziel-DB-Instance hoch. Sie können die Übertragung mithilfe eines Amazon-S3-Buckets oder über eine Datenbankverbindung zwischen zwei Datenbanken vornehmen.

1. Importieren Sie die Daten aus Ihrer Dump-Datei in Ihre Instance von RDS für Oracle DB.

### Bewährte Methoden für Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview.best-practices"></a>

Wenn Sie Oracle Data Pump zum Importieren von Daten in eine Oracle-Instance verwenden, empfehlen wir die folgenden bewährten Methoden:
+ Führen Sie Importe im Modus `schema` oder `table` durch, damit bestimmte Schemata und Objekte importiert werden.
+ Beschränken Sie die Schemata, die Sie importieren, auf solche, die von Ihrer Anwendung benötigt werden.
+ Importieren Sie nicht im `full`-Modus oder keine Importschemas für vom System verwaltete Komponenten.

  Weil RDS für Oracle keinen Zugriff auf `SYS` oder `SYSDBA` für administrative Benutzer gewährt, können diese Aktionen das Oracle-Datenwörterbuch beschädigen und die Stabilität Ihrer Datenbank gefährden.
+ Beim Laden großer Datenmengen gehen Sie folgendermaßen vor:

  1. Übertragen Sie die Dump-Datei an die Ziel-DB-Instance von RDS für Oracle.

  1. Erstellen Sie einen DB-Snapshot Ihrer Instance.

  1. Testen Sie den Importvorgang, um zu prüfen, ob er erfolgreich ist.

  Wenn Datenbankkomponenten unwirksam sind, können Sie die DB-Instance löschen und sie über den DB-Snapshot neu erstellen. Die wiederhergestellte DB-Instance enthält alle Dumpdateien, die auf der DB-Instance bereitgestellt wurden, als Sie den DB-Snapshot erstellt haben.
+ Importieren Sie keine Dump-Dateien, die mit den Exportparametern von Oracle Data Pump `TRANSPORT_TABLESPACES`,`TRANSPORTABLE`, oder `TRANSPORT_FULL_CHECK` erstellt wurden. DB-Instances von RDS für Oracle unterstützen das Importieren dieser Dump-Dateien nicht.
+ Importieren Sie keine Speicherabbilddateien, die Oracle Scheduler-Objekte in `SYS`, `SYSTEM`, `RDSADMIN`, `RDSSEC` und `RDS_DATAGUARD`enthalten und zu den folgenden Kategorien gehören:
  + Jobs
  + Programme
  + Zeitpläne
  + Ketten
  + Regeln
  + Auswertungskontexte
  + Regelsätze

  RDS für Oracle -DB-Instances unterstützen das Importieren dieser Dump-Dateien nicht. 
+ Um nicht unterstützte Oracle-Scheduler-Objekte auszuschließen, verwenden Sie zusätzliche Anweisungen während des Data Pump-Exports. Wenn Sie `DBMS_DATAPUMP` verwenden, fügen Sie einen zusätzlichen `METADATA_FILTER` vor dem `DBMS_METADATA.START_JOB` hinzu:

  ```
  DBMS_DATAPUMP.METADATA_FILTER(
    v_hdnl,
    'EXCLUDE_NAME_EXPR',
    q'[IN (SELECT NAME FROM SYS.OBJ$ 
           WHERE TYPE# IN (66,67,74,79,59,62,46) 
           AND OWNER# IN
             (SELECT USER# FROM SYS.USER$ 
              WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
              )
          )
    ]',
    'PROCOBJ'
  );
  ```

  Wenn Sie `expdp` verwenden, erstellen Sie eine Parameterdatei, die die im folgenden Beispiel dargestellte `exclude`-Anweisung enthält. Dann benutze es `PARFILE=parameter_file` mit deinem `expdp` Kommando.

  ```
  exclude=procobj:"IN 
    (SELECT NAME FROM sys.OBJ$
     WHERE TYPE# IN (66,67,74,79,59,62,46) 
     AND OWNER# IN 
       (SELECT USER# FROM SYS.USER$ 
        WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
       )
    )"
  ```

## Importieren von Daten mit Oracle Data Pump und einem Amazon S3-Bucket
<a name="Oracle.Procedural.Importing.DataPump.S3"></a>

Der folgende Importvorgang verwendet Oracle Data Pump und einen Amazon S3-Bucket. Die Schritte sind wie folgt:

1. Exportieren Sie Daten aus der Quelldatenbank mit dem Oracle [DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DATAPUMP.html)-Paket.

1. Platzieren Sie die Dump-Datei in einem Amazon-S3-Bucket.

1. Laden Sie die Dump-Datei aus dem Amazon-S3-Bucket in das Verzeichnis `DATA_PUMP_DIR` auf der Ziel-DB-Instance von RDS für Oracle herunter. 

1. Importieren Sie die Daten aus der kopierten Dump-Datei in die DB-Instance von RDS für Oracle mithilfe des `DBMS_DATAPUMP`-Pakets.

**Topics**
+ [Anforderungen zum Importieren von Daten mit Oracle Data Pump und einem Amazon-S3-Bucket](#Oracle.Procedural.Importing.DataPumpS3.requirements)
+ [Schritt 1: Erteilen von Berechtigungen für den Datenbankbenutzer auf der Ziel-DB-Instance von RDS für Oracle](#Oracle.Procedural.Importing.DataPumpS3.Step1)
+ [Schritt 2: Exportieren von Daten in eine Dump-Datei mit DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpS3.Step2)
+ [Schritt 3: Hochladen der Dumpdatei in Ihren Amazon S3-Bucket](#Oracle.Procedural.Importing.DataPumpS3.Step3)
+ [Schritt 4: Herunterladen der Dump-Datei aus Ihrem Amazon-S3-Bucket in Ihre DB-Instance.](#Oracle.Procedural.Importing.DataPumpS3.Step4)
+ [Schritt 5: Importieren Sie Ihre Dump-Datei mit DBMS\$1DATAPUMP in Ihre Ziel-DB-Instance](#Oracle.Procedural.Importing.DataPumpS3.Step5)
+ [Schritt 6: Bereinigen](#Oracle.Procedural.Importing.DataPumpS3.Step6)

### Anforderungen zum Importieren von Daten mit Oracle Data Pump und einem Amazon-S3-Bucket
<a name="Oracle.Procedural.Importing.DataPumpS3.requirements"></a>

Der Vorgang hat folgende Anforderungen:
+ Stellen Sie sicher, dass ein Amazon S3 S3-Bucket für Dateiübertragungen verfügbar ist und dass sich der Amazon S3 S3-Bucket in derselben Datenbank AWS-Region wie die DB-Instance befindet. Weitere Anleitungen finden Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) im *Amazon Simple Storage Service Handbuch "Erste Schritte"*.
+ Die Größe des Objekts, das Sie zum Amazon S3-Bucket hochladen, darf höchstens 5 TB betragen. Weitere Informationen zur Arbeit mit Objekten in Amazon S3 finden Sie im [Amazon Simple Storage Service User Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html).
**Anmerkung**  
Wenn die Größe der Speicherabbilddatei 5 TB überschreitet, können Sie den Oracle Data Pump-Export mit Paralleloption ausführen. Diese Operation verteilt die Daten auf mehrere Speicherabbilddateien, sodass die Grenze von 5 TB für einzelne Dateien nicht überschritten wird.
+ Sie müssen den Amazon S3-Bucket auf die Amazon-RDS-Integration vorbereiten, indem Sie die Anleitungen unter befolge [Konfigurieren von IAM-Berechtigungen für die Integration von RDS für Oracle in Amazon S3](oracle-s3-integration.preparing.md).
+ Sie müssen sicherstellen, dass Sie über ausreichend Speicherplatz verfügen, um die Dump-Datei in der Quell-Instance und der Ziel-DB-Instance zu speichern.

**Anmerkung**  
Dieser Vorgang importiert Dump-Dateien in das Verzeichnis `DATA_PUMP_DIR`, ein vorkonfiguriertes Verzeichnis auf allen Oracle-DB-Instances. Das Verzeichnis befindet sich im selben Speicher-Volume wie Ihre Datendateien. When Sie die Dump-Datei importieren, belegen die vorhandenen Oracle-Datendateien mehr Speicherplatz. Sie sollten daher sicherstellen, dass Ihre DB-Instance diesen zusätzlichen Platzbedarf erfüllen kann. Die importierte Dump-Datei wird nicht automatisch aus dem Verzeichnis `DATA_PUMP_DIR` gelöscht oder bereinigt. Zum Entfernen importierter Dump-Dateien verwenden Sie [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), das auf der Oracle-Website zu finden ist. 

### Schritt 1: Erteilen von Berechtigungen für den Datenbankbenutzer auf der Ziel-DB-Instance von RDS für Oracle
<a name="Oracle.Procedural.Importing.DataPumpS3.Step1"></a>

In diesem Schritt erstellen Sie Schemas, in die Sie Daten importieren möchten, und erteilen den Benutzern die erforderlichen Berechtigungen.

**So erstellen Sie Benutzer und erteilen die erforderlichen Berechtigungen für die Ziel-Instance von RDS für Oracle**

1. Verwenden Sie SQL\$1Plus oder Oracle SQL Developer, um sich als Hauptbenutzer bei der DB-Instance von RDS für Oracle anzumelden, in die die Daten importiert werden sollen. Weitere Information über das Verbinden mit der DB-Instance finden Sie unter [Herstellen der Verbindung zu Ihrer Oracle-DB-Instance](USER_ConnectToOracleInstance.md).

1. Erstellen Sie die erforderlichen Tabellenräume, bevor Sie Daten importieren. Weitere Informationen finden Sie unter [Tablespaces in RDS für Oracle erstellen und deren Größe anpassen](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles).

1. Wenn das Benutzerkonto, in das die Daten importiert werden sollen, nicht vorhanden ist, erstellen Sie das Benutzerkonto und erteilen Sie die erforderlichen Berechtigungen und Rollen. Wenn Sie Daten in mehrere Benutzerkonten importieren möchten, erstellen Sie alle Benutzerkonten und Rollen und erteilen Sie die erforderlichen Berechtigungen.

   Die folgenden SQL-Anweisungen erstellen beispielsweise einen neuen Benutzer und gewähren die erforderlichen Berechtigungen und Rollen, um die Daten in das Schema zu importieren, das diesem Benutzer gehört. Ersetzen Sie `schema_1` durch den Namen Ihres Schemas in diesem Schritt und in den folgenden Schritten.

   ```
   CREATE USER schema_1 IDENTIFIED BY my_password;
   GRANT CREATE SESSION, RESOURCE TO schema_1;
   ALTER USER schema_1 QUOTA 100M ON users;
   ```
**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

   Die vorangegangenen Anweisungen gewähren dem neuen Benutzer die `CREATE SESSION`-Berechtigung und die `RESOURCE`-Rolle. Je nach den Datenbankobjekten, die Sie importieren, benötigen Sie möglicherweise zusätzliche Berechtigungen und Rollen.

### Schritt 2: Exportieren von Daten in eine Dump-Datei mit DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpS3.Step2"></a>

Um eine Dump-Datei zu erstellen, verwenden Sie das `DBMS_DATAPUMP`-Paket.

**Exportieren von Oracle-Daten in eine Dump-Datei**

1. Verwenden Sie SQL Plus oder Oracle SQL Developer mit einem Benutzer mit Administratorrechten, um sich mit der DB-Instance von RDS für Oracle zu verbinden. Wenn die Quelldatenbank eine DB-Instance von RDS für Oracle ist, stellen Sie eine Verbindung mit dem Amazon-RDS-Hauptbenutzer her.

1. Exportieren Sie die Daten durch einen Aufruf der `DBMS_DATAPUMP`-Verfahren.

   Das folgende Skript exportiert das `SCHEMA_1`-Schema in eine Dump-Datei mit dem Namen `sample.dmp` im `DATA_PUMP_DIR`-Verzeichnis. Ersetzen Sie `SCHEMA_1` durch den Namen des Schemas, das Sie exportieren möchten.

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN(
       operation => 'EXPORT', 
       job_mode  => 'SCHEMA', 
       job_name  => null
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl         , 
       filename  => 'sample.dmp'   , 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_dump_file
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_exp.log', 
       directory => 'DATA_PUMP_DIR' , 
       filetype  => dbms_datapump.ku$_file_type_log_file
     );
     DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl,
       'EXCLUDE_NAME_EXPR',
       q'[IN (SELECT NAME FROM SYS.OBJ$ 
              WHERE TYPE# IN (66,67,74,79,59,62,46) 
              AND OWNER# IN 
                (SELECT USER# FROM SYS.USER$ 
                 WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
                )
             )
       ]',
       'PROCOBJ'
     );
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**Anmerkung**  
Data Pump startet Jobs asynchron. Weitere Informationen über die Überwachung einer Data Pump-Aufgabe finden Sie unter [Überwachung des Aufgabenstatus](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) in der Oracle-Dokumentation. 

1. (Optional) Sie können den Inhalt des Exportprotokolls mithilfe des `rdsadmin.rds_file_util.read_text_file`-Verfahrens anzeigen. Weitere Informationen finden Sie unter [Lesen von Dateien in einem DB-Instance-Verzeichnis](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

### Schritt 3: Hochladen der Dumpdatei in Ihren Amazon S3-Bucket
<a name="Oracle.Procedural.Importing.DataPumpS3.Step3"></a>

Verwenden Sie die Amazon-RDS-Prozedur `rdsadmin.rdsadmin_s3_tasks.upload_to_s3`, um die Dump-Datei in den Amazon S3-Bucket zu kopieren. Das folgende Beispiel lädt alle Dateien aus dem Verzeichnis `DATA_PUMP_DIR` in einen Amazon S3-Bucket namens `amzn-s3-demo-bucket` hoch.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
  p_bucket_name    =>  'amzn-s3-demo-bucket',       
  p_directory_name =>  'DATA_PUMP_DIR') 
AS TASK_ID FROM DUAL;
```

Die Anweisung `SELECT` gibt die ID der Aufgabe in einem `VARCHAR2`-Datentyp zurück. Weitere Informationen finden Sie unter [Hochladen von Dateien aus Ihrer DB-Instance von RDS für Oracle in einen Amazon-S3-Bucket](oracle-s3-integration.using.md#oracle-s3-integration.using.upload).

### Schritt 4: Herunterladen der Dump-Datei aus Ihrem Amazon-S3-Bucket in Ihre DB-Instance.
<a name="Oracle.Procedural.Importing.DataPumpS3.Step4"></a>

Führen Sie diesen Schritt mit dem Amazon-RDS-Verfahren `rdsadmin.rdsadmin_s3_tasks.download_from_s3` aus. Wenn Sie eine Datei in ein Verzeichnis herunterladen, wird der Download durch `download_from_s3` übersprungen, falls bereits eine gleichnamige Datei in dem Verzeichnis vorhanden ist. Zum Entfernen einer Datei aus dem Download-Verzeichnis verwenden Sie [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), das auf der Oracle-Website zu finden ist.

**So laden Sie die Dump-Datei herunter**

1. Starten Sie SQL\$1Plus oder Oracle SQL Developer und melden Sie sich als Hauptbenutzer für Ihre Ziel-Oracle-DB-Instance von Amazon RDS an.

1. Laden Sie die Dump-Datei mit dem Amazon-RDS-Verfahren `rdsadmin.rdsadmin_s3_tasks.download_from_s3` herunter.

   Das folgende Beispiel lädt alle Dateien von einem Amazon-S3-Bucket mit dem Namen `amzn-s3-demo-bucket` in das Verzeichnis `DATA_PUMP_DIR` herunter.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
     p_bucket_name    =>  'amzn-s3-demo-bucket',
     p_directory_name =>  'DATA_PUMP_DIR')
   AS TASK_ID FROM DUAL;
   ```

   Die Anweisung `SELECT` gibt die ID der Aufgabe in einem `VARCHAR2`-Datentyp zurück. Weitere Informationen finden Sie unter [Hochladen von Dateien aus einem Amazon S3-Bucket zu einer Oracle-DB-Instance](oracle-s3-integration.using.md#oracle-s3-integration.using.download).

### Schritt 5: Importieren Sie Ihre Dump-Datei mit DBMS\$1DATAPUMP in Ihre Ziel-DB-Instance
<a name="Oracle.Procedural.Importing.DataPumpS3.Step5"></a>

Verwenden Sie `DBMS_DATAPUMP`, um das Schema in Ihre DB-Instance von RDS für Oracle zu importieren. Zusätzliche Optionen wie `METADATA_REMAP` könnten erforderlich sein.

**So importieren Sie Daten in Ihre Ziel-DB-Instance**

1. Starten Sie SQL\$1Plus oder SQL Developer und melden Sie sich als Hauptbenutzer bei Ihrer DB-Instance von RDS für Oracle an.

1. Importieren Sie die Daten durch Aufrufen der `DBMS_DATAPUMP`-Prozeduren.

   Das folgende Beispiel importiert die *SCHEMA\$11* Daten aus `sample_copied.dmp` Ihrer Ziel-DB-Instance.

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN( 
       operation => 'IMPORT', 
       job_mode  => 'SCHEMA', 
       job_name  => null);
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_copied.dmp', 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_dump_file);
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_imp.log', 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_log_file);
     DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**Anmerkung**  
Data Pump-Aufträge werden asynchron gestartet. Weitere Informationen über die Überwachung einer Data Pump-Aufgabe finden Sie unter [Überwachung des Aufgabenstatus](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) in der Oracle-Dokumentation. Sie können den Inhalt des Importprotokolls mithilfe des Verfahrens `rdsadmin.rds_file_util.read_text_file` anzeigen. Weitere Informationen finden Sie unter [Lesen von Dateien in einem DB-Instance-Verzeichnis](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

1. Überprüfen Sie den Datenimport, indem Sie die Schematabellen Ihrer Ziel-DB-Instance auflisten.

   Beispiel: Die folgende Abfrage gibt die Anzahl der Tabellen für zurüc `SCHEMA_1`. 

   ```
   SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='SCHEMA_1';
   ```

### Schritt 6: Bereinigen
<a name="Oracle.Procedural.Importing.DataPumpS3.Step6"></a>

Nachdem die Daten importiert wurden, können Sie die Dateien, die Sie nicht länger benötigen, löschen.

**So entfernen Sie nicht benötigte Dateien**

1. Starten Sie SQL\$1Plus oder SQL Developer und melden Sie sich als Hauptbenutzer bei Ihrer DB-Instance von RDS für Oracle an.

1. Listen Sie die Dateien in `DATA_PUMP_DIR` mit dem folgenden Befehl auf.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
   ```

1. Um Dateien in `DATA_PUMP_DIR` zu löschen, die nicht länger benötigt werden, verwenden Sie den folgenden Befehl.

   ```
   EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','filename');
   ```

   So wird mit dem folgenden Befehl beispielsweise die Datei gelösch `sample_copied.dmp`.

   ```
   EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample_copied.dmp'); 
   ```

## Importieren von Daten mit Oracle Data Pump und einer Datenbankverbindung
<a name="Oracle.Procedural.Importing.DataPump.DBLink"></a>

Der folgende Importvorgang verwendet Oracle Data Pump und das Oracle-Paket [DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_FILE_TRANSFER.html). Die Schritte sind wie folgt:

1. Stellen Sie eine Verbindung zu einer Oracle-Quelldatenbank her, die eine On-Premises-Datenbank, eine Amazon-EC2-Instance oder eine Instance von RDS für Oracle DB sein kann. 

1. Exportieren Sie Daten mit dem [DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DATAPUMP.html)-Paket.

1. Kopieren Sie damit die Dump-Datei mit `DBMS_FILE_TRANSFER.PUT_FILE` aus der Oracle-Datenbank in das `DATA_PUMP_DIR`-Verzeichnis auf der Ziel-DB-Instance von RDS für Oracle, die über einen Datenbank-Link verbunden ist. 

1. Importieren Sie die Daten aus der kopierten Dump-Datei mithilfe des ` DBMS_DATAPUMP`-Pakets in die RDS für Oracle DB-Instance.

Der Importvorgang mittels Oracle Data Pump und des `DBMS_FILE_TRANSFER`-Pakets besteht aus den folgenden Schritten.

**Topics**
+ [Anforderungen zm Importieren von Daten mit Oracle Data Pump und einer Datenbankverbindung](#Oracle.Procedural.Importing.DataPumpDBLink.requirements)
+ [Schritt 1: Erteilen von Berechtigungen für den Benutzer auf der Ziel-DB-Instance von RDS für Oracle](#Oracle.Procedural.Importing.DataPumpDBLink.Step1)
+ [Schritt 2: Erteilen von Berechtigungen für Benutzer in der Quell-Datenbank](#Oracle.Procedural.Importing.DataPumpDBLink.Step2)
+ [Schritt 3: Erstellen Sie eine Dump-Datei mithilfe von DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpDBLink.Step3)
+ [Schritt 4: Einen Datenbank-Link zur Ziel-DB-Instance erstellen](#Oracle.Procedural.Importing.DataPumpDBLink.Step4)
+ [Schritt 5: Kopieren der exportierten Dump-Datei mit DBMS\$1FILE\$1TRANSFER auf die Ziel-DB-Instance](#Oracle.Procedural.Importing.DataPumpDBLink.Step5)
+ [Schritt 6: Importieren der Datendatei in die Ziel-DB-Instance mit DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpDBLink.Step6)
+ [Schritt 7: Bereinigen](#Oracle.Procedural.Importing.DataPumpDBLink.Step7)

### Anforderungen zm Importieren von Daten mit Oracle Data Pump und einer Datenbankverbindung
<a name="Oracle.Procedural.Importing.DataPumpDBLink.requirements"></a>

Der Vorgang hat folgende Anforderungen:
+ Sie müssen über Ausführungsberechtigungen für die Pakete `DBMS_FILE_TRANSFER` und `DBMS_DATAPUMP` verfügen.
+ Sie müssen über Schreibrechte für das Verzeichnis `DATA_PUMP_DIR` auf der Quell-DB-Instance verfügen.
+ Sie müssen sicherstellen, dass Sie über ausreichend Speicherplatz verfügen, um die Dump-Datei in der Quell-Instance und der Ziel-DB-Instance zu speichern.

**Anmerkung**  
Dieser Vorgang importiert Dump-Dateien in das Verzeichnis `DATA_PUMP_DIR`, ein vorkonfiguriertes Verzeichnis auf allen Oracle-DB-Instances. Das Verzeichnis befindet sich im selben Speicher-Volume wie Ihre Datendateien. When Sie die Dump-Datei importieren, belegen die vorhandenen Oracle-Datendateien mehr Speicherplatz. Sie sollten daher sicherstellen, dass Ihre DB-Instance diesen zusätzlichen Platzbedarf erfüllen kann. Die importierte Dump-Datei wird nicht automatisch aus dem Verzeichnis `DATA_PUMP_DIR` gelöscht oder bereinigt. Zum Entfernen importierter Dump-Dateien verwenden Sie [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), das auf der Oracle-Website zu finden ist. 

### Schritt 1: Erteilen von Berechtigungen für den Benutzer auf der Ziel-DB-Instance von RDS für Oracle
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step1"></a>

Um dem Benutzer auf der Ziel-DB-Instance von RDS für Oracle Berechtigungen zu erteilen, führen Sie die folgenden Schritte aus:

1. Importieren Sie die Daten aus der kopierten Dump-Datei mit Hilfe des Pakets in die RDS für Oracle DB-Instance. Stellen Sie eine Verbindung als Amazon-RDS-Master-Benutzer her. Weitere Information über das Verbinden mit der DB-Instance finden Sie unter [Herstellen der Verbindung zu Ihrer Oracle-DB-Instance](USER_ConnectToOracleInstance.md).

1. Erstellen Sie die erforderlichen Tabellenräume, bevor Sie Daten importieren. Weitere Informationen finden Sie unter [Tablespaces in RDS für Oracle erstellen und deren Größe anpassen](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles).

1. Wenn das Benutzerkonto, in das die Daten importiert werden sollen, nicht vorhanden ist, erstellen Sie das Benutzerkonto und die Rollen und erteilen Sie die erforderlichen Berechtigungen. Wenn Sie Daten in mehrere Benutzerkonten importieren möchten, erstellen Sie alle Benutzerkonten und Rollen und erteilen Sie die erforderlichen Berechtigungen.

   Die folgenden Befehle erstellen beispielsweise einen neuen Benutzer mit dem Namen *schema\$11* und gewähren ihm die erforderlichen Berechtigungen und Rollen, um die Daten für diesen Benutzer in das Schema zu importieren.

   ```
   CREATE USER schema_1 IDENTIFIED BY my-password;
   GRANT CREATE SESSION, RESOURCE TO schema_1;
   ALTER USER schema_1 QUOTA 100M ON users;
   ```
**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

   Im vorherigen Beispiel wird dem neuen Benutzer die Berechtigung `CREATE SESSION` und die Rolle `RESOURCE` erteilt. Möglicherweise sind je nach zu importierenden Datenbankobjekten zusätzliche Berechtigungen und Rollen erforderlich. 
**Anmerkung**  
Ersetzen Sie `schema_1` durch den Namen Ihres Schemas in diesem Schritt und in den folgenden Schritten.

### Schritt 2: Erteilen von Berechtigungen für Benutzer in der Quell-Datenbank
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step2"></a>

Verwenden Sie SQL\$1Plus oder Oracle SQL Developer, um eine Verbindung mit einer DB-Instance von RDS für Oracle herzustellen, die die zu importierenden Daten enthält. Falls nötig, erstellen Sie ein Benutzerkonto und gewähren die notwendigen Berechtigungen. 

**Anmerkung**  
Wenn die Quell-Datenbank eine Amazon-RDS-Instance ist, können Sie diesen Schritt übergehen. Sie verwenden Ihr Amazon-RDS-Master-Benutzerkonto zum Exportieren.

Die folgenden Befehle erstellen einen neuen Benutzer und gewähren die notwendigen Berechtigungen.

```
CREATE USER export_user IDENTIFIED BY my-password;
GRANT CREATE SESSION, CREATE TABLE, CREATE DATABASE LINK TO export_user;
ALTER USER export_user QUOTA 100M ON users;
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO export_user;
GRANT SELECT_CATALOG_ROLE TO export_user;
GRANT EXECUTE ON DBMS_DATAPUMP TO export_user;
GRANT EXECUTE ON DBMS_FILE_TRANSFER TO export_user;
```

**Anmerkung**  
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.

### Schritt 3: Erstellen Sie eine Dump-Datei mithilfe von DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step3"></a>

Gehen Sie folgendermaßen vor, um eine Dump-Datei zu erstellen:

1. Verwenden Sie SQL\$1Plus oder Oracle SQL Developer, um sich mit einem administrativen Benutzer oder mit dem in Schritt 2 erstellten Benutzer mit der Oracle-Quell-Instance zu verbinden. Wenn die Quelldatenbank eine DB-Instance von Amazon RDS für Oracle ist, stellen Sie eine Verbindung mit dem Amazon-RDS-Hauptbenutzer her.

1. Erstellen Sie eine Dump-Datei mithilfe des Oracle Data Pump-Dienstprogramms.

   Das folgende Skript erstellt im Verzeichnis `DATA_PUMP_DIR` eine Dump-Datei mit dem Namen *sample.dmp*. 

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN( 
       operation => 'EXPORT' , 
       job_mode  => 'SCHEMA' , 
       job_name  => null
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample.dmp'    , 
       directory => 'DATA_PUMP_DIR' , 
       filetype  => dbms_datapump.ku$_file_type_dump_file
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl           , 
       filename  => 'sample_exp.log' , 
       directory => 'DATA_PUMP_DIR'  , 
       filetype  => dbms_datapump.ku$_file_type_log_file
     );
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl              ,
       'SCHEMA_EXPR'       ,
       'IN (''SCHEMA_1'')'
     );
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl,
       'EXCLUDE_NAME_EXPR',
       q'[IN (SELECT NAME FROM sys.OBJ$ 
              WHERE TYPE# IN (66,67,74,79,59,62,46) 
              AND OWNER# IN 
                (SELECT USER# FROM SYS.USER$ 
                 WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
                )
             )
       ]',
       'PROCOBJ'
     );
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**Anmerkung**  
Data Pump-Aufträge werden asynchron gestartet. Weitere Informationen über die Überwachung einer Data Pump-Aufgabe finden Sie unter [Überwachung des Aufgabenstatus](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) in der Oracle-Dokumentation. Sie können den Inhalt des Exportprotokolls mithilfe des Verfahrens `rdsadmin.rds_file_util.read_text_file` anzeigen. Weitere Informationen finden Sie unter [Lesen von Dateien in einem DB-Instance-Verzeichnis](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

### Schritt 4: Einen Datenbank-Link zur Ziel-DB-Instance erstellen
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step4"></a>

Erstellen Sie einen Datenbank-Link zwischen Ihrer Quell-DB-Instance und Ihrer Ziel-DB-Instance. Ihre lokale Oracle-Instance muss über eine Netzwerkverbindung mit der DB-Instance verfügen, damit eine Datenbankverbindung erstellt und Ihre Dumpdatei übermittelt werden kann. 

Führen Sie diesen Schritt mit demselben Benutzerkonto wie im vorherigen Schritt aus.

Wenn Sie einen Datenbank-Link zwischen zwei DB-Instances innerhalb derselben VPC oder Peering erstellen VPCs, sollten die beiden DB-Instances über eine gültige Route zwischen ihnen verfügen. Die Sicherheitsgruppe jeder DB-Instance muss den Eintritt und den Austritt von einer zur anderen DB-Instance erlauben. Die eingehenden und die ausgehenden Regeln der Sicherheitsgruppe können sich auf Sicherheitsgruppen aus derselben VPC oder aus einer gleichrangigen VPC beziehen. Weitere Informationen finden Sie unter [Anpassen von Datenbank-Links für die Verwendung mit DB-Instances in einer VPC](Appendix.Oracle.CommonDBATasks.DBLinks.md). 

Mit dem folgenden Befehl wird eine Datenbankverbindung mit dem Namen `to_rds` erstellt, die eine Verbindung mit dem Amazon-RDS-Master-Benutzer auf der Ziel-DB-Instance herstellt. 

```
CREATE DATABASE LINK to_rds 
  CONNECT TO <master_user_account> IDENTIFIED BY <password>
  USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<dns or ip address of remote db>)
         (PORT=<listener port>))(CONNECT_DATA=(SID=<remote SID>)))';
```

### Schritt 5: Kopieren der exportierten Dump-Datei mit DBMS\$1FILE\$1TRANSFER auf die Ziel-DB-Instance
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step5"></a>

Verwenden Sie `DBMS_FILE_TRANSFER`, um die Dump-Datei aus der Datenbank der Quell-Instance zur Ziel-DB-Instance zu kopieren. Mit dem folgenden Skript wird eine Dumpdatei mit dem Namen sample.dmp aus der Quell-Instance zu einer Ziel-Datenbankverbindung mit dem Namen *to\$1rds* (im vorherigen Schritt erstellt) kopiert. 

```
BEGIN
  DBMS_FILE_TRANSFER.PUT_FILE(
    source_directory_object       => 'DATA_PUMP_DIR',
    source_file_name              => 'sample.dmp',
    destination_directory_object  => 'DATA_PUMP_DIR',
    destination_file_name         => 'sample_copied.dmp', 
    destination_database          => 'to_rds' );
END;
/
```

### Schritt 6: Importieren der Datendatei in die Ziel-DB-Instance mit DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step6"></a>

Verwenden Sie Oracle Data Pump, um das Schema in die DB-Instance zu kopieren. Möglicherweise sind zusätzliche Optionen wie METADATA\$1REMAP erforderlich. 

 Stellen Sie zum Importieren unter Verwendung des Amazon-RDS-Master-Benutzerkontos eine Verbindung zur DB-Instance her. 

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN( 
    operation => 'IMPORT', 
    job_mode  => 'SCHEMA', 
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE( 
    handle    => v_hdnl, 
    filename  => 'sample_copied.dmp',
    directory => 'DATA_PUMP_DIR', 
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE( 
    handle    => v_hdnl, 
    filename  => 'sample_imp.log', 
    directory => 'DATA_PUMP_DIR', 
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

**Anmerkung**  
Data Pump-Aufträge werden asynchron gestartet. Weitere Informationen über die Überwachung einer Data Pump-Aufgabe finden Sie unter [Überwachung des Aufgabenstatus](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) in der Oracle-Dokumentation. Sie können den Inhalt des Importprotokolls mithilfe des Verfahrens `rdsadmin.rds_file_util.read_text_file` anzeigen. Weitere Informationen finden Sie unter [Lesen von Dateien in einem DB-Instance-Verzeichnis](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

Sie können den Datenimport überprüfen, indem Sie die Tabelle des Benutzers zur DB-Instance aufrufen. Beispiel: Die folgende Abfrage gibt die Anzahl der Tabellen für zurüc `schema_1`. 

```
SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='SCHEMA_1'; 
```

### Schritt 7: Bereinigen
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step7"></a>

Nachdem die Daten importiert wurden, können Sie die Dateien, die Sie nicht länger benötigen, löschen. Sie können die Dateien in `DATA_PUMP_DIR` mit dem folgenden Befehl auflisten.

```
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
```

Um Dateien in `DATA_PUMP_DIR` zu löschen, die nicht länger benötigt werden, verwenden Sie den folgenden Befehl: 

```
EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','<file name>');
```

So wird mit dem folgenden Befehl beispielsweise die Datei `"sample_copied.dmp"` gelöscht. 

```
EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample_copied.dmp'); 
```