Параметры категории Write-Ahead Log (WAL)

Этот документ описывает параметры системной конфигурации в категории Write-Ahead Log (WAL).

Примечание!
Для обеспечения стабильности и безопасности системы ручное изменение этих параметров должно выполняться с крайней осторожностью.


Параметры

commit_delay


Добавляет задержку (в микросекундах) перед запуском сброса WAL COMMIT.

  • Если нагрузка на систему достаточно высока, и в течение заданного интервала готовы завершиться дополнительные транзакции, увеличение пропускной способности за счёт групповых коммитов с использованием одного сброса WAL может быть выгодным. Однако это также увеличивает задержку каждого сброса WAL до commit_delay. Задержка применяется только в случае, если при подготовке к сбросу существует как минимум commit_siblings (см. ниже) других активных транзакций; в противном случае задержка будет напрасной.
  • Кроме того, задержка не применяется, если synchronous_commit отключён.
  • Единица измерения: микросекунды (microsecond, μs).
Тип данных Значение по умолчанию Диапазон Контекст
int 0 0 ~ 100000 master; session; reload; superuser

commit_siblings


Минимальное количество одновременно активных транзакций, необходимое для применения commit_delay.

  • Более высокое значение увеличивает вероятность того, что хотя бы одна другая транзакция будет готова к коммиту в течение интервала задержки.
Тип данных Значение по умолчанию Диапазон Контекст
int 5 0 ~ 1000 master; session; reload

full_page_writes


Когда этот параметр on, сервер YMatrix записывает полное содержимое каждой страницы в WAL при её первом изменении после контрольной точки.

  • Это необходимо, потому что при сбое операционной системы запись страницы может быть завершена частично, что приводит к смешению старых и новых данных внутри одной дисковой страницы. Во время восстановления данных, хранящихся в WAL на уровне строк, может оказаться недостаточно для полного восстановления такой повреждённой страницы.
  • Хранение полных образов страниц обеспечивает корректное восстановление, но за счёт увеличения объёма WAL. Однако, поскольку воспроизведение WAL всегда начинается с контрольной точки, достаточно выполнять это только при первом изменении каждой страницы после контрольной точки. Один из способов снизить накладные расходы на полные записи страниц — увеличить интервал контрольных точек.
  • Отключение этого параметра ускоряет нормальную работу, но может привести к необратимой или незаметной коррупции данных после сбоя системы. Риск аналогичен отключению fsync, хотя и меньше. Этот параметр следует отключать только тогда, когда можно безопасно отключить и fsync.
  • Отключение этой опции не влияет на архивирование WAL, используемое для восстановления до определённого момента времени (PITR).
Тип данных Значение по умолчанию Контекст
boolean on segments; system; reload

fsync


Если включено, сервер YMatrix гарантирует, что обновления физически записываются на диск путём вызова системных вызовов fsync() или эквивалентных методов (см. wal_sync_method). Это гарантирует, что кластер базы данных сможет восстановиться в согласованное состояние после сбоя ОС или аппаратного сбоя.

  • Хотя отключение fsync часто улучшает производительность, оно может привести к необратимой коррупции данных при потере питания или сбое системы. Поэтому fsync следует отключать только в случае, если весь кластер базы данных можно легко восстановить из внешних данных.
  • Безопасные сценарии для отключения fsync включают: первоначальную загрузку нового кластера базы данных из резервной копии, использование кластера для обработки пакетных данных перед его удалением и повторным созданием, или поддержание только для чтения клона, который часто пересоздаётся и не используется для аварийного переключения. Одних только качественных аппаратных средств недостаточно для обоснования отключения fsync.
  • При изменении fsync с off на on все изменённые буферы ядра должны быть принудительно записаны на постоянное хранилище для надёжного восстановления. Это может быть достигнуто при завершении работы кластера, при включении fsync через pg_ctl, во время sync, отмонтировании файловой системы или перезапуске сервера.
  • Во многих случаях отключение synchronous_commit для менее критичных транзакций может значительно повысить производительность без риска коррупции данных.
  • Если вы отключаете этот параметр, рассмотрите возможность отключения также full_page_writes (см. выше).
