5
pg_rewind
Возврат старого мастера, принцип работы, ограничения
45 минУрок 5 из 9
Прогресс0%
Теория
pg_rewind — утилита для быстрого восстановления старого мастера как реплики.
Позволяет избежать полного пересоздания резервной копии.
Работает на основе сравнения WAL-файлов между серверами.
Ограничение:pg_rewind не работает, если старый мастер принял записи после failover.
Практика
1. Подготовка к pg_rewind
На старом мастере включите логирование:
Подготовка к pg_rewind
Команда
echo "wal_log_hints = on" | sudo tee -a /etc/postgresql/16/main/postgresql.confВывод:
wal_log_hints = on
2. Остановка старого мастера
Остановите PostgreSQL на старом мастере:
Остановка старого мастера
Команда
sudo systemctl stop postgresql3. Запуск pg_rewind
Выполните pg_rewind из новой мастера:
Запуск pg_rewind
Команда
sudo -u postgres pg_rewind --target-pgdata=/var/lib/postgresql/16/main --source-server="host=new-master-ip user=postgres dbname=postgres" --progressВывод:
connected, sending timeline history file rewinding from 1 to 2 ...rewinding done!
Проверка
Проверьте, что pg_rewind завершился успешно:
Проверка
Команда
ls /var/lib/postgresql/16/main/standby.signalВывод:
/var/lib/postgresql/16/main/standby.signal