구체화된 뷰 및를 사용하여 Oracle 8i 또는 9i에서 Amazon RDS for PostgreSQL로 마이그레이션 AWS DMS - 권장 가이드

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

구체화된 뷰 및를 사용하여 Oracle 8i 또는 9i에서 Amazon RDS for PostgreSQL로 마이그레이션 AWS DMS

작성자: Kumar Babu P G(AWS) 및 Pragnesh Patel(AWS)

요약

이 패턴은 온프레미스 레거시 Oracle 8i 또는 9i 데이터베이스를 PostgreSQL용 Amazon Relational Database Service(AmazonRDS) 또는 Amazon Aurora Postgre SQL호환 에디션으로 마이그레이션하는 방법을 설명합니다. 

AWS Database Migration Service(AWS DMS)는 Oracle 8i 또는 9i를 소스로 지원하지 않으므로이 패턴은 Oracle 10g 또는 11gDMS와 같이 AWS와 호환되는 중간 Oracle 데이터베이스 인스턴스를 사용합니다. 또한 구체화된 뷰 기능을 사용하여 소스 Oracle 8i/9i 인스턴스에서 중간 Oracle 10g/11g 인스턴스로 데이터를 마이그레이션합니다.

AWS Schema Conversion Tool(AWS SCT)는 데이터베이스 스키마를 변환하고 데이터를 대상 PostgreSQL 데이터베이스로 AWS DMS 마이그레이션합니다. 

이 패턴은 데이터베이스 다운타임을 최소화하면서 기존 Oracle 데이터베이스에서 마이그레이션하려는 사용자에게 도움이 됩니다. 이 구현에서 가동 중지 시간은 대상 데이터베이스에서 모든 외부 키, 트리거 및 시퀀스를 생성하거나 검증하는 데 걸리는 시간으로 제한됩니다. 

이 패턴은 Oracle 10g/11g 데이터베이스가 설치된 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용하여 데이터를 AWS DMS 스트리밍하는 데 도움이 됩니다. 온프레미스 Oracle 데이터베이스에서 중간 Oracle 인스턴스로의 스트리밍 복제를 일시적으로 일시 중지하여 AWSDMS가 데이터 검증을 따라잡거나 다른 데이터 검증 도구를 사용할 수 있도록 할 수 있습니다. PostgreSQL DB 인스턴스와 중간 Oracle 데이터베이스는 AWS DMS가 현재 변경 사항 마이그레이션을 완료하면 동일한 데이터를 갖게 됩니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 데이터베이스 크기 제한: 64TB

제품 버전

  • 소스 데이터베이스: Oracle 8i 또는 9i

  • 중간 데이터베이스: Oracle 10g 또는 11g

  • PostgreSQL 10.17 이상

아키텍처

소스 기술 스택  

  • Oracle 8i 또는 9i 데이터베이스 

대상 기술 스택  

  • Amazon RDS for PostgreSQL 또는 Aurora Postgre SQL호환

대상 아키텍처 

레거시 Oracle 데이터베이스에서 Amazon RDS 또는 Aurora로 마이그레이션하기 위한 아키텍처

도구

  • AWS DMS는 데이터베이스를 빠르고 안전하게 마이그레이션하는 데 도움이 됩니다. 소스 데이터베이스는 마이그레이션 중에도 완전히 작동하여 데이터베이스에 의존하는 애플리케이션의 가동 중지 시간을 최소화합니다.는 가장 널리 사용되는 상용 및 오픈 소스 데이터베이스로 데이터를 마이그레이션할 AWS DMS 수 있습니다.

  • AWS SCT는 소스 데이터베이스 스키마와 뷰, 저장 프로시저 및 함수를 포함한 대부분의 데이터베이스 코드 객체를 대상 데이터베이스와 호환되는 형식으로 자동으로 변환합니다. 자동으로 변환할 수 없는 객체는 마이그레이션을 완료하기 위해 수동으로 변환할 수 있도록 명확하게 표시됩니다. AWSSCT는 애플리케이션 소스 코드에서 임베디드 SQL 문을 스캔하고 데이터베이스 스키마 변환 프로젝트의 일부로 변환할 수도 있습니다. 이 프로세스 중에는 레거시 Oracle 및 SQL Server 함수를 AWS 동등한 함수로 변환하여 클라우드 네이티브 코드 최적화를 AWS SCT 수행하여 데이터베이스를 마이그레이션하는 동안 애플리케이션을 현대화하는 데 도움이 됩니다. 스키마 변환이 완료되면는 내장 데이터 마이그레이션 에이전트를 사용하여 다양한 데이터 웨어하우스에서 Amazon Redshift로 데이터를 마이그레이션하는 데 도움이 될 AWS SCT 수 있습니다. 

