Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
slothfk opened this issue Jul 6, 2021 · 2 comments

Comments

@slothfk
Copy link

slothfk commented Jul 6, 2021

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

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

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

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

@gsmolk
Copy link
Contributor

gsmolk commented Jul 9, 2021

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

@slothfk
Copy link
Author

slothfk commented Jul 12, 2021

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants