3
Ручной Failover
pg_promote, сценарий отключения мастера
35 минУрок 3 из 9
Прогресс0%
Теория
Ручной failover выполняется администратором при Planned downtime или для тестирования.
pg_promote() — функция для повышения реплики в мастер.
Перед ручным failover убедитесь, что реплика синхронизирована с мастером.
После failover нужно перенастроить приложения на новый мастер.
Практика
1. Проверка синхронизации
Убедитесь, что реплика актуальна:
Проверка синхронизации
Команда
sudo -u postgres psql -h standby-ip -c "SELECT pg_last_wal_replay_lsn(), pg_last_wal_receive_lsn();"Вывод:
pg_last_wal_replay_lsn | pg_last_wal_receive_lsn ------------------------+------------------------- 0/1000000 | 0/1000000
2. Остановка мастера
Имитируйте отказ мастера:
Остановка мастера
Команда
sudo systemctl stop postgresql3. Повышение реплики
На реплике выполните повышение:
Повышение реплики
Команда
sudo -u postgres psql -c "SELECT pg_promote();"Вывод:
pg_promote ------------ t
Проверка
Проверьте, что реплика стала мастером:
Проверка
Команда
sudo -u postgres psql -c "SELECT pg_is_in_recovery();"Вывод:
pg_is_in_recovery -------------------- f