2024. 10. 24. 10:07ㆍ매일의 성장 기록/IT 지식
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.conf
와 pg_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
'매일의 성장 기록 > IT 지식' 카테고리의 다른 글
HADR(High Availability and Disaster Recoverty) 구성 방식 (0) | 2024.10.24 |
---|---|
HADR(High Availability and Disaster Recovery)이란? (1) | 2024.10.24 |
로드 밸런서(Load Balancer) 로드 밸런싱(Load Balancing) (0) | 2024.10.23 |
클러스터(Cluster) & 클러스터링(Clustering) (1) | 2024.10.23 |
윈도우10 네트워크 공유폴더 접근오류 (조직의 보안 정책에서 인증되지 않은 게스트 엑세스를 차단하므로 이 공유 폴더에 액세스 할 수 없습니다) (1) | 2024.10.21 |