쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS DMS를 사용하여 Oracle 파티션형 테이블을 PostgreSQL로 마이그레이션하기 - 권장 가이드

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

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

AWS DMS를 사용하여 Oracle 파티션형 테이블을 PostgreSQL로 마이그레이션하기

작성: Saurav Mishra(AWS) 및 Eduardo Valentim(AWS)

요약

이 패턴은 네이티브 파티셔닝을 지원하지 않는 AWS Database Migration Service(AWS DMS)를 사용하여 파티션을 나눈 테이블을 Oracle에서 PostgreSQL로 빠르게 로드하는 방법을 설명합니다. 대상 PostgreSQL 데이터베이스는 Amazon Elastic Compute Cloud(Amazon EC2)에 설치하거나 PostgreSQL용 Amazon Relational Database Service(Amazon RDS) 또는 Amazon Aurora PostgreSQL-Compatible 에디션 DB 인스턴스가 될 수 있습니다. 

파티션을 나눈 테이블 업로드에는 다음 단계가 포함됩니다.

  1. Oracle 파티션 테이블과 비슷하지만 파티션을 포함하지 않는 상위 테이블을 생성합니다.

  2. 1단계에서 만든 상위 테이블을 상속할 하위 테이블을 생성합니다.

  3. 상위 테이블에서 삽입을 처리하는 프로시저 함수와 트리거를 생성합니다.

하지만, 트리거는 모든 삽입에 대해 실행되므로 AWS DMS를 사용한 초기 로드는 매우 느릴 수 있습니다.

Oracle에서 PostgreSQL 9.0으로의 초기 로드 속도를 높이기 위해 이 패턴은 각 파티션에 대해 별도의 AWS DMS 작업을 생성하고 해당 하위 테이블을 로드합니다. 그런 다음 컷오버 중에 트리거를 생성합니다. 

PostgreSQL 버전 10은 기본 분할을 지원합니다. 하지만 경우에 따라 상속된 파티셔닝을 사용하기로 결정할 수도 있습니다. 자세한 내용은 추가 정보 섹션을 참조하세요.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • 파티셔닝된 테이블이 있는 소스 Oracle 데이터베이스

  • AWS 기반 PostgreSQL 데이터베이스

제품 버전

  • PostgreSQL 9.0

아키텍처

소스 기술 스택

  • Oracle에 있는 파티셔닝된 테이블

대상 기술 스택

  • PostgreSQL에 있는 파티셔닝된 테이블(Amazon EC2, Amazon RDS for PostgreSQL, 또는 Aurora PostgreSQL 기반)

대상 아키텍처

Oracle의 분할된 테이블 데이터가 각 파티션의 AWS DMS 작업으로 이동한 다음 PostgreSQL로 이동합니다.

도구

  • AWS Database Migration Service(AWS DMS)를 사용하면 데이터 스토어를 AWS 클라우드로 마이그레이션하거나 클라우드와 온프레미스 설정 조합 간에 마이그레이션할 수 있습니다.

에픽

작업설명필요한 기술

PostgreSQL에서 테이블을 생성합니다.

파티션에 필요한 검사 조건을 사용하여 PostgreSQL에서 상위 및 해당 하위 테이블을 생성합니다.

DBA

각 파티션에 대해 AWS DMS 작업을 생성합니다.

AWS DMS 작업에 파티션의 필터 조건을 포함합니다. 파티션을 해당하는 PostgreSQL 하위 테이블에 매핑합니다.

DBA

CDC(전체 로드 및 변경 데이터 캡처)를 사용해 AWS DMS 작업을 실행합니다.

StopTaskCachedChangesApplied 파라미터가 true로 설정되어 있고 StopTaskCachedChangesNotApplied 파라미터가 false로 설정되어 있어야 합니다.

DBA

AWS DMS 설정

작업설명필요한 기술

PostgreSQL에서 테이블을 생성합니다.

파티션에 필요한 검사 조건을 사용하여 PostgreSQL에서 상위 및 해당 하위 테이블을 생성합니다.

DBA

각 파티션에 대해 AWS DMS 작업을 생성합니다.

AWS DMS 작업에 파티션의 필터 조건을 포함합니다. 파티션을 해당하는 PostgreSQL 하위 테이블에 매핑합니다.

DBA

CDC(전체 로드 및 변경 데이터 캡처)를 사용해 AWS DMS 작업을 실행합니다.

StopTaskCachedChangesApplied 파라미터가 true로 설정되어 있고 StopTaskCachedChangesNotApplied 파라미터가 false로 설정되어 있어야 합니다.

DBA
작업설명필요한 기술

복제 작업을 중지합니다.

작업을 중지하기 전에 소스와 대상이 동기화되어 있는지 확인합니다.

DBA

상위 테이블에 트리거를 생성합니다.

부모 테이블은 모든 삽입 및 업데이트 명령을 수신하므로 파티셔닝 조건에 따라 이러한 명령을 각 하위 테이블로 라우팅하는 트리거를 만듭니다.

DBA

전환

작업설명필요한 기술

복제 작업을 중지합니다.

작업을 중지하기 전에 소스와 대상이 동기화되어 있는지 확인합니다.

DBA

상위 테이블에 트리거를 생성합니다.

부모 테이블은 모든 삽입 및 업데이트 명령을 수신하므로 파티셔닝 조건에 따라 이러한 명령을 각 하위 테이블로 라우팅하는 트리거를 만듭니다.

DBA

관련 리소스

추가 정보

PostgreSQL 버전 10은 네이티브 파티셔닝을 지원하지만 다음과 같은 사용 사례에서는 상속된 파티셔닝을 사용하기로 결정할 수 있습니다.

  • 파티셔닝에서는 모든 파티션에 상위 파티션과 동일한 열 집합이 있어야 한다는 규칙이 적용되지만 테이블 상속은 하위 파티션에 추가 열을 가질 수 있도록 지원합니다.

  • 테이블 상속은 다중 상속을 지원합니다.

  • 선언적 파티셔닝은 목록 및 범위 파티셔닝만 지원합니다. 테이블 상속을 사용하면 데이터를 원하는 대로 나눌 수 있습니다. 그러나 제약 조건 제외가 파티션을 효과적으로 정리하지 못하면 쿼리 성능이 저하됩니다.

  • 일부 작업에서는 선언적 파티셔닝을 사용할 때 테이블 상속을 사용할 때보다 더 강력한 잠금 장치가 필요합니다. 예를 들어, 파티셔닝 테이블에 파티션을 추가하거나 제거하려면 상위 테이블에 대해 ACCESS EXCLUSIVE 잠금 장치가 필요한 반면, 일반 상속에는 SHARE UPDATE EXCLUSIVE 잠금 장치만으로도 충분합니다.

별도의 작업 파티션을 사용하는 경우 AWS DMS 검증 문제가 있으면 파티션을 다시 로드할 수도 있습니다. 성능 및 복제 제어를 개선하려면 별도의 복제 인스턴스에서 작업을 실행하십시오.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.