So wird Oracle Instant Client verwendet, um den Import oder Export von Data Pump für Amazon RDS for Oracle-DB-Instances auszuführen?

Letzte Aktualisierung 10.11.2021

Ich möchte impdp- und expdp-Clients verwenden, um den Export und Import in meinen Amazon Relational Database Service (Amazon RDS) für eine Oracle DB-Instance durchzuführen.

Auflösung

Da Amazon RDS for Oracle eine verwaltete Datenbank ist, haben Sie keinen Zugriff auf den Host, um die impdp- oder expdp-Clients zu verwenden. Wenn Sie die Data Pump-API zum Durchführen von Importen oder Exporten verwenden, benötigen Sie das PL-/SQL-Paket. Oracle Instant Client ist ein leichtgewichtiger Client, der entweder in Ihrem Computer oder in einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance installiert werden kann. Oracle Instant Client enthält die Clients impdp und expdp, die für den Export und Import über die Befehlszeile verwendet werden können.

Gehen Sie vor der Verwendung von Oracle Instant Client wie folgt vor:

  • Überprüfen Sie die Dok.-ID 553337.1, um festzustellen, ob die heruntergeladende Binärdatei den Export von Quell- und Zielversionen unterstützt. Der Export von einem Client mit einer gleichen oder einer späteren Version wird normalerweise unterstützt. Der Import mit der Client-Version, die mit der Amazon RDS-Zielversion identisch ist, wird unterstützt. Wenn die Version der Quell-Instance beispielsweise 12.2 ist und die Version der Ziel-Instance 18c ist, können Sie die neueste Version von Oracle Instant 18c Client installieren.
  • Um Data Pump zu verwenden, installieren Sie das Paket Tools zusätzlich zum Paket Basic. Informationen zur Installation der Pakete finden Sie in der Oracle-Dokumentation für den Oracle Instant Client.
  • 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 die 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 zu aktualisieren, verwenden Sie die Option TIMEZONE_FILE_AUTOUPGRADE.
SELECT * FROM V$TIMEZONE_FILE;

Um den Data Pump-Import oder -Export über eine Datenbankverbindung mit Oracle Instant Client zu testen, gehen Sie wie folgt vor:

1.    Erstellen Sie eine Amazon-EC2-Test-Instance mit dem Amazon Linux 2-Betriebssystem.

2.    Laden Sie das Basic (RPM)-Paket und das Tools (RPM)-Paket herunter. In diesem Artikel werden die folgenden RPM-Downloads berücksichtigt:

        oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm

        oracle-instantclient19.8-tools-19.8.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 Oracle Instant Client auf Linux aus RPMs installieren.
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.8 herunterladen, lautet der standardmäßige binäre Speicherort für die Installation /usr/lib/oracle/19.8/client64.

5.    Installieren Sie das Paket SQL*Plus (RPM), um die Konnektivität zwischen der EC2-Instance und der RDS-Instance zu testen.

6.    Richten Sie die folgenden Umgebungsvariablen ein oder aktualisieren Sie diese:

export PATH=$PATH:/usr/lib/oracle/19.8/client64/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/19.8/client64/lib

7.    Erstellen Sie ein benutzerdefiniertes Verzeichnis zum Speichern von tnsnames.ora, indem Sie einen Befehl ähnlich dem folgenden ausführen. Richten Sie die Umgebungsvariable TNS_ADMIN so ein, dass sie auf das Verzeichnis verweist.

mkdir -p /root/tnsentries

Stellen Sie sicher, dass sich die Datei tnsnames.ora in diesem Verzeichnis befindet.

Führen Sie den folgenden Befehl aus, um sicherzustellen, dass die Umgebungsvariable TNS_ADMIN auf das Verzeichnis verweist.

export TNS_ADMIN=/root/tnsentries

8.    Nehmen Sie die erforderlichen TNS-Einträge für den Data Pump-Import in die Datei tnsnames.ora auf.

9.    Aktualisieren Sie die eingehenden Regeln für die Sicherheitsgruppe der Quell- und Ziel-RDS-Instances, um Verbindungen von der EC2-Instance zu ermöglichen.

10.    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;

11.    Führen Sie eine Abfrage ähnlich der folgenden aus, um die Datenbankverknüpfung zwischen der Quell- und Zieldatenbank zu erstellen, die mit dem Parameter network_link verwendet werden soll:

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)))';

Da Sie den Datenbank-Link verwenden, um eine Verbindung von der Ziel-Instance zur Quell-Instance herzustellen, werden die eingehenden Regeln für die Quelldatenbank so festgelegt, dass sie Verbindungen der Ziel-Instance zulassen.

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

Möglicherweise erhalten Sie eine Ausgabe ähnlich der folgenden:

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

Oracle-Dokumentation für Übersicht zu Oracle Data Pump

Oracle-Dokumentation für DBMS_DATAPUMP

War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?