PostgreSQL 물리 복제 vs 논리 복제 비교와 Postgres Distributed(PGD)의 장점
Florin Irion
2025년 6월 16일
데이터베이스 관리에서 데이터 가용성 확보는 매우 중요합니다. PostgreSQL은 이를 위해 강력한 복제(replication) 기능을 제공합니다. PostgreSQL은 크게 두 가지 복제 방식을 지원합니다: **물리 복제(physical replication)**와 **논리 복제(logical replication)**입니다. 두 방식 모두 데이터를 여러 서버에 복제하는 목적은 같지만, 그 작동 방식은 매우 다릅니다. 이 글에서는 두 복제 방식의 차이점과 함께, **EDB의 Postgres Distributed(PGD)**가 두 방식을 어떻게 확장하여 더 유연하고 고도화된 분산 데이터베이스 솔루션을 제공하는지를 살펴보겠습니다.
물리 복제: 바이트 단위의 완전한 복사
PostgreSQL의 물리 복제는 스토리지 레벨에서 동작합니다. 즉, 기본(primary) 서버의 내용을 바이트 단위로 정확히 복사하여 하나 이상의 대기(standby) 서버에 유지하는 방식입니다. 이는 기본 서버에서 생성되는 **WAL(Write Ahead Log)**을 지속적으로 읽어 standby 서버로 전송하고, standby 서버가 이를 적용하는 방식으로 이루어집니다. WAL에는 디스크의 어느 위치에서 어떤 데이터가 어떤 값으로 변경되었는지가 상세히 기록되어 있습니다.
✅ 물리 복제의 주요 특징
- 바이너리 복사 방식
- 낮은 오버헤드
- 전체 데이터베이스 복제
- 선택적 복제 불가
- 동일 버전 필수
- 읽기 확장성(Read Scalability)
- 고가용성 확보
물리 복제는 낮은 오버헤드로 완전한 복제본을 생성하며, standby 서버를 읽기 전용으로 활용해 읽기 부하 분산도 가능합니다. 그러나 단점으로는 PostgreSQL의 동일 주요 버전을 요구하며, 전체 데이터베이스만 복제 가능하다는 점이 있습니다. 또한 자동 장애 조치(failover)를 위해서는 별도 도구가 필요합니다.
논리 복제: 선택 가능한 해석된 변경 사항
논리 복제는 물리 복제처럼 바이트가 아닌, 데이터 자체에 초점을 맞춘 고수준 복제 방식입니다. 놀랍게도 논리 복제도 WAL에서 데이터를 가져오지만, 여기에 **디코더(decoder)**가 있어 이를 INSERT, UPDATE, DELETE 같은 DML 문으로 변환해 전송합니다.
✅ 논리 복제의 주요 특징
- 논리 디코딩 기반
- 선택적 복제 가능
- 버전 간 호환 가능
- 스키마 유연성 제공
- 오버헤드 증가 가능성
- 충돌 가능성 존재
- DDL 수동 적용 필요
논리 복제의 가장 큰 장점은 복제 대상과 범위를 세밀하게 제어할 수 있다는 점입니다. 복제하고 싶은 테이블이나 특정 컬럼만 선택적으로 설정할 수 있으며, PostgreSQL의 버전 간 복제도 지원하여 무중단 업그레이드가 가능합니다. 또한 복제 대상 스키마도 유연하게 조정할 수 있습니다.
다만, WAL 디코딩 및 적용으로 인한 오버헤드와, 충돌 발생 시 수동 조정이 필요하다는 점, 그리고 DDL이 자동 복제되지 않음은 고려해야 할 요소입니다.
PGD(Postgres Distributed): 복제를 한 단계 끌어올리다
**EDB의 Postgres Distributed(PGD)**는 물리 복제와 논리 복제의 한계를 극복하고자 만들어진 고가용성, 액티브-액티브 복제 및 분산 데이터 처리 솔루션입니다.
🔧 물리 복제의 한계를 해결하는 PGD의 기능
- 액티브-액티브 아키텍처
- 선택적 복제(Replication Sets)
- 버전 간 호환성 (PostgreSQL 12~17 지원)
- 병렬 복제 처리(Parallel Apply)
- 내장 라우팅 기능(Connection Manager)
PGD는 복제 노드 간 모두 쓰기 가능한 액티브-액티브 구조를 제공하며, 노드를 무중단으로 추가/제거할 수 있습니다. Replication Set
을 이용해 필요한 데이터만 특정 노드로 복제하는 것도 가능하죠. 또한 병렬 복제 처리로 성능도 대폭 향상됩니다.
Connection Manager는 장애 시에도 연결을 유지하며, 전체 토폴로지를 단순화시켜 관리가 쉬워집니다.
🛠️ 논리 복제의 한계를 해결하는 PGD의 기능
- 고급 충돌 관리(Conflict Resolution)
- DDL 복제 기능 지원
- 분산 시퀀스 (Distributed Sequences)
- 자동 장애 조치 (Automatic Failover)
- 자동 파티셔닝 (AutoPartitioning)
- Commit 범위/동기화 유연성 제공
PGD는 충돌 발생 시 자동으로 탐지하고 해결하는 고급 충돌 관리 기능을 내장하고 있으며, 논리 복제에서 아쉬웠던 DDL 복제도 지원합니다. 분산 시퀀스를 통해 다중 노드 환경에서도 고유 키 충돌 없이 ID를 생성할 수 있고, Commit 동기화 범위를 조정하여 트랜잭션의 일관성과 지연 시간 간에 유연한 균형을 맞출 수 있습니다.
결론
PostgreSQL의 물리 복제와 논리 복제는 각각 고유한 장점을 가지며, 고가용성, 확장성, 데이터 공유 등 다양한 요구에 대응합니다. 하지만 각각의 한계 또한 분명하죠.
EDB의 **Postgres Distributed(PGD)**는 두 복제 방식을 기반으로 하여, 액티브-액티브 복제, 데이터 분산, 고급 충돌 처리, DDL 복제, 버전 호환성 등을 아우르는 기업용 고성능 분산 데이터베이스 솔루션입니다. 높은 가용성과 탄력적인 확장성을 요구하는 엔터프라이즈 환경에서 탁월한 선택이 될 수 있습니다.
📚 참고자료:
- https://www.enterprisedb.com/docs/pgd/latest/
- https://www.postgresql.org/docs/17/logical-replication.html
- https://www.postgresql.org/docs/17/high-availability.html
본문: PostgreSQL Logical and Physical Replication Comparison and the Advantages of Distributed PGD