Модули/Failover и pg_rewind/Ручной Failover
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 postgresql

3. Повышение реплики

На реплике выполните повышение:

Повышение реплики
Команда
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

Пройдите викторину

Для завершения урока необходимо пройти викторину