Тип данных Значение по умолчанию Контекст
boolean on segments; system; reload


synchronous_commit


Управляет уровнем синхронизации. Определяет, должна ли транзакция ждать записи своего записи WAL на диск до возврата клиенту индикатора успешного завершения команды.

  • Значение по умолчанию и безопасное значение — on. При установке в off существует задержка между сообщением об успехе клиенту и фактической гарантией того, что транзакция выживет при сбое сервера (максимальная задержка — трижды wal_writer_delay). В отличие от fsync, установка этого параметра в off не рискует несогласованностью базы данных: сбой может потерять некоторые недавно зафиксированные транзакции, но состояние базы данных будет таким, как если бы эти транзакции были полностью отменены. Таким образом, когда производительность важнее полной долговечности транзакций, отключение synchronous_commit может быть эффективной альтернативой.
  • Если synchronous_standby_names не пуст, этот параметр также управляет поведением коммита транзакций: ожидать ли репликации записи WAL на standby-сервер перед фиксацией.
  • При установке в remote_apply основной сервер ожидает, пока текущий синхронный standby подтвердит получение записи коммита, сбросит её на диск и применит транзакцию, чтобы она стала видимой для запросов на standby.
  • При установке в on основной сервер ожидает, пока синхронный standby подтвердит получение и сброс записи на диск.
  • При установке в remote_write основной сервер ожидает, пока синхронный standby подтвердит получение и запись записи в буфер ОС (но не обязательно сброс на диск).
  • При установке в local коммит ожидает только сброса на локальный диск, а не завершения репликации. Это обычно не требуется при использовании синхронной репликации, но предоставлено для полноты.
  • Если synchronous_standby_names пуст, значения remote_apply, remote_write, on и local обеспечивают один и тот же уровень: ожидание только сброса на локальный диск.
Настройка Локальная долговечность Долговечность на standby после сбоя YMatrix Долговечность на standby после сбоя ОС Видимость запросов на standby
remote_apply Y Y Y Y
on Y Y Y
remote_write Y Y
local Y
off
Тип данных Значение по умолчанию Диапазон Контекст
enum on on / off / true / false / yes / no / 1 / 0 / remote_apply / remote_write / local segments; session; reload

wal_buffers


Объём разделяемой памяти, используемый для данных WAL, ещё не записанных на диск (в единицах блоков WAL, то есть XLOG_BLCKSZ байт).

  • Значение по умолчанию -1 выбирает размер, равный 1/32 от shared_buffers (около 3%), но не менее 32 КБ и не более размера сегмента WAL (обычно 16 МБ).
  • Это значение можно вручную настроить, если автоматический выбор слишком велик или слишком мал, но любое положительное значение меньше 32 КБ будет обработано как 32 КБ.
  • Содержимое буфера WAL записывается на диск при каждом коммите транзакции, поэтому очень большие значения wal_buffers дают мало преимуществ. Однако установка его в несколько мегабайт может улучшить производительность записи на загруженных серверах, где множество клиентов фиксируют транзакции одновременно.
  • Настройка по умолчанию -1 включает автоматическую настройку, которая даёт разумные результаты в большинстве случаев.
Тип данных Значение по умолчанию Диапазон Контекст
int -1 -1 ~ INT_MAX/XLOG_BLCKSZ segments; system; restart

wal_compression


Включает сжатие полных страниц в WAL.

  • Когда on, и если full_page_writes также on или во время базовой резервной копии, сервер YMatrix сжимает полные образы страниц, записываемые в WAL. Сжатые образы распаковываются во время воспроизведения WAL.
  • Включение этого параметра уменьшает объём WAL без риска необратимой коррупции данных. Однако он создаёт дополнительную нагрузку на ЦП во время записи и воспроизведения WAL.
Тип данных Значение по умолчанию Контекст
boolean off segments; session; reload; superuser