모범 사례

구체화된 뷰를 새로 고치는 모범 사례는 다음 Oracle 설명서를 참조하세요.

에픽

작업설명필요한 기술

EC2 인스턴스의 네트워크를 설정합니다.

가상 프라이빗 클라우드(VPC), 서브넷, 인터넷 게이트웨이, 라우팅 테이블 및 보안 그룹을 생성합니다.

AWS SysAdmin

EC2 인스턴스를 생성합니다.

EC2 인스턴스의 Amazon Machine Image(AMI)를 선택합니다. 인스턴스 크기를 선택하고 인스턴스 세부 정보, 즉 이전 단계의 인스턴스 수(1), VPC 및 서브넷, 퍼블릭 IP 자동 할당 및 기타 옵션을 구성합니다. 스토리지를 추가하고, 보안 그룹을 구성하여 인스턴스를 시작합니다. 메시지가 표시되면 다음 단계를 위해 키 페어를 생성하고 저장합니다.

AWS SysAdmin

EC2 인스턴스에 Oracle을 설치합니다.

라이선스와 필요한 Oracle 바이너리를 획득하고 EC2 인스턴스에 Oracle 10g 또는 11g를 설치합니다.

DBA

Oracle 네트워킹을 구성합니다.

listener.ora의 항목을 수정하거나 추가하여 온프레미스 소스 Oracle 8i/9i 데이터베이스에 연결한 다음 데이터베이스 링크를 생성합니다.

DBA

구체화된 뷰를 생성합니다.

소스 Oracle 8i/9i 데이터베이스에서 복제할 데이터베이스 객체를 식별한 다음 데이터베이스 링크를 사용하여 모든 객체에 대한 구체화된 뷰를 생성합니다.

DBA

스크립트를 배포하여 필요한 간격으로 구체화된 뷰를 새로 고칩니다.

Amazon EC2 Oracle 10g/11g 인스턴스에서 필요한 간격으로 구체화된 뷰를 새로 고치는 스크립트를 개발하고 배포합니다. 증분 새로 고침 옵션을 사용하여 구체화된 뷰를 새로 고칩니다.

DBA
작업설명필요한 기술

AWS를 설정합니다SCT.

새 보고서를 생성한 다음 소스로 Oracle에 연결하고 대상으로 PostgreSQL에 연결합니다. 프로젝트 설정에서 SQL 스크립팅 탭을 엽니다. 대상 SQL 스크립트를 다중 파일로 변경합니다. (AWSSCT는 Oracle 8i/9i 데이터베이스를 지원하지 않으므로 중간 Oracle 10g/11g 인스턴스에서 스키마 전용 덤프를 복원하고 AWS의 소스로 사용해야 합니다SCT.)

DBA

Oracle 데이터베이스 스키마를 변환합니다.

작업 탭에서 보고서 생성, 스키마 변환, 로 저장을 차례로 SQL선택합니다.

DBA

SQL 스크립트를 수정합니다.

모범 사례에 따라 수정합니다. 예를 들어 적절한 데이터 유형으로 전환하고 Oracle별 함수에 대한 PostgreSQL 동등 항목을 개발합니다.

