기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 인스턴스가 될 수 있습니다.
파티션을 나눈 테이블 업로드에는 다음 단계가 포함됩니다.
Oracle 파티션 테이블과 비슷하지만 파티션을 포함하지 않는 상위 테이블을 생성합니다.
1단계에서 만든 상위 테이블을 상속할 하위 테이블을 생성합니다.
상위 테이블에서 삽입을 처리하는 프로시저 함수와 트리거를 생성합니다.
하지만, 트리거는 모든 삽입에 대해 실행되므로 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 기반)
대상 아키텍처

도구
AWS Database Migration Service(AWS DMS)를 사용하면 데이터 스토어를 AWS 클라우드로 마이그레이션하거나 클라우드와 온프레미스 설정 조합 간에 마이그레이션할 수 있습니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
PostgreSQL에서 테이블을 생성합니다. | 파티션에 필요한 검사 조건을 사용하여 PostgreSQL에서 상위 및 해당 하위 테이블을 생성합니다. | DBA |
각 파티션에 대해 AWS DMS 작업을 생성합니다. | AWS DMS 작업에 파티션의 필터 조건을 포함합니다. 파티션을 해당하는 PostgreSQL 하위 테이블에 매핑합니다. | DBA |
CDC(전체 로드 및 변경 데이터 캡처)를 사용해 AWS DMS 작업을 실행합니다. |
| DBA |
작업 | 설명 | 필요한 기술 |
---|---|---|
복제 작업을 중지합니다. | 작업을 중지하기 전에 소스와 대상이 동기화되어 있는지 확인합니다. | DBA |
상위 테이블에 트리거를 생성합니다. | 부모 테이블은 모든 삽입 및 업데이트 명령을 수신하므로 파티셔닝 조건에 따라 이러한 명령을 각 하위 테이블로 라우팅하는 트리거를 만듭니다. | DBA |
관련 리소스
추가 정보
PostgreSQL 버전 10은 네이티브 파티셔닝을 지원하지만 다음과 같은 사용 사례에서는 상속된 파티셔닝을 사용하기로 결정할 수 있습니다.
파티셔닝에서는 모든 파티션에 상위 파티션과 동일한 열 집합이 있어야 한다는 규칙이 적용되지만 테이블 상속은 하위 파티션에 추가 열을 가질 수 있도록 지원합니다.
테이블 상속은 다중 상속을 지원합니다.
선언적 파티셔닝은 목록 및 범위 파티셔닝만 지원합니다. 테이블 상속을 사용하면 데이터를 원하는 대로 나눌 수 있습니다. 그러나 제약 조건 제외가 파티션을 효과적으로 정리하지 못하면 쿼리 성능이 저하됩니다.
일부 작업에서는 선언적 파티셔닝을 사용할 때 테이블 상속을 사용할 때보다 더 강력한 잠금 장치가 필요합니다. 예를 들어, 파티셔닝 테이블에 파티션을 추가하거나 제거하려면 상위 테이블에 대해
ACCESS EXCLUSIVE
잠금 장치가 필요한 반면, 일반 상속에는SHARE UPDATE EXCLUSIVE
잠금 장치만으로도 충분합니다.
별도의 작업 파티션을 사용하는 경우 AWS DMS 검증 문제가 있으면 파티션을 다시 로드할 수도 있습니다. 성능 및 복제 제어를 개선하려면 별도의 복제 인스턴스에서 작업을 실행하십시오.