pg_probackup icon indicating copy to clipboard operation
pg_probackup copied to clipboard

Логика восстановления PITR при отсутствии необходмых wal

Open slothfk opened this issue 3 years ago • 2 comments

В настоящий момент при PITR и отсутствии необходимых wal для достижения указанной "точки", probackup просто прерывает работу с указанием того, что не найден необходимый для восстановления сегмент

Предложение: изменить поведелние probackup в подобных случаях таким образом, чтобы он после валидации копии (которая выполняется по-умолчанию), сообщал пользователю о том, что достижение указанной "точки" невозможно, но копия может быть восстановлена на такой-то момент (который определен по результатам валидации), с запросом подтверждения продолжения восстановления или отказа от такового. Вместе с тем предусмотреть механизм автоматического согласия на данный запрос.

Решаемая задача (для чего нам это надо): мы храним копии с большой глубиной (30 дней, и более), однако журналы хранятся только для последний нескольких копий (положим 3). Таким образом, журналов между копиями старше 3-ей нет. Для того чтобы восстановиться по состоянию на какую-то копию необходимо точно знать или временной отрезок или LSN (это можно узнать из информации по резервной копии и результатам валидации), т.е. это приводит к лишним действиям со стороны пользователя. Мне кажется, заметно удобнее (с точки зрения пользоватля) было бы указать точку восстановления в понятных величинах (дата/вермя), а probackup бы предложил подходящий вариант, с которым пользователь волен согласится или отказаться.

Как решение (стремное) в текущей ситуации можно запускать восстановление с ключом --no-validate

slothfk avatar Jul 06 '21 08:07 slothfk

Добрый день! Разве --recovery-target=latest не делает именно то, что нужно?

gsmolk avatar Jul 09 '21 17:07 gsmolk

Добрый день! Разве --recovery-target=latest не делает именно то, что нужно?

Если восстанавливать на последний доступный момент времени, то годится, а если необходимо восстановиться на какую-то не последнюю из имеющегося набора копий? Да, можно указать, на какую именно копию требуется восстановление, но для этого необходимо получить список копий, а потом запустить восстановление с указанными параметрами (LSN или еще чего). В моем сценарии "хочется" запустить команду, указав момент времени, а инструмент сам предложит варианты, типа "могу восстановить до такого момента, хочешь?". Таким образом мы убираем лишнее "пользовательское действие" по получению списка копий ...

slothfk avatar Jul 12 '21 07:07 slothfk