기술 가이드

PostgreSQL repmgr 수동 설치 및 슬레이브 복제 설정 가이드

4 min read Database 업데이트됨 26 Sep 2025
PostgreSQL repmgr 설치 및 슬레이브 복제 가이드
PostgreSQL repmgr 설치 및 슬레이브 복제 가이드

중요: 이 가이드는 PostgreSQL 및 시스템 관리에 익숙한 사용자를 대상으로 합니다. 명령은 루트 또는 postgres 사용자 권한으로 실행해야 합니다.

개요

repmgr은 PostgreSQL 기반 데이터베이스의 복제, 모니터링, 장애 조치(failover) 관리를 돕는 오픈소스 도구입니다. 이 튜토리얼은 repmgr 1.1.0 소스 코드를 직접 컴파일하여 설치하고, 마스터(master)와 슬레이브(standby) 간의 기본 복제를 설정하는 과정을 다룹니다.

핵심 단계 요약:

  • 필요한 패키지 설치
  • repmgr 소스 빌드 및 설치
  • 마스터 데이터베이스를 슬레이브로 클론
  • repmgr 설정 파일 생성 및 등록
  • 모니터링 프로세스 시작 및 동기화 확인

5단계. 마스터와 슬레이브 양쪽에 repmgr 소스 코드 수동 설치

우선 repmgr 1.1.0 소스 아카이브를 /tmp로 다운로드합니다:

Download repmgr from http://projects.2ndquadrant.it/sites/default/files/repmgr-1.1.0.tar.gz to /tmp.

빌드 전에 필요한 개발 패키지를 설치합니다. 예시(소스는 SUSE 계열 zypper 명령 사용):

zypper install make gcc postgresql-devel libxslt-devel pam-devel libopenssl-devel krb5-devel

repmgr 빌드 전 필요한 패키지 설치 스크린샷

이제 repmgr을 컴파일하고 설치합니다:

make USE_PGXS=1
make USE_PGXS=1 install

repmgr 빌드 및 설치 성공 스크린샷

설치가 제대로 되었는지 다음 명령으로 확인합니다:

repmgr --version
repmgrd --version

마스터와 슬레이브 양쪽에서 repmgr이 설치되어 있어야 합니다. 다음 단계에서 마스터 데이터베이스를 슬레이브로 복제(clone)할 예정이므로 이 과정을 반드시 확인하세요.

6단계. 마스터 데이터베이스를 슬레이브(standby)로 클론 [슬레이브에서만 실행]

슬레이브 서버에서 postgres 사용자로 전환한 뒤 repmgr의 standby clone 기능을 사용해 마스터를 복제합니다.

su - postgres
repmgr -D /var/lib/pgsql/data -d pgbench -p 5432 -R postgres --verbose standby clone pgmaster

진행 중 로그가 출력됩니다. 대략 다음과 유사한 로그가 보입니다:

슬레이브에서 repmgr clone 진행 로그 스크린샷

클론이 완료되면 PostgreSQL을 슬레이브에서 시작합니다:

/etc/init.d/postgresql start

7단계. 마스터와 슬레이브에 repmgr 설정 파일 생성

마스터에서 repmgr 설정 디렉터리와 설정 파일을 생성합니다(경로 예시: /var/lib/pgsql/repmgr/repmgr.conf).

마스터용 repmgr.conf (예시):

cluster=test
node=1
conninfo='host=pgmaster user=postgres dbname=pgbench'

슬레이브용 repmgr.conf (예시):

cluster=test
node=2
conninfo='host=pgslave user=postgres dbname=pgbench'

주의: conninfo 문자열은 네트워크 접근성, 포트, 인증 정보에 맞추어 조정하세요.

8단계. 마스터·슬레이브 등록 및 모니터링 프로세스 시작

마스터에서 마스터 노드를 등록합니다:

repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose master register

슬레이브에서 슬레이브 노드를 등록합니다:

repmgr -f /var/lib/pgsql/repmgr/repmgr.conf --verbose standby register

등록 후 상태를 확인합니다:

psql pgbench -c 'select * from repmgr_test.repl_status'

슬레이브는 일반적으로 마스터보다 수 초 내지 1초 가량 뒤처집니다.

복제 동작 검증 예제

마스터에서 간단한 테이블을 만들고 값을 넣습니다:

psql pgbench -c "create table test ( test varchar(30));"
psql pgbench -c "insert into test values ( 'test123');"

슬레이브에서 데이터가 복제되었는지 확인합니다:

psql -h pgslave pgbench -c "select * from test"

슬레이브에서 복제된 데이터 확인 스크린샷

성공적으로 값이 보이면 복제가 정상 동작합니다.

향후 개선할 점 및 주의사항

이 튜토리얼은 SR(single-replica) 환경에서 기본적인 복제 설정을 빠르게 안내합니다. 다음 항목을 고려해 개선하세요:

  1. 별도 repmgr 전용 사용자 계정 생성 후 운영(postgres 대신 전용 계정 권장).
  2. repmgr의 알려진 버그 및 패치 확인(예: 관련 커밋 링크 제공). 원문 커밋: https://github.com/greg2ndQuadrant/repmgr/commit/7427988628f754e57069453d65a71f79117c3a3d
  3. 마스터 장애 시 슬레이브 승격(promote) 절차 숙지 — repmgr 문서를 참고하여 자동·수동 승격 절차를 준비하세요.
  4. 복제 상태를 확인하는 방법은 여러 가지가 있습니다. PostgreSQL 공식 문서를 병행 확인하세요.
  5. repmgr 패키지의 README를 반드시 읽고 배포판별 차이를 이해하세요.

