LINUX.ORG.RU

Как делать инкрементальный бэкап без WAL-файлов?

 ,


0

3

Есть только удалённый доступ как юзера, без доступа на сервер. Сейчас делаю через pgdump, но как-то неудобно это, куча места впустую тратится. В голову приходит только хранить предыдущий бэкап и делать тупо текстовый diff с текущим, который и сохранять… Но как-то это странно и не уверен, что diff будет нормально работать для огромных файлов. В теории вроде никто не мешает написать инструмент, который будет это делать более интеллектуально, т.е. работать аналогично pgdump-у, но сохранять только изменённые строки, может такой инструмент уже существует?

★★★★★

делать тупо текстовый diff с текущим, который и сохранять

Сэкономив таким образом место ты СИЛЬНО продлишь простой в случае если нужно будет разворачивать из бэкапа.

mord0d ★★★★★
()

Чтобы сделать нормальный дифференциальный бекап базы, нужны её логи репликации за соответствующий период. У обычного юзера их, очевидно, нет. Сгенерировать их с помощью селектов и последующего сравнения их выдачи, конечно, можно, но это будет ужасный оверхед, который перекроет любые выгоды от такого решения. Так что сомневаюсь, что кто-то делал это в готовом виде.

firkax ★★★★★
()

Используй для хранения бекапов ФС со встроенной дедупликацией и продолжай хранить бекапы в обычном виде :-)

Я бы не стал делать бекапы зависимыми друг от друга. Так как один одна из причин потребности в нескольких бекапах - сбой заметили не сразу и успела забекапиться фигня какая-то. А так они в любом случае не должны храниться на том же носителе, что и основная БД. Если ёмкости носителя бекапов хватает, проблемы нет. Если не хватает, то я бы снижал гранулярность бекапов. Например, в течении последней недели хранил каждый день, затем последний месяц только каждую неделю, затем последний год только каждый месяц, затем только каждый год (пример условный, адаптировать под требования конкретной системы).

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 4)

хранить предыдущий бэкап и делать тупо текстовый diff

но сохранять только изменённые строки, может такой инструмент уже существует?

borg? Не на уровне строк в БД конечно, но он пытается определять какие участки файла изменились.

opcode
()

Есть только удалённый доступ как юзера, без доступа на сервер

Это никак не мешает настроить репликацию. Реплицированная БД сама по себе бэкап, ну и WAL там тебе будет доступен.

no-such-file ★★★★★
()

Есть только удалённый доступ как юзера, без доступа на сервер.

  1. Поднимаете свой узел постгреса.

  2. Заливаете туда текущую резервную копию, взятую pgdump’ом.

  3. У вас есть сервер с актуальными данными, в котором вы можете делать что угодно. Готово. Вы великолепны.

ugoday ★★★★★
()