Word RDS 및 RDSSQLWord를 AWS DMS 사용하여 AWS Word 및 SCT를 사용하여 Amazon Word for Oracle을 Amazon CLI AWS for AWSPostgre CloudFormation로 마이그레이션 - AWS 권장 가이드

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

Word RDS 및 RDSSQLWord를 AWS DMS 사용하여 AWS Word 및 SCT를 사용하여 Amazon Word for Oracle을 Amazon CLI AWS for AWSPostgre CloudFormation로 마이그레이션

작성자: Pinesh Singal(AWS)

환경: PoC 또는 파일럿

소스: Amazon RDS for Oracle

대상: PostgreSQL용 Amazon RDS

R 타입: 리아키텍트

워크로드: Oracle, 오픈 소스

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

AWS 서비스: AWS DMS, Amazon RDS, AWS SCT

요약

이 패턴은 Word AWS 명령줄 인터페이스(Word RDS)를 사용하여 Oracle DB 인스턴스용 다중 테라바이트 Amazon Relational Database Service(Amazon Word)를 Amazon Word for PostgreWord DB 인스턴스로 마이그레이션하는 방법을 보여줍니다CLI. RDS SQL AWS 이 접근 방식은 가동 중지 시간을 최소화하며 AWS Management Console에 로그인할 필요가 없습니다.

이 패턴은 AWS Schema Conversion Tool(AWS SCT) 및 AWS Database Migration Service(AWS DMS) 콘솔을 사용하여 수동 구성 및 개별 마이그레이션을 방지하는 데 도움이 됩니다. 이 솔루션은 여러 데이터베이스에 대한 일회성 구성을 설정하고 AWS에서 SCT 및 AWS DMS를 사용하여 마이그레이션을 수행합니다AWSCLI.

패턴은 AWS SCT를 사용하여 데이터베이스 스키마 객체를 Amazon RDS for Oracle에서 Amazon RDS for PostgreSQL로 변환한 다음 AWSDMS 사용하여 데이터를 마이그레이션합니다. AWS CLI에서 Python 스크립트를 사용하여 AWS SCT CloudFormation 템플릿을 사용하여 AWS 객체 및 AWS DMS 태스크를 생성합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정.

  • 기존 Amazon RDS for Oracle DB 인스턴스입니다.

  • 기존 Amazon RDS for PostgreSQL DB 인스턴스입니다. 

  • 스크립트 실행을 위한 Windows 또는 Linux OS가 있는 Amazon EC2 인스턴스 또는 로컬 시스템입니다.

  • Word DMS AWS 작업 유형 full-load, cdc,에 대한 이해full-load-and-cdc.  자세한 내용은 DMS AWS 설명서의 작업 생성을 참조하세요. 

  • AWS SCT, Oracle 및 SQL JDBC) 드라이버로 설치 및 구성됨. 자세한 내용은 AWS SCT 설명서의 Word 설치필요한 데이터베이스 드라이버 설치를 참조하세요. AWS SCT  

  • 설치된 AWS SCT 폴더의 AWSSchemaConversionToolBatch.jar 파일로, 작업 디렉터리에 복사됩니다.

  • 작업 디렉토리에서 cli-sct-dms-cft.zip 파일(첨부됨)이 다운로드 및 추출되었습니다.

제한 사항

  • 소스 Amazon RDS for Oracle DB 인스턴스의 최소 요구 사항은 다음과 같습니다. 

    • Enterprise, Standard, Standard One 및 Standard Two 에디션용 Oracle 버전 12c(v12.1.0.2, v12.2.0.1), 18c (v18.0.0.0) 및 19c(v19.0.0.0)입니다.

    • Amazon RDS는 Oracle 18c(v18.0.0.0)를 지원하지만 Oracle은 end-of-support 날짜 이후 18c에 대한 패치를 더 이상 제공하지 않으므로이 버전은 사용 중단 경로에 있습니다. 자세한 내용은 Amazon RDS 설명서의 Amazon Word에서 Oracle을 참조하세요. RDS

    • Amazon RDS for Oracle 11g는 더 이상 지원되지 않습니다.

  • 대상 Amazon RDS for PostgreSQL DB 인스턴스의 최소 요구 사항은 다음과 같습니다. 

    • PostgreSQL 버전 9(버전 9.5 및 9.6), 10.x, 11.x, 12.x 및 13.x

