Подтвердить что ты не робот

Лучший способ инкрементного резервного копирования PostgreSQL

В настоящее время я использую pg_dump с номером gzip с номером split. Но проблема в том, что все выходные файлы всегда меняются. Таким образом, резервное копирование на основе контрольной копии копирует все данные.

Есть ли еще какие-либо хорошие способы выполнения инкрементной резервной копии базы данных PostgreSQL, где полная резервная копия данных может быть восстановлена ​​из резервных данных?

Например, если pg_dump может сделать все абсолютно упорядоченным, поэтому все изменения применяются только в конце дампа или аналогичного.

4b9b3361

Ответ 1

Обновление: Проверьте Barman, чтобы упростить настройку архивации WAL для резервного копирования.

Вы можете использовать метод непрерывного WAL-архивирования PostgreSQL. Сначала вам нужно установить wal_level=archive, затем выполнить полную резервную копию на уровне файловой системы (между выдачей команд pg_start_backup() и pg_stop_backup()), а затем просто скопировать более новые файлы WAL, настроив параметр archive_command.

Преимущества:

  • Инкрементный, архивы WAL включают все необходимое для восстановления текущего состояния базы данных.
  • Почти нет накладных расходов, копирование файлов WAL дешево
  • Вы можете восстановить базу данных в любой момент времени (эта функция называется PITR или восстановление по времени)

Недостатки:

  • Сложнее настроить, чем pg_dump
  • Полная резервная копия будет намного больше, чем pg_dump, потому что все внутренние структуры и индексы таблицы включены
  • Не работает хорошо для баз данных с записью, так как восстановление займет много времени.

Существуют некоторые инструменты, такие как pitrtools и omnipitr, которые могут упростить настройку и восстановление этих конфигураций. Но я сам их не использовал.

Ответ 2

Также проверьте http://www.pgbackrest.org

pgBackrest - это еще один инструмент резервного копирования для PostgreSQL, который вы должны оценивать по мере его поддержки:

  • параллельная резервная копия (тестируется для масштабирования почти линейно до 32 ядер, но, вероятно, может идти гораздо дальше..)
  • резервные копии с резервным сжатием
  • инкрементные и дифференциальные (сжатые!) резервные копии
  • потоковое сжатие (данные сжимаются только один раз в источнике, а затем передаются по сети и сохраняются)
  • parallel, delta restore (возможность обновления старой версии до последней версии)
  • Полностью поддерживает табличные пространства
  • Резервное копирование и истечение срока архива
  • Возможность возобновить резервное копирование, которое по какой-то причине не удалось
  • и т.д. и т.д.

Ответ 3

Другим методом является резервное копирование на обычный текст и использование rdiff для создания инкрементных различий.