wal_init_zero


При установке в on новые файлы WAL инициализируются нулями.

  • На некоторых файловых системах это гарантирует предварительное выделение места для файла до того, как потребуется запись записей WAL.
  • Однако файловые системы с Copy-On-Write (COW) могут не извлечь выгоды из этой настройки, поэтому система пропускает ненужную работу.
  • При установке в off при создании файла записывается только последний байт, чтобы придать файлу ожидаемый размер.
Тип данных Значение по умолчанию Контекст
boolean on segments; session; reload; superuser


wal_level


Определяет, какая информация записывается в WAL.

  • Значение по умолчанию replica записывает достаточно данных для архивирования WAL и репликации, включая чтение только для чтения на standby-серверах. minimal исключает все записи, кроме тех, которые необходимы для восстановления после сбоя или немедленного завершения. logical добавляет информацию, необходимую для логического декодирования. Каждый уровень включает всю информацию из более низких уровней.
  • На уровне minimal логирование WAL для некоторых операций массовой обработки может быть безопасно пропущено, что ускоряет эти операции. Применимые операции включают: INSERT, UPDATE, DELETE, COPY в таблицы, созданные или усечённые в рамках одной транзакции.
  • Однако минимальный WAL не содержит достаточной информации для восстановления данных из базовой резервной копии и журналов WAL. Поэтому для включения архивирования WAL (archive_mode) и потоковой репликации необходимо использовать replica или более высокий уровень.
  • На уровне logical, помимо информации уровня replica, дополнительно регистрируются данные, позволяющие извлекать логические наборы изменений из WAL. Использование logical увеличивает объём WAL, особенно когда много таблиц настроены для REPLICA IDENTITY FULL и выполняется множество операций UPDATE и DELETE.
Тип данных Значение по умолчанию Диапазон Контекст
enum replica replica / minimal / logical segments; system; restart

wal_log_hints


Выполняет полные записи страниц даже для некритических обновлений.

  • Когда on, сервер YMatrix записывает полное содержимое дисковой страницы в WAL при её первом изменении после контрольной точки, даже для некритических изменений, таких как обновление битов подсказок.
  • Если включены контрольные суммы данных, обновления битов подсказок всегда регистрируются в WAL, и эта настройка игнорируется. Эта настройка может использоваться для тестирования, сколько дополнительного WAL было бы сгенерировано, если бы контрольные суммы были включены.
Тип данных Значение по умолчанию Контекст
boolean off segments; system; restart

wal_recycle


Переиспользование файлов WAL.

  • При установке в on файлы WAL переиспользуются путём переименования, избегая создания новых файлов.
  • На файловых системах COW создание новых файлов может быть быстрее, поэтому эта опция автоматически отключается.
Тип данных Значение по умолчанию Контекст
boolean on segments; session; reload; superuser

wal_sync_method


Метод, используемый для принудительной записи обновлений WAL на диск.

  • Если fsync отключён, эта настройка не имеет значения, поскольку обновления файлов WAL не будут принудительно записаны на диск. Возможные значения: open_datasync (запись файла WAL с O_DSYNC), fdatasync (вызов fdatasync() при каждом коммите), fsync (вызов fsync() при каждом коммите), fsync_writethrough (вызов fsync() с директивой write-through), open_sync (запись файла WAL с O_SYNC).
  • Опции open_* также могут использовать O_DIRECT (если доступно).
  • Не все варианты доступны на всех платформах. Значение по умолчанию — первый поддерживаемый метод на платформе. Значение по умолчанию может быть не оптимальным; возможно, потребуется настроить этот или другие системные параметры для достижения конфигурации, безопасной при сбоях, или наилучшей производительности.
Тип данных Значение по умолчанию Диапазон Контекст
enum fsync / fdatasync (значение по умолчанию на Linux) open_datasync / fdatasync / fsync / fsync_writethrough / open_sync segments; system; reload

wal_writer_delay


