15
Порядковый номер, +1 при каждом восстановлении
номер N линии времени входит в имя сегмента WAL
история сохраняется в файле pg_wal/N.history и архивируется
Линии времени
1
2
целевая
точка
1
2
recovery_target_timeline = 'latest'
восстановление по последней линии
(по умолчанию)
recovery_target_timeline = 'current'
восстановление по текущей линии
recovery_target_timeline = '1'
восстановление по указанной линии
После восстановления в прошлом сервер будет генерировать новые
сегменты WAL, которые будут пересекаться с сегментами «из прошлой
жизни». Чтобы не потерять сегменты и, вместе с ними, возможность
восстановления на другой момент, PostgreSQL вводит понятие линии
времени. После каждого восстановления (с использованием
recovery.conf) номер линии времени увеличивается, и этот номер
является частью номера сегментов WAL.
По умолчанию восстановление происходит в текущей линии времени.
Выбрать другую линию можно с помощью параметра
recovery_t arget_timeline.
Линии времени образуют древовидную структуру, на рисунках приведен
пример. Первая линия имеет номер 1. Произошло восстановление на
момент времени в прошлом, и началась линия 2.
Если теперь выполнить восстановление с указанием параметра
recovery_t arget_timeline = 'latest' (по умолчанию с версии 12), то, дойдя
то точки ветвления, восстановление продолжится во второй (более
поздней) линии.
Если же указать параметр recovery_target_timeline = '1', то
восстановление продолжится по первой (указанной) линии, если
указать recovery_target_timeline = 'current', то по текущей (в нашем
случае тоже по линии 1).
Информацию о точках ветвления PostgreSQL берет из файлов истории
pg_wal/N.history. Поэтому их никогда не следует удалять из архива.