10. Сценарии переключения при отказе
Возможные сценарии переключения при отказе и ожидаемая реакция на них в условиях этого развертывания.
Сценарий 1. Сбой главного узла PostgreSQL
При возникновении сбоя в node0 (текущем главном узле PostgreSQL) автоматически выполняются следующие действия.
Pgpool начнет выполнение /etc/pgpool-II/failover.sh.
Узел node1 PostgreSQL будет выбран в качестве нового главного узла.
Главный узел Pgpool-II выполнит удаленный вход в узел node1 и будет продвигать его в качестве главного.
Ожидается вмешательство вручную
Действия, выполняемые системным администратором.
Просмотрите журналы для узла node0, чтобы определить исправность сервера.
При необходимости выполните восстановление сервера.
После того как он станет работоспособным, выполните следующие действия:
В узле node0 выполните сценарий start_replication, чтобы сделать узел node0 следующим за узлом node2 (IP-адрес 10.91.9.41 - это IP-адрес узла node2 в этом примере):
/db/bin/start_replication.sh 10.91.9.41
Запустите сервис PostgreSQL в узле node0:
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.
Узел node2 PostgreSQL будет выбран как основной резервный узел для главного узла (в данном примере это node0).
Pgpool выполнит удаленный вход в node2 и перенацелит его на node0.
Теперь node2 будет резервным узлом для node0.
Ожидается вмешательство вручную
Действия, выполняемые системным администратором.
Просмотрите журналы в узле node1, чтобы определить исправность сервера.
При необходимости выполните восстановление сервера.
После того как он станет работоспособным, выполните следующие действия:
В узле node1 выполните сценарий start_replication, чтобы сделать узел node1 следующим за узлом node2 (IP-адрес 10.91.9.41 - это IP-адрес узла node2 в этом примере):
/db/bin/start_replication.sh 10.91.9.41
Запустите сервис PostgreSQL в узле node1
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 - это IP-адрес узла node1 в этом примере):
/db/bin/start_replication.sh 10.91.9.24
Запустите сервис PostgreSQL в узле node2:
sudo systemctl start postgresql-10.x
Используйте команду PCP, чтобы вернуть node2 в нормальное состояние.
pcp_attach_node -h /var/run/pgpoolpcp -n 2
Было ли это полезно?