Задаёт частоту сброса WAL писателем WAL в миллисекундах.

  • После сброса писатель спит в течение времени, указанного в wal_writer_delay, если не был пробуждён раньше асинхронным коммитом.
  • Если последний сброс произошёл менее чем за wal_writer_delay назад и было сгенерировано менее wal_writer_flush_after байт WAL, WAL записывается только в буфер ОС, но не сбрасывается на диск.
  • Примечание: На многих системах эффективная точность задержки сна составляет 10 мс. Установка wal_writer_delay в значение, не кратное 10, имеет тот же эффект, что и установка в следующее большее кратное 10.
Тип данных Значение по умолчанию Диапазон Контекст
int 200 1 ~ 10000 segments; system; reload

wal_writer_flush_after


Задаёт частоту сброса WAL писателем WAL в единицах блоков WAL (то есть XLOG_BLCKSZ байт).

  • Если последний сброс произошёл менее чем за wal_writer_delay назад и было сгенерировано менее wal_writer_flush_after байт WAL, WAL записывается только в буфер ОС, но не сбрасывается на диск.
  • Если wal_writer_flush_after установлен в 0, данные WAL всегда немедленно сбрасываются.
  • Если единица не указана, значение задаётся в блоках WAL (XLOG_BLCKSZ байт), обычно 8 КБ.
Тип данных Значение по умолчанию Диапазон Контекст
int 1048576/XLOG_BLCKSZ 0 ~ INT_MAX segments; system; reload


Контрольные точки

checkpoint_completion_target


Целевая продолжительность завершения контрольной точки.

  • Задаёт целевую продолжительность завершения контрольной точки как долю времени между контрольными точками.
Тип данных Значение по умолчанию Диапазон Контекст
floating point 0.5 0.0 ~ 1.0 segments; system; reload

checkpoint_flush_after


При записи более этого объема данных во время контрольной точки (в БЛОКАХ) попытайтесь заставить ОС отправить эти записи на нижележащее хранилище.

  • Это ограничивает объем грязных данных в кэше страниц ядра, снижая вероятность блокировки в конце контрольной точки при выполнении fsync или при выполнении ОС крупных фоновых операций записи.
  • Часто это приводит к значительному снижению задержки транзакций, хотя производительность может ухудшиться в некоторых случаях (особенно при нагрузке, превышающей shared_buffers, но не превышающей емкость кэша страниц ОС).
  • Эта настройка может не иметь эффекта на некоторых платформах.
  • При установке в 0 принудительная запись отключена.
Тип данных Значение по умолчанию Диапазон Контекст
int 0 0 ~ 256 segments; system; reload

checkpoint_timeout


Максимальное время между автоматическими контрольными точками WAL, в секундах.

  • Увеличение этого значения увеличивает время восстановления после сбоя.
  • Диапазон: до 86400 (т.е. 60 дней).
Тип данных Значение по умолчанию Диапазон Контекст
int 300 30 ~ 86400 segments; system; reload

checkpoint_warning


Если контрольные точки происходят чаще, чем этот интервал (в секундах), из-за заполнения сегментов WAL, предупреждение записывается в журнал сервера (указывая, что следует увеличить max_wal_size).

  • Установите в 0, чтобы отключить предупреждения. Предупреждение не выдается, если checkpoint_timeout меньше этого значения.
Тип данных Значение по умолчанию Диапазон Контекст
int 30 0 ~ INT_MAX segments; system; reload

max_wal_size


Максимальный размер (в МБ), до которого WAL может расти между автоматическими контрольными точками WAL.

  • Это мягкий лимит; размер WAL может превышать max_wal_size при высокой нагрузке, сбое checkpoint_timeout или высоком wal_writer_delay.
  • Увеличение этого параметра может увеличить время восстановления после сбоя.
Тип данных Значение по умолчанию Диапазон Контекст
int 4096 2 ~ INT_MAX/1024 segments; system; reload

min_wal_size


