Database/PostgreSQL

# PostgreSQL Streaming Replication 개념

skysoo1111 2019. 10. 23. 16:04

Database 서버 이중화(HA) 구성이란?

 

이 작업은 복수의 DB Server를 준비한 상태에서 Active-Active 또는 Active-Standby로 동작시키면서 이 중 일부의 Server에 문제가 발생하더라도 전체 서비스가 멈추는 사고를 방지하기 위해서 이루어진다.

 

  • Data는 전체 DB Cluster에 반영되어야 한다는 것이다. DB Server가 몇 개이건 모두 공통된 최신 Data를 가져야 한다는 것이고 이것은 DB Replication을 통해 이루어진다.
  • DB에 전달되는 각종 Request들이 DB Cluster 내에 존재하는 여러 DB Server에 골고루 전달되어서 실행되게 하는 분산 환경이 구성되어야 하고 이것을 Load Balance라고 한다.
  • Active-Standby로 구성된 DB Cluster에서 Active로 있던 Primary DB Server에 문제가 생겼을 때 Standby Server들 중 1대가 Primary DB Server의 역할을 해야 한다. 이것을 Failover라 한다.

PostgreSQL Replication 구조

  • Master 클라이언트로부터 받은 DB 변경 Query에 따라 DB를 변경하고, 변경 내용을 Slave DB에 전달
  • Slave DBMaster로부터 전달 받은 변경 내용으로 Replication을 수행
  • Slave DB 앞 단에는 Load Balancer를 두어 클라이언트로부터 오는 Read 요청을 적절히 분산

 

1. WAL(Write-Ahead Log) Replication 방식

   - Master DB는 주기적으로 ArchiveWAL을 주기적으로 복사, Slave DBSegment File 단위로 WAL을 복사

   - WAL의 변경 내용을 쌓았다가 한번에 전달되는 방식이라 갑작스런 Master DBDown대량의 Data 손실

 

 

2. Streaming Replication 방식

   - Master DBWAL에 기록된 내용을 변경 내용 단위인 Record 단위로 바로 Slave DB에게 전달

   - Master DB의 갑작스러운 Down으로 발생하는 Data 손실을 최소화

 

 

 

'Database > PostgreSQL' 카테고리의 다른 글

# PostgreSQL HA 구성 - PGPoolⅡ  (11) 2019.10.23
# PostgreSQL Streaming Replication 구성  (0) 2019.10.23