Oracle Data Pump를 사용하여 온프레미스 Oracle 데이터베이스를 Amazon RDS for Oracle로 마이그레이션 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Oracle Data Pump를 사용하여 온프레미스 Oracle 데이터베이스를 Amazon RDS for Oracle로 마이그레이션

작성자: Mohan Annam(AWS) 및 Brian motzer(AWS)

환경: PoC 또는 파일럿

소스: 데이터베이스: 관계형

대상: Amazon RDS for Oracle

R 타입: 리플랫포밍

워크로드: Oracle

기술: 마이그레이션, 데이터베이스

AWS 서비스: Amazon RDS

요약

이 패턴은 Oracle Data Pump를 사용하여 Oracle 데이터베이스를 온프레미스 데이터 센터에서 Oracle DB 인스턴스용 Amazon Relational Database Service(AmazonRDS)로 마이그레이션하는 방법을 설명합니다. 

패턴에는 소스 데이터베이스에서 데이터 덤프 파일을 생성하고, Amazon Simple Storage Service(Amazon S3) 버킷에 파일을 저장한 다음, Amazon RDS for Oracle DB 인스턴스에 데이터를 복원하는 작업이 포함됩니다. 이 패턴은 마이그레이션에 AWS Database Migration Service(AWS DMS)를 사용하는 데 제한이 발생할 때 유용합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 AWS 계정

  • AWS Identity and Access Management(IAM)에서 역할을 생성하고 Amazon S3 멀티파트 업로드에 필요한 권한

  • 소스 데이터베이스에서 데이터를 내보내는 데 필요한 권한

  • AWS 명령줄 인터페이스(AWS CLI) 설치구성

제품 버전

  • Oracle Data Pump는 Oracle 데이터베이스 10g 릴리스 1(10.1) 이상 버전에서만 사용할 수 있습니다.

아키텍처

소스 기술 스택

  • 온프레미스 Oracle 데이터베이스

대상 기술 스택

  • Amazon RDS for Oracle

  • SQL 클라이언트(Oracle SQL 개발자)

  • S3 버킷

소스 및 대상 아키텍처

Oracle Data Pump를 RDS 사용하여 온프레미스 Oracle DB에서 Amazon으로 Amazon S3 멀티파트 업로드.

도구

AWS 서비스

  • AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 인증하고 사용할 수 있는 권한을 부여받은 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다. 이 패턴에서 IAM는 Amazon S3에서 OracleRDS용 Amazon으로 데이터를 마이그레이션하는 데 필요한 역할 및 정책을 생성하는 데 사용됩니다.

  • Amazon Relational Database Service(Amazon RDS) for Oracle은 AWS 클라우드에서 Oracle 관계형 데이터베이스를 설정, 운영 및 확장하는 데 도움이 됩니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

기타 도구

  • Oracle Data Pump를 사용하면 한 데이터베이스에서 다른 데이터베이스로 데이터와 메타데이터를 빠른 속도로 이동할 수 있습니다. 이 패턴에서 Oracle Data Pump는 데이터 덤프(.dmp) 파일을 Oracle 서버로 내보내고 Amazon RDS for Oracle로 가져오는 데 사용됩니다. 자세한 내용은 Amazon 설명서의Amazon의 Oracle로 데이터 가져오기RDS를 참조하세요. RDS

  • Oracle SQL Developer는 기존 및 클라우드 기반 배포 모두에서 Oracle 데이터베이스의 개발 및 관리를 간소화하는 통합 개발 환경입니다. 온프레미스 Oracle 데이터베이스 및 Amazon RDS for Oracle과 상호 작용하여 데이터를 내보내고 가져오는 데 필요한 SQL 명령을 실행합니다.

에픽

작업설명필요한 기술

버킷을 생성합니다.

S3 버킷을 생성하려면 AWS 설명서의 지침을 따르세요.

AWS 시스템 관리자
작업설명필요한 기술

IAM 권한을 구성합니다.

권한을 구성하려면 AWS 설명서의 지침을 따르세요.

AWS 시스템 관리자
작업설명필요한 기술

대상 Amazon RDS for Oracle DB 인스턴스를 생성합니다.

Amazon RDS for Oracle 인스턴스를 생성하려면 AWS 설명서의 지침을 따르세요.

AWS 시스템 관리자

역할을 DB 인스턴스와 연결합니다.

역할을 인스턴스와 연결하려면 AWS 설명서의 지침을 따릅니다.

DBA
작업설명필요한 기술

사용자를 생성합니다.

Oracle SQL Developer 또는 SQL*Plus의 대상 Amazon RDS for Oracle 데이터베이스에 연결하고 다음 SQL 명령을 실행하여 스키마를 가져올 사용자를 생성합니다.

create user SAMPLE_SCHEMA identified by <PASSWORD>; grant create session, resource to <USER NAME>; alter user <USER NAME> quota 100M on users;
DBA
작업설명필요한 기술

데이터 덤프 파일을 생성합니다.

SAMPLE_SCHEMA 사용자를 내보낼 DATA_PUMP_DIR 디렉터리에 sample.dmp로 이름이 지정된 덤프 파일을 만들려면 다음 스크립트를 사용합니다.

DECLARE hdnl NUMBER; BEGIN hdnl := dbms_datapump.open(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => NULL); dbms_datapump.add_file( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); dbms_datapump.add_file(handle => hdnl, filename => 'export.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')'); dbms_datapump.start_job(hdnl); END; /

로컬 DATA_PUMP_DIR 디렉터리에 있는 export.log 파일을 검토하여 내보내기 세부 정보를 검토하십시오.

DBA
작업설명필요한 기술

소스에서 S3 버킷으로 데이터 덤프 파일을 업로드합니다.

를 사용하여 다음 명령을 AWS CLI실행합니다.

aws s3 cp sample.dmp s3://<bucket_created_epic_1>/
DBA
작업설명필요한 기술

Amazon에 데이터 덤프 파일 다운로드 RDS

S3 버킷sample.dmp에서 Amazon RDS for Oracle 데이터베이스로 덤프 파일을 복사하려면 다음 SQL 명령을 실행합니다. 이 예시에서는 sample.dmp 파일이 S3 버킷 my-s3-integration1에서 Oracle 디렉터리 DATA_PUMP_DIR로 다운로드됩니다. 데이터베이스와 내보내기 파일을 모두 수용할 수 있도록 RDS 인스턴스에 할당된 디스크 공간이 충분한지 확인합니다.

-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line. SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'my-s3-integration', p_s3_prefix => 'sample.dmp', p_directory_name => 'DATA_PUMP_DIR') AS TASK_ID FROM DUAL;

이전 명령은 작업 ID를 출력합니다. 작업 ID의 데이터를 검토하여 다운로드 상태를 검토하려면 다음 명령을 실행합니다.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));

DATA_PUMP_DIR 디렉터리에서 파일을 보려면 다음 명령을 실행합니다.

SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;
AWS 시스템 관리자
작업설명필요한 기술

스키마와 데이터를 Amazon 에 복원합니다RDS.

sample_schema 데이터베이스 스키마로 덤프 파일을 가져오려면 SQL Developer 또는 SQL*Plus에서 다음 SQL 명령을 실행합니다.

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

가져오기에서 로그 파일을 보려면 다음 명령을 실행합니다.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));
DBA
작업설명필요한 기술

내보내기 파일을 나열하고 정리합니다.

DATA_PUMP_DIR 디렉터리의 내보내기 파일을 나열하고 제거한 뒤, 다음 명령을 실행합니다.

-- List the files SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;
-- Remove the files EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp'); EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');
AWS 시스템 관리자

관련 리소스