운영 체크리스트 (역할별)

관리자(설치 담당):

  • 패키지 의존성 설치 확인
  • repmgr 바이너리 버전 확인(repmgr –version)
  • repmgr.conf 파일 소유자/권한 확인

DBA(운영 담당):

  • 마스터의 데이터베이스 이름, 포트, 네트워크 접근성 검증
  • 슬레이브 클론 후 데이터 무결성 검사(예: row count, 샘플 쿼리)
  • 모니터링 알람(지연, 연결 실패) 설정

운영팀(서비스 안정성):

  • 자동화된 장애 조치(failover) 절차 테스트
  • 정기 백업 및 복원 절차 점검

검증 방법(테스트 케이스 및 수용 기준)

테스트 케이스:

  • TC1: repmgr 설치 후 –version, repmgrd –version 출력
  • TC2: 슬레이브 clone 성공 및 PostgreSQL 시작
  • TC3: 마스터에서 생성한 테이블과 데이터가 슬레이브에 동일하게 존재
  • TC4: repmgr에서 노드 등록 후 psql로 repl_status 조회 시 마스터/슬레이브가 모두 목록에 존재

수용 기준:

  • 모든 TC가 수동 실행 기준으로 실패 없이 통과
  • 슬레이브 지연(latency)이 허용 범위(정책적으로 정의) 내에 있음
  • repmgrd가 정상 동작하여 모니터링과 알림을 수행

장애 대응 간단 실행 절차(Incident runbook)

  1. 증상 확인: 슬레이브 지연/연결 이상/replication 중단 로그 확인.
  2. 네트워크/포트 문제 확인: pg_hba.conf, 방화벽, 호스트 연결 테스트.
  3. 프로세스 상태 확인: PostgreSQL과 repmgrd가 실행 중인지 점검.
  4. 로그 분석: PostgreSQL 및 repmgr 로그에서 에러 검색.
  5. 복원 옵션:
    • 슬레이브가 오래 뒤처졌거나 복구 불가 시, 슬레이브를 재클론.
    • 마스터 장애 시 repmgr promote 또는 수동으로 pg_ctl promote 실행.
  6. 롤백: (잘못된 설정 적용 시) 최근 설정 변경 전 상태로 repmgr.conf 및 postgresql.conf 되돌림.

소액의 아키텍처 팁 및 위험(리스크) 요약

주요 리스크:

  • 인증 및 권한 설정 부정확: repmgr가 데이터베이스에 접속하지 못함.
  • 네트워크 불안정: 복제 지연 증가 또는 재동기화 필요.
  • 버전 불일치: PostgreSQL과 repmgr 간 호환성 문제.

완화책:

  • 별도 전용 계정과 최소 권한 정책 적용
  • 모니터링과 알림 체계 구축
  • 테스트 환경에서 버전 호환성 확인

용어집(한 줄 정의)

  • repmgr: PostgreSQL 복제 및 장애 조치 관리 도구.
  • master: 읽기/쓰기 역할을 하는 주 데이터베이스 노드.
  • standby/slave: 마스터를 복제한 읽기 전용(또는 승격 가능한) 노드.
  • conninfo: repmgr과 PostgreSQL이 통신할 때 사용하는 연결 문자열.

요약

이 가이드에서는 repmgr 1.1.0을 소스에서 빌드하고 설치한 뒤, 마스터를 슬레이브로 클론하고 repmgr로 노드를 등록해 모니터링을 시작하는 방법을 다뤘습니다. 설치 전 패키지 의존성을 확인하고, repmgr.conf의 conninfo를 환경에 맞게 조정하세요. 실운영 전 테스트 환경에서 전체 플로우(설치→클론→등록→장애 복구)를 반드시 검증하시기 바랍니다.

추가 참고 링크:

문의: 원문 작성자 이메일([email protected])로 연락할 수 있다고 안내되어 있으나, 실제 연락 전 내부 정책을 확인하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

CentOS/Fedora Kickstart 자동 설치 가이드
시스템 관리

CentOS/Fedora Kickstart 자동 설치 가이드

스냅챗 스코어 숨기기: 단계별 가이드
소셜미디어

스냅챗 스코어 숨기기: 단계별 가이드

Teams 화면 공유 가이드 — 데스크톱 & 모바일
협업

Teams 화면 공유 가이드 — 데스크톱 & 모바일

Windows Server에서 로그인한 사용자 확인하는 방법
시스템 관리

Windows Server에서 로그인한 사용자 확인하는 방법

Android APK 설치 가이드 — 안전한 수동 설치 방법
모바일

Android APK 설치 가이드 — 안전한 수동 설치 방법

PostgreSQL repmgr 설치 및 슬레이브 복제 가이드
Database

PostgreSQL repmgr 설치 및 슬레이브 복제 가이드