PostgreSQL

PostgreSQL HA 도구 비교

남용2 2019. 10. 14. 16:08

기능 비교

프로젝트 개요

  repmgr patroni stolon
회사/커뮤니티 2ndQuadrant zalando sorint.oss
github first release 10년 12월 v1.0.0 15년 10월 v0.4 15년 11월 v0.2.0
github last release 18년 7월 v4.1.0 18년 8월 v1.4.6 18년 7월 v0.12.0
github contributors 12 47 21
github star 953 1878 1577
테스트된 OS

Linux

Mac

Linux

Mac

Linux
PostgreSQL 지원 버전

10

9.3, 9.4, 9.5, 9.6

10

9.6

11

10

9.4, 9.5, 9.6

기능비교표

분류 상세기능 기능 설명 repmgr patroni stolon 기타
- 최소 서버 구성 수 - 2 3 3  
standby standby 구성 pg_basebackup 단점은 PostgreSQL instance가 실행중에 있어야 하며, 아니라면 백업툴을 사용해야 한다. O O O

repmgr

  • clone 명령어

patroni

  • patroni 명령어

stolon

  • stolonctl init 명령어
standby cascading replication cascading replication은 standby 서버에서 또다른 standby 서버로 replication O O X

repmgr

  • clone 명령어에 --upstream-node-id 추가

patroni

  • 노드 설정 파일의 tags 섹션에 replicatefrom 태그 추가
failover

수동 failover

사용자가 직접 명령어로 failover한다. O O O

repmgr

  • promote 명령어

patroni

  • failover 명령어

stolon

  • stolonctl init 명령어
failover 자동 failover 자동으로 failover한다. O O O

patroni

  • pause 명령어로 막을 수 있음
failover 예약 failover failover 시점을 예약한다. X O X

patroni

  • switchover 명령어
failback failback master와 standby의 role를 서로 바꾼다. O O O

repmgr

  • switchover 명령어

patroni

  • failover 명령어

stolon

  • stolonctl init 명령어
기타 pg_rewind pg_rewind는 primary와 standby 간의 불일치 데이터만 동기화한다. O O O  
기타 proxy proxy는 failover로 인해 primary IP가 변경될 수 있으므로 필요하다. X X O

repmgr

  • pgbouncer로 대체 가능

patroni

  • HAProxy로 대체 가능

stolon

  • stolon-proxy
기타 split-brain 예방 master가 여러개 생기는 것을 예방한다. O X O

repmgr

  • witness

patroni

  • watchdog로 대체 가능

stolon

  • sentinel
기타 monitoring HA 구성 상태를 표시한다. O O O  
기타 호환성 해당 툴의 공식 문서에서 호환 가능하다고 언급한 내용입니다.

barman(backup)

bdr(replication)

pgbouncer(pooling)

HAProxy(proxy)

watchdog(split-brain)

wal-e(backup)

barman(backup)

pgBackRest(backup)

wal-g(backup)

wal-e(backup) -
기타 서버 환경 - 서버용

서버용

클라우드용

서버용

클라우드용

-
기타 distributed configuration store - X

ZooKeeper

etcd

Consul 

Kubernetes

Exhibitor

etcd

consul

kubernetes

-
장점 - - 서버 2대로 HA 가능

클라우드 지원

예약 failover 지원

클라우드 지원

proxy 지원

-
단점 - - 클라우드 미지원 proxy와 같은 기능을 사용하기 위해서는 외부 툴을 설치해야 함 최신 릴리즈가 v0.12.0라서 위험성이 있음 -