DBA, 개발DBA
작업설명필요한 기술

Amazon RDS DB 인스턴스를 생성합니다.

Amazon RDS 콘솔에서 새 PostgreSQL DB 인스턴스를 생성합니다.

AWS SysAdmin, DBA

DB 인스턴스를 구성합니다.

DB 엔진 버전, DB 인스턴스 클래스, 다중 AZ 배포, 스토리지 유형, 할당된 스토리지를 지정합니다. DB 인스턴스 식별자, 마스터 사용자 이름, 마스터 암호를 입력합니다.

AWS SysAdmin, DBA

네트워크 및 보안을 구성합니다.

VPC, 서브넷 그룹, 퍼블릭 액세스 가능성, 가용 영역 기본 설정 및 보안 그룹을 지정합니다.

DBA, SysAdmin

데이터베이스 옵션을 구성합니다.

데이터베이스 이름, 포트, 파라미터 그룹, 암호화, 마스터 키를 지정합니다.

DBA, AWS SysAdmin

백업을 구성합니다.

백업 보존 기간, 백업 기간, 시작 시간, 기간 및 스냅샷에 태그를 복사할지 여부를 지정합니다.

AWS SysAdmin, DBA

모니터링 옵션을 구성합니다.

향상된 모니터링 및 성능 개선 도우미를 활성화하거나 비활성화합니다.

AWS SysAdmin, DBA

유지 관리 옵션을 구성합니다.

마이너 버전 자동 업그레이드, 유지 관리 기간, 시작 날짜, 시간 및 기간을 지정합니다.

AWS SysAdmin, DBA

에서 마이그레이션 전 스크립트를 실행합니다AWSSCT.

대상 Amazon RDS for PostgreSQL 인스턴스에서 다른 수정 사항과 AWS SCT 함께 SQL의 스크립트를 사용하여 데이터베이스 스키마를 생성합니다. 여기에는 사용자 생성, 데이터베이스 생성, 스키마 생성, 테이블, 뷰, 함수 및 기타 코드 객체를 포함하여 여러 스크립트를 실행하는 것이 포함될 수 있습니다.

AWS SysAdmin, DBA
작업설명필요한 기술

에서 복제 인스턴스를 생성합니다AWSDMS.

이름, 인스턴스 클래스, VPC (EC2인스턴스와 동일), 다중 AZ 및 퍼블릭 액세스 가능성 필드를 작성합니다. 고급 구성 섹션에서 할당된 스토리지, 서브넷 그룹, 가용 영역, VPC 보안 그룹 및 AWS Key Management Service(AWS KMS) 키를 지정합니다.

AWS SysAdmin, DBA

소스 데이터베이스 엔드포인트를 생성합니다.

엔드포인트 이름, 유형, 소스 엔진(Oracle), 서버 이름(인EC2스턴스의 프라이빗 DNS 이름), 포트, SSL 모드, 사용자 이름, 암호, SID, VPC (복제 인스턴스가 VPC 있는를 지정) 및 복제 인스턴스를 지정합니다. 연결을 테스트하려면 테스트 실행 선택한 다음 엔드포인트를 생성합니다. maxFileSizenumberDataType스케일과 같은 고급 설정을 구성할 수도 있습니다.

AWS SysAdmin, DBA

Amazon RDS for PostgreAWSDMS에 연결합니다SQL.

PostgreSQL 데이터베이스가 다른에 있는 경우 VPCs에 대한 연결을 위한 마이그레이션 보안 그룹을 생성합니다VPC.

AWS SysAdmin, DBA

대상 데이터베이스 엔드포인트를 생성합니다.

엔드포인트 이름, 유형, 소스 엔진(PostgreSQL), 서버 이름(Amazon RDS 엔드포인트), 포트, SSL 모드, 사용자 이름, 암호, 데이터베이스 이름, VPC (복제 인스턴스가 VPC 있는를 지정) 및 복제 인스턴스를 지정합니다. 연결을 테스트하려면 테스트 실행 선택한 다음 엔드포인트를 생성합니다. maxFileSizenumberDataType스케일과 같은 고급 설정을 구성할 수도 있습니다.

