

# pglogical을 사용하여 인스턴스 간 데이터 동기화
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical"></a>

현재 사용 가능한 모든 RDS for PostgreSQL 버전은 `pglogical` 확장을 지원합니다. pglogical 확장은 PostgreSQL 버전 10에서 도입된 기능적으로 유사한 논리적 복제 기능보다 먼저 출시되었습니다. 자세한 내용은 [Amazon RDS for PostgreSQL에 대한 논리적 복제 수행](PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication.md) 단원을 참조하세요.

`pglogical` 확장은 둘 이상의 간의 논리적 복제를 지원합니다. RDS for PostgreSQL DB 인스턴스. 서로 다른 PostgreSQL 버전 간의 복제와 PostgreSQL DB 인스턴스용 RDS 및 Aurora PostgreSQL DB 클러스터에서 실행되는 데이터베이스 간의 복제도 지원합니다. `pglogical` 확장은 게시-구독 모델을 사용하여 게시자의 테이블 및 기타 객체(예: 시퀀스)의 변경 사항을 구독자에 복제합니다. 이 확장은 복제 슬롯을 사용하여, 다음과 같이 게시자 노드의 변경 사항이 구독자 노드로 동기화되게 합니다.
+ *게시자 노드*는 다른 노드에 복제할 데이터의 소스인 RDS for PostgreSQL DB 인스턴스입니다. 게시자 노드는 게시 세트에서 복제될 테이블을 정의합니다.
+ *구독자 노드*는 게시자로부터 WAL 업데이트를 받는 RDS for PostgreSQL DB 인스턴스입니다. 구독자는 구독을 생성하여 게시자에 연결하고 디코딩된 WAL 데이터를 얻습니다. 구독자가 구독을 생성하면 게시자 노드에서 복제 슬롯이 생성됩니다.

아래에서 `pglogical` 확장 설정 관련 정보를 확인할 수 있습니다.

**Topics**
+ [plogical 확장에 대한 요구 사항 및 제한](#Appendix.PostgreSQL.CommonDBATasks.pglogical.requirements-limitations)
+ [pglogical 확장 설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.md)
+ [RDS for PostgreSQL DB 인스턴스용 논리적 복제 설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.setup-replication.md)
+ [메이저 업그레이드 후 논리적 복제 재설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.recover-replication-after-upgrade.md)
+ [RDS for PostgreSQL용 논리적 복제 슬롯 관리](Appendix.PostgreSQL.CommonDBATasks.pglogical.handle-slots.md)
+ [plogical 확장용 파라미터 참조](Appendix.PostgreSQL.CommonDBATasks.pglogical.reference.md)

## plogical 확장에 대한 요구 사항 및 제한
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.requirements-limitations"></a>

현재 사용 가능한 모든 RDS for PostgreSQL 릴리스는 `pglogical` 확장을 지원합니다.

게시자 노드와 구독자 노드 모두가 논리적 복제를 할 수 있도록 설정되어야 합니다.

게시자에서 구독자로 복제할 테이블은 이름과 스키마가 동일해야 합니다. 또한 이러한 테이블은 동일한 열을 포함해야 하며, 각 열은 동일한 데이터 유형을 사용해야 합니다. 게시자와 구독자 테이블 모두 프라이머리 키가 동일해야 합니다. PRIMARY KEY만 고유 제약 조건으로 사용하는 것이 좋습니다.

구독자 노드의 테이블에는 CHECK 제약 조건 및 NOT NULL 제약 조건에 대해 게시자 노드의 테이블에 있는 것보다 더 많은 허용 제약 조건이 존재할 수 있습니다.

`pglogical` 확장은 PostgreSQL(버전 10 이상)에 내장된 논리적 복제 기능에서는 지원하지 않는 양방향 복제 같은 기능을 제공합니다. 자세한 내용은 [pglogical을 사용한 PostgreSQL 양방향 복제](https://aws.amazon.com/blogs/database/postgresql-bi-directional-replication-using-pglogical/)를 참조하십시오.