제품 버전

  • Amazon RDS for Oracle DB 인스턴스 버전 12.1.0.2 이상

  • Amazon RDS for PostgreSQL DB 인스턴스 버전 11.5 이상

  • AWS CLI 버전 2 

  • AWSSCT의 최신 버전

  • Python 3의 최신 버전

아키텍처

소스 기술 스택  

  • Amazon RDS for Oracle

대상 기술 스택  

  • Amazon RDS for PostgreSQL

소스 및 대상 아키텍처· 

다음 다이어그램은 RDS 및 Python 스크립트를 사용하여 Amazon RDS for Oracle DB 인스턴스를 Amazon DMS AWS for PostgreSQL DB 인스턴스로 마이그레이션하는 방법을 보여줍니다.

RDS 및 Python을 사용하여 RDS for Oracle DB 인스턴스를 DMS AWS for PostgreSQL DB 인스턴스로 마이그레이션.

이 다이어그램은 다음의 마이그레이션 워크플로우를 보여줍니다.

  1. Python 스크립트는 SCT AWS를 사용하여 소스 및 대상 DB 인스턴스에 연결합니다.

  2. 사용자는 Python 스크립트로 SCT AWS를 시작하고 Oracle 코드를 PostgreSQL 코드로 변환한 다음 대상 DB 인스턴스에서 실행합니다.

  3. Python 스크립트는 소스 및 대상 DB 인스턴스에 대한 DMS AWS 복제 작업을 생성합니다.

  4. 사용자는 Python 스크립트를 배포하여 DMS AWS 작업을 시작한 다음 데이터 마이그레이션이 완료된 후 작업을 중지합니다.

자동화 및 규모 조정

단일 프로그램의 여러 기능에 대한 추가 파라미터와 보안 관련 변경 사항을 Python 스크립트에 추가하여 이 마이그레이션을 자동화할 수 있습니다. 

도구

  • AWS 명령줄 인터페이스(AWS CLI)는 명령줄 쉘의 명령을 통해 AWS 서비스와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.

  • AWS CloudFormationWord는 AWS 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 리전의 수명 주기 전반에 걸쳐 리소스를 관리하는 데 도움이 됩니다. 이 패턴은 Python 스크립트를 사용하여 .csv 입력 파일을 .json 입력 파일로 변환합니다. .json 파일은 CLI AWS 명령에서 Amazon 리소스 이름(AWS CloudFormation ), 마이그레이션 유형, 작업 설정 및 테이블 매핑을 사용하여 여러 AWS Word 복제 작업을 생성하는 DMS ARNsWord스택을 생성하는 데 사용됩니다.

  • AWS Database Migration Service(AWS DMS)를 사용하면 데이터 스토어를 AWS Cloud로 마이그레이션하거나 클라우드와 온프레미스 설정의 조합 간에 마이그레이션할 수 있습니다. 이 패턴은 AWS DMS를 사용하여 명령줄을 통해 실행되는 Python 스크립트로 작업을 생성, 시작 및 중지하고 AWS CloudFormation Word 템플릿을 생성합니다.

  • AWS Schema Conversion Tool(AWS SCT)은 소스 데이터베이스 스키마와 사용자 지정 코드의 대부분을 대상 데이터베이스와 호환되는 형식으로 자동 변환하여 이기종 데이터베이스 마이그레이션을 지원합니다. 이 패턴에는 설치된 AWS SCT 디렉터리의 AWSSchemaConversionToolBatch.jar 파일이 필요합니다.

코드

cli-sct-dms-cft.zip 파일(첨부됨)에는 이 패턴의 전체 소스 코드가 들어 있습니다.