Минимальный размер WAL (в МБ) между автоматическими контрольными точками WAL.

  • Пока использование диска WAL остается ниже этого значения, старые файлы WAL всегда перерабатываются для будущего использования, а не удаляются.
  • Это можно использовать для обеспечения достаточного объема места WAL для пиковых нагрузок, например, при выполнении крупных пакетных заданий.
Тип данных Значение по умолчанию Диапазон Контекст
int 320 2 ~ INT_MAX/1024 segments; system; reload


Архивация

archive_command


Локальная shell-команда для архивации завершенного сегмента WAL.

  • Любое вхождение %p в строке заменяется путем к файлу, подлежащему архивации, а %f — именем файла (относительно каталога данных кластера). Для вставки буквального символа % используйте %%. Пример: archive_command = 'cp %p /mnt/server/archivedir/%f'
  • Примечание: Команда должна возвращать статус выхода 0 при успешном выполнении.
  • Игнорируется, если сервер запущен с отключенным archive_mode. Если archive_mode включен, а archive_command — пустая строка (по умолчанию), архивация WAL временно отключена, но сервер продолжает накапливать файлы сегментов WAL, ожидая предоставления команды.
  • Установка archive_command в команду-пустышку, которая всегда возвращает true (например, true в Unix или rem в Windows), эффективно отключает архивацию и нарушает цепочку WAL, необходимую для восстановления из архива, поэтому следует использовать только в редких случаях.
Тип данных Значение по умолчанию Контекст
string segments; system; reload

archive_mode


Когда archive_mode включен, завершенные сегменты WAL могут быть отправлены в архивное хранилище через archive_command.

  • Помимо отключенного состояния off, доступны два режима: on и always. В нормальном режиме работы между ними нет различий. Однако при установке в always архиватор WAL также активен во время восстановления из архива или в режиме standby. В режиме always все файлы, восстановленные из архива или полученные через потоковую репликацию, снова архивируются.
  • archive_mode и archive_command — независимые переменные, позволяющие изменять archive_command без влияния на режим архивации.
  • Когда wal_level (см. выше) установлен в minimal, archive_mode не может быть включен.
Тип данных Значение по умолчанию Диапазон Контекст
enum off off / on / always segments; system; restart

archive_timeout


Принудительное переключение на новый сегмент WAL после этого интервала времени (в секундах).

  • archive_command вызывается только для завершенных сегментов WAL. Поэтому, если сервер генерирует мало трафика WAL (или редкие всплески), может возникнуть длительная задержка между завершением транзакции и безопасной архивацией. Чтобы ограничить срок жизни неархивированных данных, установите archive_timeout, чтобы принудительно выполнять периодические переключения сегментов WAL.
  • При установке значения больше 0 сервер переключается на новый файл сегмента, если прошел этот интервал с момента последнего переключения и произошла любая активность в базе данных (включая одну контрольную точку) (контрольные точки пропускаются, если активности не было).
  • Примечание: Частично заполненные архивные файлы имеют тот же размер, что и полные. Поэтому использование очень маленького archive_timeout нецелесообразно — оно потребляет избыточное место в архиве. Обычно разумным значением является около одной минуты.
  • Если требуется более быстрая репликация с основного сервера, рассмотрите использование потоковой репликации вместо архивации.
  • Значение по умолчанию — 0, что отключает эту функцию.
Тип данных Значение по умолчанию Диапазон Контекст
int 0 0 ~ INT_MAX/2 segments; system; reload


Восстановление из архива

Эти параметры применяются только в режиме восстановления. Их необходимо сбросить, если планируются дальнейшие операции восстановления.

«Восстановление» включает запуск сервера в режиме standby (резервного сервера) или выполнение восстановления до определенной точки во времени. Обычно режим standby обеспечивает высокую доступность и/или масштабируемость для чтения, а восстановление до определенной точки во времени используется для восстановления после потери данных.

Чтобы запустить сервер в режиме standby, создайте файл с именем standby.signal в каталоге данных. Сервер переходит в режим восстановления и не останавливается при завершении архивных WAL, а пытается продолжить, подключившись к серверу-отправителю, указанному в primary_conninfo, и/или получив новые сегменты WAL через restore_command.

