26.2. Параметры управления восстановлением
По умолчанию процесс восстановления производится вплоть до окончания журнала WAL. Нижеуказанные параметры могут использоваться, чтобы остановить процесс восстановления в более ранней точке. Использоваться может только один из параметров recovery_target
, recovery_target_name
, recovery_target_time
и recovery_target_xid
; если в конфигурационном файле задано несколько параметров, будет использоваться последний.
recovery_target
= 'immediate'
Данный параметр указывает, что процесс восстановления должен завершиться, как только будет достигнуто целостное состояние, т. е. как можно раньше. При восстановлении из оперативной резервной копии, это будет точкой, в которой завершился процесс резервного копирования.
Технически это строковый параметр, но значение
'immediate'
— единственно допустимое в данный момент.recovery_target_name
(string
)Этот параметр указывает именованную точку восстановления (созданную с помощью
pg_create_restore_point()
), до которой будет производиться восстановление.recovery_target_time
(timestamp
)Данный параметр указывает точку времени, вплоть до которой будет производиться восстановление. Точность этой точки останова также зависит от recovery_target_inclusive.
recovery_target_xid
(string
)Параметр указывает идентификатор транзакции, вплоть до которой необходимо произвести процедуру восстановления. Имейте в виду, что несмотря на то, что при старте идентификаторы транзакций назначаются последовательно, завершаться они могут в ином порядке. Восстанавливаемые транзакции это те, что были зафиксированы до указанной (и, возможно, включая её). Точность точки останова также зависит от recovery_target_inclusive.
Следующие параметры уточняют целевую точку восстановления и определяют, что будет происходить при её достижении:
recovery_target_inclusive
(boolean
)Указывает на необходимость остановки сразу после (
true
), либо до (false
) достижения целевой точки. Применяется одновременно с recovery_target_time, либо recovery_target_xid. Этот параметр определяет, нужно ли восстанавливать транзакции, у которых время фиксации либо идентификатор в точности совпадает со значением соответствующего параметра. Значение по умолчанию —true
.recovery_target_timeline
(string
)Указывает линию времени для восстановления. По умолчанию производится восстановление той же линии времени, которая была текущей в момент создания базовой резервной копии. Со значением
latest
восстанавливаться будет последняя линия времени, найденная в архиве, что полезно для резервного сервера. Иное значение параметра может потребоваться в более сложной ситуации повторного восстановления, когда необходимо вернуться к состоянию, которое само было достигнуто после восстановления на момент времени. Это обсуждается в Подразделе 24.3.5.recovery_target_action
(enum
)Указывает, какое действие должен предпринять сервер после достижения цели восстановления. Вариант по умолчанию —
pause
, что означает приостановку восстановления. Второй вариант,promote
, означает, что процесс восстановления завершится и сервер начнёт принимать подключения. Наконец, с вариантомshutdown
сервер остановится, как только цель восстановления будет достигнута.Вариант
pause
позволяет выполнить запросы к базе данных и убедиться в том, что достигнутая цель оказалась желаемой точкой восстановления. Для снятия с паузы нужно вызватьpg_xlog_replay_resume()
(см. Таблицу 9.80), что в итоге приведёт к завершению восстановления. Если же окажется, что мы ещё не достигли желаемой точки восстановления, нужно остановить сервер, установить более позднюю цель и перезапустить сервер для продолжения восстановления.Вариант
shutdown
полезен для получения готового экземпляра сервера в желаемой точке. При этом данный экземпляр сможет воспроизводить дополнительные записи WAL (и на самом деле ему придётся воспроизводить записи WAL после последней контрольной точки при следующем перезапуске).Заметьте, что так как
recovery.conf
не переименовывается, когда вrecovery_target_action
выбран вариантshutdown
, при последующем запуске будет происходить немедленная остановка, пока вы не измените конфигурацию или не удалите файлrecovery.conf
вручную.Этот параметр не действует, если цель восстановления не установлена. Если не включён режим hot_standby, значение
pause
действует так же, как иshutdown
.