AWS SysAdmin, DBA

AWS DMS 복제 작업을 생성합니다.

작업 이름, 복제 인스턴스, 소스 및 대상 엔드포인트, 복제 인스턴스를 지정합니다. 마이그레이션 유형에서 기존 데이터 마이그레이션 및 진행 중인 변경 사항 복제를 선택합니다. 생성 시 작업 시작 확인란을 선택 취소합니다.

AWS SysAdmin, DBA

AWS DMS 복제 작업 설정을 구성합니다.

대상 테이블 준비 모드에서 아무 작업 안 함을 선택합니다. 전체 로드가 완료된 후 작업을 중지(프라이머리 키를 생성)합니다. 제한 또는 전체 LOB 모드를 지정하고 제어 테이블을 활성화합니다. 선택적으로 CommitRate 고급 설정을 구성할 수 있습니다.

DBA

테이블 매핑을 구성합니다.

테이블 매핑 섹션에서 마이그레이션에 포함된 모든 스키마의 모든 테이블에 대한 포함 규칙을 생성한 다음 제외 규칙을 생성합니다. 스키마, 테이블 및 열 이름을 소문자로 변환하는 세 가지 변환 규칙을 추가하고, 이 특정 마이그레이션에 필요한 다른 규칙을 추가합니다.

DBA

작업을 시작합니다.

복제 작업을 시작합니다. 전체 로드가 실행 중인지 확인합니다. 기본 Oracle 데이터베이스에서 ALTER SYSTEM SWITCH LOGFILE을 실행하여 작업을 시작합니다.

DBA

에서 중간 마이그레이션 스크립트를 실행합니다AWSSCT.

Amazon RDS for Postgre에서 create_index.sql 및 스크립트를 SQL실행합니다create_constraint.sql(전체 스키마가 처음에 생성되지 않은 경우).

DBA

작업을 재개하여 변경 데이터 캡처()를 계속합니다CDC.

Amazon RDS for PostgreSQL DB 인스턴스VACUUM에서를 실행하고 AWS DMS 작업을 다시 시작하여 캐시된 CDC 변경 사항을 적용합니다.

DBA
작업설명필요한 기술

AWS DMS 로그 및 검증 테이블을 확인합니다.

복제 또는 검증 오류를 확인하고 수정하십시오.

DBA

온프레미스 Oracle 데이터베이스와 해당 종속성 사용을 중단합니다.

모든 Oracle 종속성을 중지하고, Oracle 데이터베이스의 리스너를 종료한 다음, ALTER SYSTEM SWITCH LOGFILE을 실행합니다. 활동이 표시되지 않으면 AWS DMS 작업을 중지합니다.

DBA

에서 마이그레이션 후 스크립트를 실행합니다AWSSCT.

Amazon RDS for Postgre에서 다음 스크립트를 SQL실행합니다create_foreign_key_constraint.sql and create_triggers.sql. 시퀀스가 최신 상태인지 확인합니다.

DBA

추가 Amazon RDS for PostgreSQL 단계를 완료합니다.

필요한 경우 Oracle과 일치하도록 시퀀스를 늘리고, VACUUMANALYZE을 실행하고, 규정 준수를 위한 스냅샷을 만듭니다.

DBA

Amazon RDS for Postgre에 대한 연결을 엽니다SQL.

Amazon RDS for Postgre에서 AWS DMS 보안 그룹을 제거하고SQL, 프로덕션 보안 그룹을 추가하고, 애플리케이션을 새 데이터베이스로 지정합니다.

DBA

AWS DMS 객체를 정리합니다.

엔드포인트, 복제 작업, 복제 인스턴스 및 EC2 인스턴스를 제거합니다.

SysAdmin, DBA

관련 리소스