PITR c применением файла timeline history в PostgreSQL
Файл timeline history играет важную роль в процессах PITR.
Предположим, что в восстановленном кластере баз данных, чей timelineId равен 2, произошла ошибка в '12:15:00'. В этом случае для восстановления кластера баз данных необходимо создать новый файл recovery.conf:
restore_command = 'cp /mnt/server/archivedir/%f %p' recovery_target_time = "2024-1-1 12:15:00 GMT" recovery_target_timeline = 2
Параметр 'recovery_target_time' фиксирует время, была допущена ошибка, параметр 'recovery_target_timeline' имеет значение 2, что позволит восстановить базу данных по ее timeline.
Для того, чтобы восстановить базу данных в целевое время по timelineId 2, перезапустите сервер PostgreSQL и установите режим PITR.
(1) PostgreSQL считывает значение 'CHECKPOINT LOCATION' из файла backup_label;
(2) Некоторые значения параметров считываются из файла recovery.conf; в данном случае это 'restore_command', 'recovery_target_time' и 'recovery_target_timeline';
(3) PostgreSQL считывает файл timeline history '00000002.history', соответствующий значению параметра 'recovery_target_timeline';
(4) PostgreSQL выполняет воспроизведение данных WAL следующим образом:
Из точки REDO в LSN '0/A000198', которая записана в файле '00000002.history', PostgreSQL считывает и воспроизводит WAL-данные соответствующих архивных журналов, чей timelineId равен 1;
Начиная с момента LSN '0/A000198' и заканчивая моментом до '1-1-202412:15:00', PostgreSQL считывает и воспроизводит WAL-данные (из соответствующих архивных журналов), чей timelineId равен 2.
(5) Когда процесс восстановления завершится, текущий timelineId будет равен 3, а в подкаталоге pg_wal будет создан новый файл timeline history с именем '00000003.history'.
postgres> cat /home/postgres/archivelogs/00000003.history 1 0/A000198 before 2024-1-1 12:05:00.861324+00 2 0/B000078 before 2024-1-1 12:15:00.927133+00
Если вы выполняете PITR более одного раза, необходимо явно задать timelineId для использования соответствующего файла timeline history.
Таким образом, файлы timeline history являются не только журналами истории кластера баз данных, но и документами по восстановлению для процесса PITR.




