14
Восстановление до определенной точки (PITR)
recovery_target = 'immediate' только восстановить согласованность
recovery_target_name = 'имя' до именованной точки, созданной
pg_create_restore_point('имя')
recovery_target_time = 'время' до указанного времени
recovery_target_xid = 'xid' до указанной транзакции
recovery_target_lsn = 'lsn' до указанного LSN
recovery_target_inclusive = on|off включать ли указанную точку
recovery_target_action = pause
pause
promote принимает подключения
shutdown останавливается
Цель восстановления
завершить — pg_wal_replay_resume()
задать новую цель + рестарт
Если цель восстановления не задана, кластер будет восстановлен
максимально близко к моменту сбоя. Однако процесс восстановления
можно остановить и в любой другой момент, указав целевую точку:
●
Параметр recovery_target = 'immediate' остановит восстановление,
как только будет достигнута согласованность. Фактически, это
эквивалентно восстановлению из базовой копии без архива.
●
Параметр recovery_target_name позволяет указать именованную
целевую точку восстановления, созданную заранее с помощью
функции pg_create_restore_point.
●
Параметр recovery_target_time позволяет указать произвольное
время (timestamp), recovery_target_xid — произвольную транзакцию,
recovery_target_lsn — номер LSN. С помощью параметра
recovery_target_inclusive можно включить или исключить саму точку.
Параметр recovery_target_action позволяет выбрать состояние,
в котором окажется сервер по достижении целевой точки:
●
При значении pause восстановление приостанавливается.
Администратор может выполнить запросы и решить, корректно ли
была выбрана цель, после чего либо завершить восстановление
(функция pg_wal_replay_resume), либо задать новую цель,
перезапустить сервер и продолжить применение записей WAL.
●
Если задано значение promote, сервер сразу сможет принимать
запросы на подключения.
●
Значение shutdown приведет к остановке сервера. При этом файл
recovery.signal не удаляется.