Come posso utilizzare Oracle Instant Client per eseguire l'importazione o l'esportazione di Data Pump per la mia istanza Amazon RDS for Oracle?

Ultimo aggiornamento: 10-11-2021

Desidero utilizzare i client impdp ed expdp per eseguire l'esportazione e l'importazione nella mia istanza database Amazon Relational Database Service (Amazon RDS) for Oracle.

Risoluzione

Poiché Amazon RDS for Oracle è un database gestito, non hai accesso all'host per utilizzare i client impdp o expdp. Se utilizzi l'API di Data Pump per eseguire importazioni o esportazioni, è necessario il pacchetto PL/SQL. Oracle Instant Client è un client leggero che può essere installato nel tuo computer o in un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Oracle Instant Client include i client impdp ed expdp che possono essere utilizzati per eseguire l'esportazione e l'importazione dalla riga di comando.

Prima di utilizzare Oracle Instant Client, effettua le seguenti operazioni:

  • Verifica l'ID documento 553337.1 per accertarti che il file binario che stai scaricando supporti l'esportazione delle versioni di origine e di destinazione. In genere è supportata l'esportazione da un client con una versione identica o successiva. È supportata l'importazione con la versione client identica alla versione principale di Amazon RDS di destinazione. Ad esempio, se la versione dell'istanza di origine è la 12.2 e la versione dell'istanza di destinazione è la 18c, puoi installare la versione più recente di Oracle Instant 18c Client.
  • Per utilizzare Data Pump, installa il pacchetto Tools sopra il pacchetto Basic. Per installare i pacchetti, consulta la documentazione Oracle per Oracle Instant Client.
  • Assicurati che la versione dell’ora legale (DST) dell'istanza RDS di destinazione sia uguale o successiva a quella dell'istanza di origine. In caso contrario, viene visualizzato l'errore ORA-39405. Utilizza la seguente query per verificare la versione DST corrente dell'istanza. Per aggiornare la versione DST all'ultima versione disponibile, utilizza l'opzione TIMEZONE_FILE_AUTOUPGRADE.
SELECT * FROM V$TIMEZONE_FILE;

Per testare l'importazione o l'esportazione di Data Pump tramite un link di database utilizzando Oracle Instant Client, effettua le seguenti operazioni:

1.    Crea un'istanza Amazon EC2 di prova utilizzando il sistema operativo Amazon Linux 2.

2.    Scarica il pacchetto Basic (RPM) e il pacchetto Tools (RPM). In questo articolo vengono presi in considerazione i seguenti download RPM:

        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.    Trasferisci i file binari all'istanza EC2. Per ulteriori informazioni, consulta Trasferire file su istanze Linux utilizzando un client SCP.

4.    Segui le istruzioni contenute nella documentazione Oracle per l'installazione di Oracle Instant Client su Linux dagli RPM.
Questo processo installa i file binari nella posizione predefinita /usr/lib/oracle/example-client-version/client64. Ad esempio, se scarichi i file binari per la versione 19.8, la posizione predefinita dei file binari per l'installazione è /usr/lib/oracle/19.8/client64.

5.    Installa il pacchetto SQL*Plus Package (RPM) per testare la connettività tra l'istanza EC2 e l'istanza RDS.

6.    Imposta o aggiorna le seguenti variabili ambientali:

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

7.    Crea una directory personalizzata per archiviare tnsnames.ora eseguendo un comando simile al seguente. Imposta la variabile ambientale TNS_ADMIN in modo che punti alla directory.

mkdir -p /root/tnsentries

Assicurati di avere il file tnsnames.ora in questa directory.

Esegui il seguente comando per assicurarti che la variabile ambientale TNS_ADMIN punti alla directory.

export TNS_ADMIN=/root/tnsentries

8.    Includi le voci TNS richieste per l'importazione di Data Pump nel file tnsnames.ora.

9.    Aggiorna le regole in ingresso per il gruppo di sicurezza delle istanze RDS di origine e di destinazione per consentire la presenza di connessioni dall'istanza EC2.

10.    Crea tabelle di test nell'istanza RDS di origine per eseguire l'esportazione eseguendo query simili alle seguenti:

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.    Esegui una query simile alla seguente per creare il link di database tra i database di origine e di destinazione da utilizzare con il parametro network_link:

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

Poiché si utilizza il link di database per connettersi dall'istanza di destinazione all'istanza di origine, le regole in ingresso per il database di origine vengono impostate per consentire la presenza di connessioni dell'istanza di destinazione.

12.    Per importare dati dall'istanza di origine all'istanza di destinazione, esegui un comando simile al seguente:

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

Potresti ottenere un output simile al seguente:

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

Documentazione Oracle per la panoramica di Oracle Data Pump

Documentazione Oracle per DBMS_DATAPUMP

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?