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 postgresql

3. Запуск 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

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

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