2021. 11. 23. 15:16ㆍIT/데이터베이스
요약 :
Psql 11.11 DB서버 2대를 VIP로 묶고, Apache Tomcat은 VIP만 본다.
repmgr는 Primary와 Secondary DB의 역할 변경은 가능하지만, Tomcat이 바뀐 Primary DB를 보게 하진 않는다.
repmgr에서 promote 동작 시 특정 위치의 스크립트를 호출해 VIP를 다른 DB서버로 변경해주는 건 가능하다.
Primary에 장애 발생시 자동으로 Secondary로 연결되도록 설정해 고가용성을 유지한다.
1. 양 DB 서버에 SSH 설정
2. REPMGR 설치 및 설정
switchover나 failover 발생 시 vip를 변경해주는 Script가 실행되도록
event_notification_command, event_notifications로 제어한다.
ssh_option도 설정해준다.
event_notifications='standby_promote'
:Standby가 promote 될 때
event_notification_command='스크립트 동작 명령어'
:해당 스크립트를 동작 시킨다
스크립트는 SSH를 통해 장애가 발생한 DB서버의 VIP를 지우고,
반대편 DB서버에 VIP를 심어주는 역할
* Switchover : 장애 발생 시 예비시스템으로 수동전환
* Failover : 장애 발새 시 예비시스템으로 자동전환
* Failback : Failover 전으로 상황을 되돌림
3. failover 스크립트 작성
#2번 DB서버의 경우, PEER='1번 DB서버 IP'
#1번 DB서버의 경우, PEER='2번 DB서버 IP'
예시:
sudo /sbin/ip addr add VIP dev '장치명'
sudo arping -c 4 -A -I '장치명' 'VIP'
ssh -q -o ConnectTimeout=3 $PEER "sudo /sbin/ip addr del VIP dev 장치명"
:
Standby가 promote되기 전에 VIP를 자신의 장치에 입력.
ARPING으로 VIP로 통신되는지 확인 후, 상대방 장치에서 VIP를 지워서
Primary가 된 Standby 서버가 VIP를 가져가 Tomcat이 DB와 연결되도록 한다
*** Keepalived 사용 :
Keepalived는 장애 감시와 VIP이동 기능을 수행 가능하다
추후 작성 예정
참고:
https://blog.naver.com/PostView.naver?blogId=seuis398&logNo=222303179005
'IT > 데이터베이스' 카테고리의 다른 글
PostgreSQL 데이터 디렉토리 위치 변경 (0) | 2023.03.03 |
---|---|
repmgr 설치 및 구성 / repmgr 명령어 (0) | 2021.09.18 |