에픽

작업설명필요한 기술

AWS SCT에서 실행되도록 AWS CLI를 구성합니다.

1. 다음 형식을 사용하여 database_migration.txt 파일에서 소스 및 대상 환경 구성 세부 정보를 구성합니다.

#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432

2. project_settings.xml, Oracle_PG_Test_Batch.xml및 파일의 요구 사항에 따라 SCT AWS 구성 파라미터를 수정합니다ORACLE-orcl-to-POSTGRESQL.xml.

DBA

run_aws_sct.py Python 스크립트를 실행합니다.

다음 명령을 사용하여 run_aws_sct.py Python 스크립트를 실행합니다.

$ python run_aws_sct.py database_migration.txt

Python 스크립트는 데이터베이스 객체를 Oracle에서 PostgreSQL로 변환하고 PostgreSQL 형식으로 SQL 파일을 생성합니다. 또한 스크립트는 데이터베이스 객체에 대한 자세한 권장 사항 및 변환 통계를 제공하는 Database migration assessment report .pdf 파일을 생성합니다.

DBA

Amazon RDS for PostgreSQL에서 객체를 생성합니다.

  1. 필요한 경우 SQL에서 생성된 SCT AWS 파일을 수동으로 수정합니다.

  2. SQL 파일을 실행하고 Amazon RDS for PostgreSQL DB 인스턴스에서 객체를 생성합니다.

DBA
작업설명필요한 기술

AWS DMS 복제 인스턴스를 생성합니다.

AWS Management Console에 로그인하고 AWS DMS 콘솔을 연 다음 요구 사항에 따라 구성된 복제 인스턴스를 생성합니다.

자세한 내용은 DMS AWS Word 설명서의 복제 인스턴스 생성 AWS 지원 설명서의 Word DMS 복제 인스턴스 생성 방법을 참조하세요. AWS

DBA

소스 엔드포인트를 생성합니다.

AWS DMS 콘솔에서 엔드포인트를 선택한 다음 요구 사항에 따라 Oracle 데이터베이스에 대한 소스 엔드포인트를 생성합니다. 

참고: 추가 연결 속성은 -2 값이 포함된 numberDataTypeScale이어야 합니다.

자세한 내용은 DMS AWS 설명서의 소스 및 대상 엔드포인트 생성을 참조하세요.

 

DBA

대상 엔드포인트를 생성합니다.

AWS DMS 콘솔에서 엔드포인트를 선택한 다음 요구 사항에 따라 PostgreSQL 데이터베이스의 대상 엔드포인트를 생성합니다. 

자세한 내용은 DMS AWS 설명서의 소스 및 대상 엔드포인트 생성을 참조하세요.

DevOps 엔지니어

AWS DMS에서 실행되도록 AWS CLI 복제 세부 정보를 구성합니다.

다음 형식을 사용하여 소스 엔드포인트 DMS AWS, 대상 엔드포인트 ARN 및 복제 인스턴스 ARN를 사용하여 dms-arn-list.txt 파일의 ARN 소스 및 대상 엔드포인트와 복제 세부 정보를 구성합니다.

#sourceARN,targetARN,repARN arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5 arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G
DBA

dms-create-task.py Python 스크립트를 실행하여 AWS DMS 작업을 생성합니다.

1. 다음 명령을 사용하여 dms-create-task.py Python 스크립트를 실행합니다.

$ python dms-create-task.py database_migration.txt dms-arn-list.txt <cft-stack-name> <migration-type>

  • database_migration.txt은(는) 데이터베이스 마이그레이션 텍스트 파일임

  • dms-arn-list.txt는 ARN Word용 DMS AWS 목록입니다.

  • <cft-stack-name>는 사용자 정의 AWS CloudFormation Word 스택 이름입니다.

  • <migration-type>는 마이그레이션 유형(전체 로드, cdc 또는 full-load-and-cdc)입니다.