Чтобы запустить сервер в режиме восстановления до определенной точки во времени, создайте файл с именем recovery.signal в каталоге данных. Если присутствуют оба файла standby.signal и recovery.signal, приоритет имеет режим standby. Восстановление до определенной точки во времени завершается после воспроизведения всех архивных WAL или достижения recovery_target.

archive_cleanup_command


Shell-команда, выполняемая в каждой точке восстановления.

  • Этот параметр предоставляет механизм для удаления старых архивных файлов WAL, больше не нужных резервному серверу.
  • Любое %r заменяется именем файла, содержащего последнюю доступную точку восстановления — самый ранний файл, который необходимо сохранить для возобновляемого восстановления. Все файлы старше %r можно безопасно удалить. Для вставки буквального символа % используйте %%. Эта информация может использоваться для усечения архива до минимально необходимого объема для текущего восстановления. В одиночных конфигурациях standby часто используется модуль pg_archivecleanup в archive_cleanup_command, например, archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r'.
  • Однако обратите внимание: Если несколько standby-серверов восстанавливаются из одного и того же каталога архива, убедитесь, что файлы удаляются только тогда, когда ни один сервер их не нуждает.
  • Если команда возвращает ненулевой статус выхода, в журнал выводится предупреждение. Исключение: если команда завершена сигналом или ошибкой оболочки (например, команда не найдена), возникает критическая ошибка.
Тип данных Значение по умолчанию Контекст
string segments; system; reload

recovery_end_command


Shell-команда, выполняемая один раз при завершении восстановления.

  • Необязательна. Предоставляет механизм для очистки после репликации или восстановления.
  • Аналогично archive_cleanup_command, любое %r заменяется именем файла, содержащего последнюю доступную точку восстановления.
  • Если команда возвращает ненулевой статус, записывается предупреждение, но база данных продолжает запускаться. Исключение: если она завершена сигналом или ошибкой оболочки (например, команда не найдена), база данных не запустится.
Тип данных Значение по умолчанию Контекст
string segments; system; reload

restore_command


Локальная shell-команда для извлечения архивированного сегмента WAL из серии файлов WAL.

  • Обязательна для восстановления из архива, необязательна для потоковой репликации.
  • Любое %p заменяется путем к файлу, подлежащему восстановлению, %f — именем файла (относительно каталога данных кластера). Для вставки буквального символа % используйте %%. Любое %r заменяется именем файла, содержащего последнюю доступную точку восстановления. Пример: restore_command = 'cp /mnt/server/archivedir/%f "%p"'.
  • Среди файлов, которые необходимо сохранить для возобновляемого восстановления, это самый ранний файл, поэтому эту информацию можно использовать для минимизации архива.
  • Примечание: Команда должна возвращать статус выхода 0 при успешном выполнении. Она будет запрашиваться для имен файлов, отсутствующих в архиве; в таких случаях она должна возвращать ненулевой статус. Пример:
    restore_command = 'cp /mnt/server/archivedir/%f "%p"'
    restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
  • Исключение: если команда завершена сигналом (кроме SIGTERM, входящего в состав завершения сервера) или ошибкой оболочки (например, команда не найдена), восстановление прерывается, и сервер не запустится.
Тип данных Значение по умолчанию Контекст
string segments; system; restart


Цель восстановления

Эти параметры используются только во время целенаправленных операций восстановления. По умолчанию восстановление продолжается до конца журнала WAL. Эти параметры позволяют указать более раннюю точку остановки.

Примечание!
Может быть использовано не более одного из recovery_target, recovery_target_name, recovery_target_time, recovery_target_xid и recovery_target_lsn. Использование нескольких в конфигурационном файле приведет к ошибке.

recovery_target


Этот параметр указывает, что восстановление должно завершиться сразу после достижения согласованного состояния.

  • При восстановлении из онлайн-резервной копии этот параметр означает момент окончания резервной копии.
  • Примечание: Технически это строковый параметр, но immediate — единственное допустимое значение на данный момент.
