-
Notifications
You must be signed in to change notification settings - Fork 86
Зачем нужно хранить FULL для выполнения последующих инкрементных бэкапов #375
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
Comments
Добрый день!
Дело в том, что при создании новой инкрементальной копии, пробэкап сначала находит подходящий FULL и подбирает подходящую цепочку инкрементальных бэкапов, исходящую из этого FULL бэкапа, к которой можно пристегнуть текущий. см пример в исходниках: Вашу проблему можно решить следующим образом - после уноса бэкапа на ленту, вместо удаления бэкапа целиком удалить только директорию |
это плохое решение, т.к. бэкап FULL будет отображаться в списке бэкапов в статусе ОК, а по факту он будет невалидным, ведь каталог database будет пустым. Когда систему администрирует несколько DBA, это может приводить к проблемам, особенно, когда вдруг понадобится выполнить рестор. Решать регламентированием это не особо хочется. |
Что именно Вы имеете ввиду? |
Сейчас есть зависимость метаданных бэкапов (описания бэкапов) и самих файлов данных бэкапов. |
Файлы метаданных бэкапа все же лежат отдельно от файлов данных.
Наверное, тут можно придумать некий дополнительный статус, например, DETACHED, который говорил бы о том, что файлы данных отсутствуют. |
это будет явно полезно, чем статус ОК и пустой каталог database внутри бэкапа. Но на счёт разделения метаданных, думаю, стоит подумать (не в рамках этого issue, это больше архитектурный вопрос). В probackup при удалении бэкапа (например, при истечении retention) каталог бэкапа удаляется полностью и вместе с ним и метаданные о нём, а было бы здорово иметь историю бэкапов за гораздо больший период (в идеале с момента инициализации инстанса в probackup) |
Хорошо, сделаем что-нибудь в этом направлении.
Ну у нас есть мрия о хранении метаданных в отдельном PostgreSQL инстансе, это вполне бы позволило сделать то, чего Вы хотите. |
Так и пришлось делать: отдельный инстанс + автоматизация выгрузки/загрузки/разбора pg_probackup show в формате json. |
А отдельный инстанс зачем? |
история по бэкапам со всех серверов в одном месте, ну и данные по бэкапам с реплики невозможно записать в саму реплику (а бэкапы чаще всего с реплики делаются) |
а, туплю, я подумал, что речь идет об отдельной пробэкапном инстансе |
Вопрос для расширения кругозора. Зачем Вам информация о давно удаленных бэкапах? |
из истории за длительный период можно получить, например:
|
Спасибо большое! |
Подобные доработки, с возможностью хранения истории бэкапов с целью дальнейшего анализа очень интересно! |
Да идея-то простая, метаданные хранить в отдельном PG кластере. |
Есть проблема с необходимостью хранения большого объёма бэкапов, может есть возможность оптимизировать этот момент?
Описание:
Но если удалить FULL, то бэкапы DELTA/PAGE не выполняются.
Понятно, что FULL нужен для рестора, но зачем он нужен для последующих DELTA/PAGE (НЕ первого после FULL)?
Если поведение изменится, то можно существенно сэкономить на затратах на локальный диск для бэкапов, выступающих в качестве временного буфера перед перемещением бэкапов на ленту.
Есть довольно весомая разница в объёмах (особенно на БД с повышенной генерацией WAL) в хранении либо 1xFULL+1xDELTA, либо 1xFULL+11xDELTA (при условии, что DELTA каждые 2 часа).
The text was updated successfully, but these errors were encountered: