HADR 설치 및 설정 예시( PostgresSQL )

2024. 10. 24. 10:07매일의 성장 기록/IT 지식

PostgreSQL HADR 구성 및 REPMGR 설치

PostgreSQL HADR 구성 및 REPMGR 설치

아래 단계를 따라 PostgreSQL의 고가용성 및 재해 복구(HADR)를 REPMGR을 사용하여 구성하세요.

1. PostgreSQL 저장소 설치

PostgreSQL 공식 저장소를 추가합니다:


sudo apt-get update
sudo apt-get install wget ca-certificates -y
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt-get update
    

2. PostgreSQL 설치

PostgreSQL과 관련 패키지를 설치합니다:


sudo apt-get install postgresql-14 postgresql-contrib -y
    

3. 시스템 부팅 시 PostgreSQL 활성화 설정

시스템 재부팅 시 PostgreSQL이 자동으로 시작되도록 설정합니다:


sudo systemctl enable postgresql
    

4. 기본 DB 클러스터 생성

기본적으로 PostgreSQL 설치 시 클러스터가 생성되지만, 수동으로 생성하려면 다음 명령어를 사용합니다:


sudo pg_createcluster 14 main --start
    

5. PostgreSQL 서비스 시작

PostgreSQL 서비스를 시작합니다:


sudo systemctl start postgresql
    

6. PostgreSQL 접속

PostgreSQL에 접속하여 명령을 실행합니다:


sudo -i -u postgres
psql
    

7. PostgreSQL 관리자 계정 비밀번호 변경

PostgreSQL의 기본 관리자 계정 postgres의 비밀번호를 변경합니다:


\password postgres
    

8. PostgreSQL 접속 종료

설정 완료 후 PostgreSQL 세션에서 로그아웃합니다:


\q
exit
    

9. PostgreSQL 외부 접속 허용

외부 시스템에서 PostgreSQL에 접속할 수 있도록 설정합니다. postgresql.confpg_hba.conf 파일을 수정해야 합니다.


# postgresql.conf 파일에서 리스닝 주소 설정
sudo nano /etc/postgresql/14/main/postgresql.conf
# listen_addresses 설정 추가 또는 수정
listen_addresses = '*'

# pg_hba.conf 파일에서 외부 접속 허용 설정
sudo nano /etc/postgresql/14/main/pg_hba.conf
# 아래 설정 추가
host    all             all             0.0.0.0/0               md5

# PostgreSQL 서비스 재시작
sudo systemctl restart postgresql
    

10. 기능 활용을 위한 패키지 설치

PostgreSQL 복제 및 관련 기능을 지원하는 패키지를 설치합니다:


sudo apt-get install postgresql-14-repmgr
    

11. 퍼블릭 스키마 확인

퍼블릭 스키마가 올바르게 설정되었는지 확인합니다:


\dn
    

12. REPMGR 설치

REPMGR을 설치하여 복제를 관리합니다:


sudo apt-get install repmgr
    

13. 복제 계정 및 DB 생성

복제 계정과 데이터베이스를 생성합니다:


sudo -i -u postgres
psql
CREATE USER repmgr WITH REPLICATION PASSWORD 'repmgr_pass';
CREATE DATABASE repmgr WITH OWNER repmgr;
    

14. PostgreSQL 복제 설정

복제를 위한 설정을 추가합니다:


# postgresql.conf 파일 수정
sudo nano /etc/postgresql/14/main/postgresql.conf

# 복제 관련 설정 추가
wal_level = replica
max_wal_senders = 5
archive_mode = on
archive_command = 'cp %p /path/to/archive/%f'

# PostgreSQL 서비스 재시작
sudo systemctl restart postgresql
    

15. PostgreSQL1을 PRIMARY로 등록

REPMGR을 사용하여 PostgreSQL1을 Primary로 등록합니다:


repmgr -f /etc/repmgr.conf primary register
    

16. PostgreSQL2를 STANDBY로 등록

PostgreSQL2를 Standby로 등록하고 복제를 구성합니다:


repmgr -h primary_host -U repmgr -d repmgr -f /etc/repmgr.conf standby clone
repmgr -f /etc/repmgr.conf standby register
    

17. 자동 장애 조치(Fail-Over) 설정

REPMGR을 통해 자동 장애 조치를 설정합니다:


# repmgr.conf 파일 수정
sudo nano /etc/repmgr.conf

# 자동 장애 조치 설정 추가
failover = 'automatic'
    

18. 자동 복구(Fail-Back) 설정

Primary 서버 복구 후 Failback을 설정합니다:


repmgr -f /etc/repmgr.conf node rejoin
    

19. SSH 접속 설정

Primary와 Standby 서버 간 SSH 무비밀번호 접속을 설정합니다:


# SSH 키 생성
ssh-keygen -t rsa

# Standby 서버에 SSH 키 복사
ssh-copy-id postgres@standby_host
    

20. REPMGR 실행

REPMGR 데몬을 실행하여 복제 및 장애 조치 기능을 활성화합니다:


repmgrd -f /etc/repmgr.conf --daemonize
    

21. 모니터링 솔루션 설치

PostgreSQL 및 복제 상태를 모니터링하기 위해 pgAdmin4를 설치합니다:


sudo apt-get install pgadmin4
    

22. 설치 확인

pgAdmin을 통해 PostgreSQL 클러스터 상태와 복제 상태를 확인합니다:


pgadmin4