Резервное копирование БД против резервного копирования ВМ - PullRequest
3 голосов
/ 29 августа 2011

Мы обслуживаем сайт Django / Postgres, работающий на гипервизоре виртуальных машин. Сейчас мы пытаемся выяснить нашу стратегию резервного копирования и имеем два возможных варианта:

  1. Резервное копирование БД напрямую с помощью pg_dump
  2. Резервное копирование ВМ напрямую путем копирования образа ВМ

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

Какой лучший и более рекомендуемый способ резервного копирования БД? Есть ли причины не использовать резервное копирование виртуальной машины?

Спасибо

Ответы [ 3 ]

3 голосов
/ 29 августа 2011

Вопрос в основном сводится к тому, можете ли вы считать горячую копию файлов данных PostgreSQL резервной копией?

Ответ: не совсем.PostgreSQL очень старается с помощью WAL, чтобы гарантировать, что его файлы все время находятся в согласованном состоянии и что он может пережить сбой питания, но запуск его из копии этих файлов переводит PostgreSQL в режим восстановления.Если резервное копирование произошло не в ту секунду, и PostgreSQL не может восстановить состояние этих файлов, ваша резервная копия бесполезна.Вы не хотите, чтобы ваш механизм резервного копирования / восстановления зависел от механизма восстановления (если только вы не имеете дело с программным обеспечением «только сбой», которым PostgreSQL не является).

Вероятность того, что PostgreSQL не сможет восстановитьсяот этих файлов не высокий, но и не ноль.С другой стороны, вероятность того, что PostgreSQL не сможет загрузить созданный дамп SQL, равна нулю.Я предпочитаю варианты резервного копирования с более низкой вероятностью отказа.pg_dump предназначен для создания резервных копий.

3 голосов
/ 29 августа 2011

PostgreSQL рекомендует использовать pg_dump для резервного копирования, поскольку резервное копирование файловой системы (или ВМ) требует закрытия базы данных (и имеет другие недостатки):

http://www.postgresql.org/docs/8.1/static/backup-file.html

Редактировать: Кроме того, резервная копия pg_dump будет значительно меньше, чем дамп файловой системы той же базы данных.

0 голосов
/ 30 августа 2011

Есть дополнительная опция.С PostgreSQL вы можете создавать онлайн-резервные копии, которые позволяют делать снимки файловой системы и поддерживать согласованность.Вы можете увидеть подробности здесь: http://www.postgresql.org/docs/9.0/static/continuous-archiving.html

Мы используем этот точный метод для создания резервных копий, когда мы запускаем PostgreSQL на виртуальной машине.

...