2. 마이그레이션 유형에 따라 다음 명령을 사용하여 세 가지 유형의 DMS AWS Word 작업을 생성할 수 있습니다.

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack cdc

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load-and-cdc

3. AWS CloudFormation Word 스택 및 AWS DMS 작업이 생성됩니다. 

 

DBA

AWS DMS 작업이 준비되었는지 확인합니다.

AWS 콘솔의 상태 섹션에서 DMS AWS 작업이 Ready 상태인지 확인합니다.

DBA
작업설명필요한 기술

AWS DMS 작업을 시작합니다.

다음 명령을 사용하여 dms-start-task.py Python 스크립트를 실행합니다.

$ python dms-start-task.py start ‘<cdc-start-datetime>’

참고: 시작 날짜 및 시간은 'DD-MON-YYYY' 또는 'YYYY-MM-DDTHH:MI:SS' 타임스탬프 데이터 유형 형식이어야 합니다(예를 들어, ‘01-Dec-2019’ 또는 ‘2018-03-08T12:12:12’).

AWS DMS 콘솔의 작업 페이지에 있는 마이그레이션 작업의 테이블 통계 탭에서 AWS DMS 작업 상태를 검토할 수 있습니다.

DBA

데이터를 검증합니다.

  1. 전체 로드 마이그레이션이 완료되면 지속적인 데이터 변경(CDC)을 위해 태스크가 계속 실행됩니다.

  2. CDC가 완료되거나 더 이상 마이그레이션할 필요가 없는 경우 Oracle 및 PostgreSQL 데이터베이스의 마이그레이션 작업 결과 및 데이터를 검토하고 검증합니다.

  3. AWS DMS 콘솔의 작업 페이지에 있는 데이터베이스 마이그레이션 작업의 테이블 통계 탭에서 상태 및 수 열(Validation state, Validation pendingValidation failed, Validation suspended, 및 Validation details)을 확인하여 데이터를 검증할 수 있습니다. 

자세한 내용은 AWS DMS 설명서의 Word Word 데이터 검증을 참조하세요. AWS DMS

DBA

AWS DMS 작업을 중지합니다.

다음 명령을 사용하여 Python 스크립트를 실행합니다.

$ python dms-start-task.py stop

참고: DMS AWS Word 작업은 검증 failed상태에 따라 상태로 중지될 수 있습니다. 자세한 내용은 추가 정보 섹션의 문제 해결 표를 참조하세요.

DBA

문제 해결

문제Solution

AWS SCT 소스 및 대상 테스트 연결 실패

들어오는 트래픽을 수락하도록 JDBC 드라이버 버전 및 VPC 보안 그룹 인바운드 규칙을 구성합니다.

소스 또는 대상 엔드포인트 테스트 실행 실패

엔드포인트 설정 및 복제 인스턴스가 Available 상태에 있는지 확인합니다. 엔드포인트 연결 상태가 Successful 인지 확인합니다. 

자세한 내용은 DMS AWS Support 설명서의 Word 엔드포인트 연결 실패 문제를 해결하려면 어떻게 해야 합니까?를 참조하세요. AWS

전체 로드 실행 실패

소스 및 대상 데이터베이스의 데이터 유형 및 크기가 일치하는지 확인합니다. 

자세한 내용은 AWS DMS 설명서의 Word Word에서 마이그레이션 작업 문제 해결을 참조하세요. AWS DMS

실행 오류 검증

비 프라이머리 키 테이블은 검증되지 않으므로 테이블에 프라이머리 키가 있는지 확인합니다.

테이블에 프라이머리 키와 오류가 있는 경우 소스 엔드포인트의 추가 연결 속성에 numberDataTypeScale=-2이(가) 있는지 확인합니다.

자세한 내용은 AWS 설명서의 Word Word, DMS 및 문제 해결의 소스로 Oracle을 사용할 때 추가 연결 속성을 참조하세요. OracleSettings https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html#CHAP_Validating.Troubleshooting AWS DMS

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.