10. 장애 조치 시나리오
이 배포의 잠재적인 장애 조치 시나리오 및 이에 대한 예상 반응
시나리오 1: PostgreSQL 마스터 노드 실패
node0(현재 PostgreSQL 마스터 노드)이 실패하면 다음 작업이 자동으로 발생합니다.
• Pgpool이 /etc/pgpool-II/failover.sh를 실행하기 시작합니다.
• PostgreSQL node1이 새 마스터로 선택됩니다.
• Pgpool-II 마스터가 원격으로 node1에 로그인하고 node1의 수준을 마스터로 올립니다.
예상 수동 작업
시스템 관리자가 수행할 작업:
• node0에 대한 로그를 검토하여 서버 상태를 확인합니다.
• 필요한 경우 서버를 복구합니다.
• 서버가 정상인 것으로 확인될 경우:
◦ node0에서 start_replication 스크립트를 실행하여 node0이 node2를 따르도록 합니다(이 예제에서는 IP 주소 10.91.9.41이 node2의 IP임).
/db/bin/start_replication.sh 10.91.9.41
◦ node0에서 PostgreSQL 서비스를 시작합니다.
sudo systemctl start postgresql-10.x
◦ PCP 명령을 사용하여 node0을 다시 정상 상태에 추가합니다.
pcp_attach_node -h /var/run/pgpoolpcp -n 0
시나리오 2: PostgreSQL 첫 번째 대기 노드 실패
node1(현재 PostgreSQL 주 대기 노드)이 실패하면 다음 작업이 자동으로 발생합니다.
• Pgpool이 '/etcpgpool-II/failover.sh'를 실행하기 시작합니다.
• PostgreSQL node2가 마스터 노드(이 예제에서는 node0)에 대한 주 대기 노드로 선택됩니다.
• Pgpool이 원격으로 node2에 로그인하고 대상을 node0으로 변경합니다.
• 이제 node2가 node0에 대한 대기 노드입니다.
예상 수동 작업
시스템 관리자가 수행할 작업:
• node1에 대한 로그를 검토하여 서버 상태를 확인합니다.
• 필요한 경우 서버를 복구합니다.
• 서버가 정상인 것으로 확인될 경우:
◦ node1에서 start_replication 스크립트를 실행하여 node1이 node2를 따르도록 합니다(이 예제에서는 IP 주소 10.91.9.41이 node2의 IP임).
/db/bin/start_replication.sh 10.91.9.41
◦ node1에서 PostgreSQL 서비스를 시작합니다.
sudo systemctl start postgresql-10.x
◦ PCP 명령을 사용하여 node1을 다시 정상 상태에 추가합니다.
pcp_attach_node -h /var/run/pgpoolpcp -n 1
시나리오 3: PostgreSQL 두 번째 대기 노드 실패
node2(현재 PostgreSQL 보조 대기 노드)가 실패하면 다음 작업이 자동으로 발생합니다.
• Pgpool이 '/etcpgpool-II/failover.sh'를 실행하기 시작합니다.
• node2가 현재 마스터 및 대기 작업에 영향을 주지 않으므로 추가 작업이 발생하지 않습니다.
예상 수동 작업
시스템 관리자가 수행할 작업:
• node2에 대한 로그를 검토하여 서버 상태를 확인합니다.
• 필요한 경우 서버를 복구합니다.
• 서버가 정상인 것으로 확인될 경우:
◦ node2에서 start_replication 스크립트를 실행하여 node2가 node1을 따르도록 합니다(이 예제에서는 IP 주소 10.91.9.24가 node1의 IP임).
/db/bin/start_replication.sh 10.91.9.24
◦ node2에서 PostgreSQL 서비스를 시작합니다.
sudo systemctl start postgresql-10.x
◦ PCP 명령을 사용하여 node2를 다시 정상 상태에 추가합니다.
pcp_attach_node -h /var/run/pgpoolpcp -n 2