Oracle Instant Client를 사용하여 Amazon RDS for Oracle DB 인스턴스에 대해 Data Pump 가져오기 또는 내보내기를 실행하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 11월 10일

impdp 및 expdp 클라이언트를 사용하여 Oracle DB 인스턴스용 Amazon Relational Database Service(Amazon RDS)로 내보내기 및 가져오기를 수행하려고 합니다.

해결 방법

Amazon RDS for Oracle은 관리형 데이터베이스이므로 impdp 또는 expdp 클라이언트를 사용하기 위해 호스트에 액세스할 수 없습니다. Data Pump API를 사용하여 가져오기 또는 내보내기를 수행하는 경우 PL/SQL 패키지가 필요합니다. Oracle Instant Client는 컴퓨터 또는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 설치할 수 있는 경량 클라이언트입니다. Oracle Instant Client에는 명령줄에서 내보내기 및 가져오기를 수행하는 데 사용할 수 있는 impdp 및 expdp 클라이언트가 포함되어 있습니다.

Oracle Instant Client를 사용하기 전에 다음을 수행해야 합니다.

  • Doc ID 553337.1를 확인하여 다운로드 중인 바이너리가 소스 및 대상 버전의 내보내기를 지원하는지 확인합니다. 일반적으로 동일하거나 그 이후 버전의 클라이언트에서 내보내기가 지원됩니다. 대상 Amazon RDS 메이저 버전과 동일한 클라이언트 버전을 사용하여 가져올 수 있습니다. 예를 들어 소스 인스턴스의 버전이 12.2이고 대상 인스턴스의 버전이 18c인 경우 최신 버전의 Oracle Instant 18c 클라이언트를 설치할 수 있습니다.
  • Data Pump를 사용하려면 기본 패키지 위에 도구 패키지를 설치하세요. 패키지를 설치하려면 Oracle Instant Client에 대한 Oracle 설명서를 참조하세요.
  • 대상 RDS 인스턴스의 DST(일광 절약 시간) 버전이 소스 인스턴스의 버전과 동일하거나 그 이후인지 확인합니다. 그렇지 않은 경우 ORA-39405 오류가 발생합니다. 다음 쿼리를 사용하여 인스턴스의 현재 DST 버전을 확인합니다. DST 버전을 사용 가능한 최신 버전으로 업데이트하려면 TIMEZONE_FILE_AUTOUPGRADE 옵션을 사용합니다.
SELECT * FROM V$TIMEZONE_FILE;

Oracle Instant Client를 사용하여 데이터베이스 링크를 통해 Data Pump 가져오기 또는 내보내기를 테스트하려면 다음을 수행합니다.

1.    Amazon Linux 2 운영 체제를 사용하여 테스트 Amazon EC2 인스턴스를 생성합니다.

2.    기본 (RPM) 패키지 및 도구 (RPM) 패키지를다운로드합니다. 이 문서에서는 다음 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.    바이너리를 EC2 인스턴스로 전송합니다. 자세한 내용은 SCP 클라이언트를 사용하여 Linux 인스턴스로 파일 전송을 참조하세요.

4.    RPM에서 Linux에 Oracle Instant Client 설치에 대한 Oracle 설명서의 지침을 따릅니다.
이 프로세스는 기본 위치 /usr/lib/oracle/example-client-version/client64에 바이너리를 설치합니다. 예를 들어 버전 19.8의 바이너리를 다운로드하는 경우, 해당 설치의 기본 바이너리 위치는/usr/lib/oracle/19.8/client64입니다.

5.    SQL*Plus Package(RPM) 패키지를 설치하여 EC2 인스턴스와 RDS 인스턴스 간의 연결을 테스트합니다.

6.    다음 환경 변수를 설정하거나 업데이트합니다.

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

7.    다음과 유사한 명령을 실행하여 tnsnames.ora를 저장할 사용자 지정 디렉터리를 생성합니다. TNS_ADMIN 환경 변수가 디렉터리를 가리키도록 설정합니다.

mkdir -p /root/tnsentries

이 디렉터리 아래에 tnsnames.ora 파일이 있는지 확인합니다.

다음 명령을 실행하여 TNS_ADMIN 환경 변수가 해당 디렉터리를 가리키는지 확인합니다.

export TNS_ADMIN=/root/tnsentries

8.    tnsnames.ora 파일에 Data Pump 가져오기에 필요한 TNS 항목을 포함합니다.

9.    소스 및 대상 RDS 인스턴스의 보안 그룹에 대한 인바운드 규칙을 업데이트하여 EC2 인스턴스로부터의 연결을 허용합니다.

10.    다음과 유사한 쿼리를 실행하여 소스 RDS 인스턴스에 테스트 테이블을 생성하여 내보내기를 수행합니다.

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.    다음과 유사한 쿼리를 실행하여 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)))';

데이터베이스 링크를 사용하여 대상 인스턴스에서 소스 인스턴스로 연결하기 때문에 소스 데이터베이스의 인바운드 규칙은 대상 인스턴스의 연결을 허용하도록 설정됩니다.

12.    소스 인스턴스에서 대상 인스턴스로 데이터를 가져오려면 다음과 유사한 명령을 실행합니다.

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

다음과 유사한 출력이 나타납니다.

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 Data Pump 개요에 대한 Oracle 설명서

DBMS_DATAPUMP에 대한 Oracle 설명서

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?