본문 바로가기
3. 데이터관리

PostgreSQL High Availability

by chosuky 2024. 5. 22.

 

PostgreSQL Replication

 

PostgreSQL Replication은 크게 Physical ReplicationLogical Replication으로 구분

WAL 파일 자체를 전달하는 (File-based) Log Shipping

WAL 파일 저장 여부와 상관없이 WAL Record를 전달하는 Streaming Replication

 

- Logical ReplicationPhysical Replication의 한계를 해결하기 위한 목적으로 도입.

- Physical Replication과 마찬가지로 WAL을 기반으로 작동하지만, DML 발생 시 walsender 프로세스가 WAL Record를        Logical Decoding 처리한 후 전송한다는 차이.

 

Physical Replication – (File-based) Log Shipping

완성된 WAL 파일을 Standby Server로 전달, Recovery 작업을 통해 Replication

 

  - Main ServerWAL 파일이 정해진 크기를 채운 후 새로운 파일이 생성되어야 기존 WAL 파일 전달 가능

  - 현재 사용중인 WAL 파일이 채워지는 동안 Main ServerStandby Server 간의 Data Lag이 발생할 수 있음

  - 장애발생 시 최대 WAL 파일 크기만큼 소실될 수 있음을 의미

 

Physical Replication – Streaming (OCI PostgreSQL Replication 방식)

Main ServerWAL 파일이 채워질 때까지 기다리지 않고 WAL Record를 실시간으로 Streaming

  - Main Server에는 WAL Sender, Standby Server에는 WAL Receiver라는 전담 프로세스가 필요

  

Logical Replication

하나의 게시자(Publisher)와 하나 이상의 구독자(Subscriber)로 구성

- File System Replication이나 WAL Log Shipping 방식의 한계를 극복하기 위한 목적으로 도입

- 구독과 게시 간의 Replication은 복제 ID(Replication Identify)를 기반으로 수행되며, 복제 ID기본키(Primary Key) 또는 고유키(Unique Key)로 가능. 기본키와 고유키가 존재하지 않는다면, REPLICA IDENTITY FULL 옵션으로 Table 속성을 변경하여 사용 가능 하지만, 이 방법은 Table 변경사항이 있을 때마다 전체 Table을 복제하므로 자주 업데이트되는 대용량 Table에 대해서는 비효율적이며 대량의 자원 소모 예상

 

작성자: 조성균  
개인 시간을 투자하여 작성된 글로서, 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

댓글