Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Wie wird Oracle Instant Client verwendet, um den Import oder Export von Data Pump für meine Amazon-RDS-für-Oracle-DB-Instance auszuführen?
Ich möchte impdp- und expdp-Hilfsprogramme verwenden, um den Export und Import in meine Amazon-Relational-Database-Service-für-Oracle-DB-Instance (Amazon RDS) durchzuführen.
Kurzbeschreibung
Es gibt mehrere Möglichkeiten, einen Export oder Import in eine Amazon-RDS-für-Oracle-DB-Instance durchzuführen.
Nach dem Einrichten der Umgebung können Sie:
- Importieren Sie Tabellen aus einer Oracle-RDS-Quell-Instance in eine Oracle-RDS-Ziel-Instance.
- Exportieren Sie Daten aus einer Oracle-RDS-Instance und erstellen Sie eine Speicherauszugsdatei lokal auf einer EC2-Instance (Amazon Elastic Compute Cloud) oder einem Remote-Host.
- Exportieren Sie Daten aus einer Oracle-RDS-Instance, und speichern Sie die Speicherauszugsdatei auf dem RDS-Host.
- Importiert eine Dump-Datei, die sich auf einem RDS-Host befindet.
- Übertragen Sie Dump-Dateien zwischen Ihrer RDS-für-Oracle-DB-Instance und einem Amazon-S3-Bucket (Amazon Simple Storage Service) mithilfe der S3-Integrationsoption.
Lösung
Um ein Managed-Service-Erlebnis zu bieten, ist der Zugriff auf Host-Ebene zur Nutzung der impdp- und expdp-Hilfsprogramme auf dem RDS-Host nicht zulässig. Eine alternative Option ist die Verwendung der Data Pump API (DBMS_DATAPUMP), um die Importe oder Exporte durchzuführen. Sie können diese Aufgabe jedoch mithilfe der Data-Pump-Hilfsprogramme auf einem Remote-Host ausführen.
Oracle Instant Client ist ein leichten Client, den Sie auf Ihrem Computer oder auf einer Amazon-EC2-Instance installieren können. Oracle Instant Client enthält die Hilfsprogramme impdp und expdp, mit denen Sie die Export- und Importvorgänge über die Befehlszeile ausführen können.
Voraussetzungen
Gehen Sie vor der Verwendung von Oracle Instant Client wie folgt vor:
- Überprüfen Sie die Dokument-ID 553337.1, um zu prüfen, ob die heruntergeladene Binärdatei mit der Quell- und Zielversion kompatibel ist. Der Export von einem Client mit einer gleichen oder einer höheren Version wird normalerweise unterstützt. Der Import mit einer Client-Version, die mit der Amazon-RDS-Zielversion identisch ist, wird unterstützt. Wenn die Version der Quell-Instance beispielsweise 12.2 und die Version der Ziel-Instance 19c ist, können Sie die neueste 19c-Version des Oracle Instant Client installieren.
- Um Data Pump zu verwenden, installieren Sie das Tools-Paket zusätzlich zum Basispaket. Informationen zur Installation der Pakete finden Sie in der Oracle-Instant-Client-Dokumentation.
- Stellen Sie sicher, dass die Sommerzeitversion (Daylight Saving Time, DST) der Ziel-RDS-Instance gleich oder später ist als die der Quell-Instance. Andernfalls erhalten Sie beim Ausführen des Imports die folgende Fehlermeldung: ORA-39405. Mit der folgenden Abfrage können Sie die aktuelle DST-Version Ihrer Instance überprüfen. Um die DST-Version auf die neueste verfügbare Version in einer Oracle-RDS-Instance zu aktualisieren, verwenden Sie die Option TIMEZONE_FILE_AUTOUPGRADE.
SELECT * FROM V$TIMEZONE_FILE;
Gehen Sie wie folgt vor, um den Data-Pump-Import oder -Export aus einer Datenbank mithilfe eines Oracle Instant Client zu testen:
1. Erstellen Sie eine Amazon-EC2-Test-Instance mit dem Amazon-Linux-2-Betriebssystem.
2. Laden Sie das Basispaket (RPM), das Tools-Paket (RPM) und das SQL*Plus-Paket (RPM) herunter. In diesem Artikel sind die folgenden RPMs die neuesten verfügbaren Downloads:
- oracle-instantclient19.16-basic-19.16.0.0.0-1.x86_64.rpm
- oracle-instantclient19.16-tools-19.16.0.0.0-1.x86_64.rpm
- oracle-instantclient19.16-sqlplus-19.16.0.0.0-1.x86_64.rpm
3. Übertragen Sie die Binärdateien auf die EC2-Instance. Weitere Informationen finden Sie unter Übertragen von Dateien auf Linux-Instances mithilfe eines SCP-Clients.
4. Befolgen Sie die Anweisungen in der Oracle-Dokumentation für das Installieren der Oracle Instant Client auf Linux mit RPM. Durch diesen Prozess werden die Binärdateien im Standardspeicherort /usr/lib/oracle/example-client-version/client64 installiert. Wenn Sie beispielsweise die Binärdateien für Version 19.16 herunterladen, lautet der standardmäßige binäre Speicherort für die Installation /usr/lib/oracle/19.16/client64/bin.
5. Installieren Sie das SQL*Plus-Paket (RPM). SQL*Plus wird verwendet, um die Konnektivität zwischen der EC2-Instance und der RDS-Instance zu testen.
Beispiel:
sudo yum install oracle-instantclient19.16-sqlplus-19.16.0.0.0-1.x86_64.rpm
6. Legen Sie die folgenden Umgebungsvariablen fest oder aktualisieren Sie sie, wie in diesem Beispiel zu sehen ist:
export PATH=$PATH:/usr/lib/oracle/19.16/client64/bin export LD_LIBRARY_PATH=/usr/lib/oracle/19.16/client64/lib
7. Erstellen Sie Ihre Konfigurationsdateien, wie tnsnames.ora und sqlnet.ora, am folgenden Speicherort: /usr/lib/oracle/ example-client-version/client64/lib/network/admin. In diesem Beispiel lautet der Speicherort: /usr/lib/oracle/19.16/client64/lib/network/admin.
Einrichten der Umgebung
1. Fügen Sie der Datei tnsnames.ora die erforderlichen TNS-Einträge für den Import oder Export von Data Pump hinzu.
Beispiel für einen Eintrag in der Datei tnsnames.ora:
target = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = xxxx.rxrxrmwt1x471wi.eu-central-1.rds.amazonaws.com) (PORT = 1521)))(CONNECT_DATA = (SID = orcl)))
Weitere Informationen finden Sie unter Konfigurieren von SQL*Plus für die Verwendung von SSL mit einer Oracle-DB-Instance.
-
Aktualisieren Sie die eingehenden Regeln für die Sicherheitsgruppe der Quell- und Ziel-RDS-Instances, um Verbindungen von der EC2-Instance zu ermöglichen.
-
Erstellen Sie Testtabellen in der RDS-Quell-Instance, um den Export durchzuführen, indem Sie Abfragen ähnlich den folgenden ausführen:
CREATE TABLE TEST1 AS SELECT * FROM DBA_TABLES; CREATE TABLE TEST2 AS SELECT * FROM DBA_OBJECTS; CREATE TABLE TEST3 AS SELECT * FROM DBA_DATA_FILES;
Importieren von Tabellen aus einer Oracle-RDS-Quell-Instance in eine Oracle-RDS-Ziel-Instance
Gehen Sie wie folgt vor, um die Tabellen aus einer Oracle-RDS-Quell-Instance in eine Oracle-RDS-Ziel-Instance zu importieren:
1. Führen Sie eine Abfrage ähnlich dem Beispiel unten aus, um eine Datenbank-Verknüpfung zwischen der Quell- und Zieldatenbank zu erstellen. Dies wird mit dem Parameter network_link verwendet:
CREATE DATABASE LINK sample_conn CONNECT TO example-username IDENTIFIED BY example-password USING '(DESCRIPTION = (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = example-hostname)(PORT = example-port)))(CONNECT_DATA =(SERVICE_NAME = example-service-name)))';
Der Datenbank-Link, der die Ziel-Instance mit der Quell-Instance verbindet, verfügt über eingehende Regeln, die Verbindungen der Ziel-Instance zulassen.
2. Erfüllen Sie die in diesem Artikel beschriebenen Voraussetzungen und Einstellungen, bevor Sie den Befehl impdp ausführen.
3. Melden Sie sich bei der EC2-Instance an, die den Oracle Instant Client enthält.
4. Um Daten von der Quell-Instance in die Ziel-Instance zu importieren, führen Sie einen Befehl ähnlich dem folgenden aus:
impdp admin@target directory=data_pump_dir logfile=imp_test_tables_using_nw_link.log tables=admin.test1,admin.test2,admin.test3 network_link=sample_conn
Beispielausgabe:
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Starting "ADMIN"."SYS_IMPORT_TABLE_01": admin/********@target directory=data_pump_dir logfile=imp_test_tables_using_nw_link.log tables=admin.test1,admin.test2,admin.test3 network_link=sample_conn Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 3.625 MB Processing object type TABLE_EXPORT/TABLE/TABLE . . imported "ADMIN"."TEST2" 20634 rows . . imported "ADMIN"."TEST1" 1537 rows . . imported "ADMIN"."TEST3" 6 rows Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER Job "ADMIN"."SYS_IMPORT_TABLE_01" successfully completed at Wed Oct 14 23:57:28 2020 elapsed 0 00:01:06
Exportieren von Daten aus einer Oracle-RDS-Instance und Erstellen einer Dump-Datei lokal auf einem Remote-Host
Gehen Sie wie folgt vor, um die Daten aus einer Oracle-RDS-Instance zu exportieren und lokal eine Dump-Datei zu erstellen:
- Installieren Sie eine Oracle-Datenbank auf einer EC2-Instance oder einem Remote-Host. Im folgenden Beispiel ist Oracle XE auf einer Windows-EC2-Instance installiert. Weitere Informationen zu Oracle XE finden Sie unter Oracle Database XE Quick Start.
- Aktualisieren Sie die eingehenden Regeln für die Sicherheitsgruppe der Quell-RDS-Instances, um Verbindungen von der EC2-Instance zu ermöglichen.
1. Melden Sie sich mit einem Oracle-Client wie SQL*Plus bei der XE-Datenbank an. Erstellen Sie dann ein Verzeichnis in der Oracle XE-Datenbank. Dieses Verzeichnis verweist auf das Verzeichnis, in dem Sie die Dump-Datei auf der EC2-Instance erstellen möchten. Führen Sie eine Abfrage ähnlich der folgenden aus:
create directory exp_dir as 'C:\TEMP\';
2. Erstellen Sie in der XE-Datenbank einen Datenbank-Link zu Ihrer Quell-RDS-Datenbank, indem Sie einen Befehl ähnlich dem folgenden Beispiel verwenden:
CREATE DATABASE LINK exp_rds CONNECT TO admin identified by example_password USING '(DESCRIPTION = (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = example-hostname)(PORT=example-port)))(CONNECT_DATA =(SERVICE_NAME = example-service-name)))';
3. Testen Sie den Datenbank-Link ähnlich dem folgenden:
select sysdate from dual@exp_rds;
4. Um die Dump-Datei auf der EC2-Instance zu erstellen, führen Sie einen Befehl ähnlich dem folgenden aus:
expdp system network_link=exp_rds directory=exp_dir dumpfile=table_dump.dmp logfile=expdp_table_dump.log tables=admin.test1,admin.test2,admin.test3
Beispielausgabe:
Connected to: Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production Warning: Oracle Data Pump operations are not typically needed when connected to the root or seed of a container database. Starting "SYSTEM"."SYS_EXPORT_TABLE_01": system/******** network_link=exp_rds directory=exp_dir dumpfile=table_dump.dmp logfile=expdp_table_dump.log tables=admin.test1,admin.test2,admin.test3 Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER Processing object type TABLE_EXPORT/TABLE/TABLE . . exported "ADMIN"."TEST2" 2.713 MB 23814 rows. . exported "ADMIN"."TEST1" 677.1 KB 1814 rows. . exported "ADMIN"."TEST3" 15.98 KB 5 rows Master table "SYSTEM"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded ****************************************************************************** Dump file set for SYSTEM.SYS_EXPORT_TABLE_01 is: C:\TEMP\TABLE_DUMP.DMP Job "SYSTEM"."SYS_EXPORT_TABLE_01" successfully completed at Wed Aug 24 18:15:25 2022 elapsed 0 00:00:18
Exportieren von Daten aus einer Oracle RDS-Instance und Speichern der Dump-Datei auf dem RDS-Host
Gehen Sie wie folgt vor, um Daten aus einer Oracle RDS-Instance zu exportieren und die Dump-Datei auf dem RDS-Host zu speichern:
1. Erfüllen Sie die in diesem Artikel beschriebenen Voraussetzungen und Einstellungen, bevor Sie den Befehl expdp ausführen.
2. Melden Sie sich bei der EC2-Instance an, die den Oracle Instant Client enthält.
3. Erstellen Sie eine Dump-Datei auf der RDS-Instance, indem Sie einen Befehl ähnlich dem folgenden ausführen:
expdp admin@target dumpfile=table_dump.dmp logfile=expdp_table_dump.log tables=admin.test1,admin.test2,admin.test3
Beispielausgabe:
Export: Release 19.0.0.0.0 - Production on Wed Aug 24 16:18:58 2022 Version 19.16.0.0.0 Copyright (c) 1982, 2022, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Starting "ADMIN"."SYS_EXPORT_TABLE_01": admin/********@target dumpfile=table_dump.dmp logfile=expdp_table_dump.log tables=admin.test1,admin.test2,admin.test3 Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER Processing object type TABLE_EXPORT/TABLE/TABLE . . exported "ADMIN"."TEST2" 2.713 MB 23814 rows . . exported "ADMIN"."TEST1" 677.1 KB 1814 rows . . exported "ADMIN"."TEST3" 15.98 KB 5 rows Master table "ADMIN"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded ****************************************************************************** Dump file set for ADMIN.SYS_EXPORT_TABLE_01 is: /rdsdbdata/datapump/table_dump.dmp Job "ADMIN"."SYS_EXPORT_TABLE_01" successfully completed at Wed Aug 24 16:19:20 2022 elapsed 0 00:00:15
Importieren der Dump-Datei, die sich auf dem RDS-Host befindet
Um eine Dump-Datei zu importieren, die auf dem RDS-Host gespeichert ist, gehen Sie wie folgt vor:
Hinweis: In diesem Beispiel sind die Daten in DATA_PUMP_DIR auf dem RDS-Host vorhanden.
1. Erfüllen Sie die in diesem Artikel beschriebenen Voraussetzungen und Einstellungen, bevor Sie den Befehl impdp ausführen.
2. Melden Sie sich bei der EC2-Instance an, die den Instant Client enthält.
3. Führen Sie einen Befehl ähnlich dem folgenden auf der EC2-Instance aus, um die Dump-Datei zu importieren, die sich auf dem RDS-Host befindet.
Hinweis: In diesem Beispiel werden die Tabellen gekürzt, bevor die Daten importiert werden.
impdp admin@target directory=DATA_PUMP_DIR dumpfile=table_dump.dmp logfile=impdp_table_dump.log tables=admin.test1,admin.test2,admin.test3 table_exists_action=truncate
Beispielausgabe:
import: Release 19.0.0.0.0 - Production on Thu Sep 8 13:24:44 2022 Version 19.16.0.0.0 Copyright (c) 1982, 2022, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Master table "ADMIN"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded Starting "ADMIN"."SYS_IMPORT_TABLE_01": admin/********@target directory=DATA_PUMP_DIR dumpfile=table_dump.dmp logfile=impdp_table_dump.log tables=admin.test1,admin.test2,admin.test3 table_exists_action=truncate Processing object type TABLE_EXPORT/TABLE/TABLE Table "ADMIN"."TEST2" exists and has been truncated. Data will be loaded but all dependent metadata will be skipped due to table_exists_action of truncate Table "ADMIN"."TEST3" exists and has been truncated. Data will be loaded but all dependent metadata will be skipped due to table_exists_action of truncate Table "ADMIN"."TEST1" exists and has been truncated. Data will be loaded but all dependent metadata will be skipped due to table_exists_action of truncate Processing object type TABLE_EXPORT/TABLE/TABLE_DATA . . imported "ADMIN"."TEST2" 2.749 MB 24059 rows . . imported "ADMIN"."TEST1" 677.2 KB 1814 rows . . imported "ADMIN"."TEST3" 15.98 KB 5 rows Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER Job "ADMIN"."SYS_IMPORT_TABLE_01" successfully completed at Thu Sep 8 13:24:54 2022 elapsed 0 00:00:06
Übertragen von Dump-Dateien zwischen Ihrer RDS-für-Oracle-DB-Instance und einem Amazon-S3-Bucket
Um Dump-Dateien zwischen einer RDS-Oracle-DB-Instance und einem Amazon-S3-Bucket zu übertragen, können Sie die S3-Integrationsoption verwenden. Weitere Informationen finden Sie unter Übertragen von Dateien zwischen Amazon RDS for Oracle und einem Amazon S3-Bucket.
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Jahren