Тип данных Значение по умолчанию Диапазон Область настройки
string immediate segments; system; restart

recovery_target_action


Задает действие, которое сервер должен выполнить немедленно после достижения цели восстановления.

  • Действие по умолчанию — pause, что означает паузу восстановления. promote означает завершение восстановления и запуск сервера для приема подключений. shutdown означает остановку сервера после достижения цели восстановления.
  • Настройка pause полезна, если цель восстановления является желаемой точкой остановки, позволяя выполнять запросы к базе данных. Пауза может быть возобновлена с помощью pg_wal_replay_resume(), что завершит восстановление. Если цель восстановления не является желаемой точкой остановки, остановите сервер, измените настройку цели восстановления на более позднюю и перезапустите для продолжения восстановления.
  • Настройка shutdown может быть полезна для подготовки экземпляра в желаемой точке воспроизведения. Экземпляр все еще сможет воспроизводить дополнительные записи WAL (и на самом деле будет вынужден воспроизводить записи WAL с последней контрольной точки в следующий раз при запуске).
  • Примечание: При установке recovery_target_action в shutdown файл recovery.signal не будет удален. Любая последующая загрузка приведет к немедленной остановке, если конфигурация не изменена или файл recovery.signal не удален вручную.
  • Эта настройка не имеет эффекта, если цель восстановления не задана.
  • Если hot_standby не включен, поведение promote совпадает с pause.
Тип данных Значение по умолчанию Диапазон Область настройки
enum pause pause / promote / shutdown segments; system; restart

recovery_target_inclusive


Указывает, останавливается ли восстановление после (on) или до (off) указанной цели восстановления.

  • Применяется, когда заданы recovery_target_lsn, recovery_target_time или recovery_target_xid.
  • Эта настройка управляет включением или исключением транзакций с точным местоположением WAL (LSN), меткой времени фиксации или идентификатором транзакции в цели восстановления.
Тип данных Значение по умолчанию Область настройки
boolean on segments; system; restart

recovery_target_lsn


Задает LSN WAL, до которого будет продолжаться восстановление.

  • Точная точка остановки зависит от recovery_target_inclusive (см. выше).
  • Этот параметр анализируется с использованием системного типа данных pg_lsn.
Тип данных Значение по умолчанию Область настройки
pg_lsn segments; system; restart

recovery_target_name


Задает именованную точку восстановления (созданную с помощью pg_create_restore_point()), до которой будет выполняться восстановление.

Тип данных Значение по умолчанию Область настройки
string segments; system; restart

recovery_target_time


Задает временную метку, до которой будет выполняться восстановление.

  • Точная точка остановки зависит от recovery_target_inclusive (см. выше).
Тип данных Значение по умолчанию Область настройки
timestamp segments; system; restart

recovery_target_timeline


Задает восстановление в конкретную временную линию.

  • Значение может быть числовым идентификатором временной линии или специальным значением. current восстанавливает вдоль той же временной линии, которая использовалась при создании базовой резервной копии; latest восстанавливает до последней найденной временной линии в архиве, что полезно для резервных серверов.
  • Обычно вам нужно устанавливать этот параметр только в сложных сценариях повторного восстановления, когда требуется вернуться в состояние, существовавшее после предыдущего восстановления до определенной точки во времени.
Тип данных Значение по умолчанию Диапазон Область настройки
string latest current / latest / Timeline ID segments; system; restart

recovery_target_xid


Задает идентификатор транзакции, на котором восстановление будет остановлено.

  • Хотя идентификаторы транзакций присваиваются последовательно при начале транзакции, транзакции могут завершаться в другом порядке.
  • Будут восстановлены транзакции, зафиксированные до (и опционально включая) указанной транзакции.
  • Точная точка останова зависит от recovery_target_inclusive (см. выше).
Тип данных Значение по умолчанию Область настройки
string сегменты; система; перезапуск