Резервное копирование БД с помощью Git - хорошая идея?

То, как я вижу, что дамп PostgeSQL DB в один большой файл SQL, а затем фиксация и передача в удаленное Git-репозиторий, может быть отличным решением для резервного копирования: я получаю историю всех версий, хэширование, безопасный транспорт, односторонний (действительно сложно испортить и удалить данные нажатием), эффективное хранение (при условии отсутствия двоичных файлов) и отсутствие шансов на то, что новый образ повредит резервную копию (что является риском для rsync).

Кто-нибудь использовал этот подход, особенно с pg, и может поделиться своим опытом? Ловушки?

12 голосов | спросил Assaf Lavie 27 AMpWed, 27 Apr 2011 09:20:00 +040020Wednesday 2011, 09:20:00

3 ответа


0

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

http://www.viget.com/extend/backup -Ваш-база-в-мерзавец /

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

http: //www.makingitscale. ком /2010 /с использованием-ZFS-для-быстро-MySQL-базы данных backups.html

ответил manojlds 27 AMpWed, 27 Apr 2011 09:23:35 +040023Wednesday 2011, 09:23:35
0

Как правило, вы должны использовать инструмент резервного копирования для создания резервных копий и инструмент управления версиями для контроля версий. Они похожи, но не одинаковы.

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

Если вы говорите только о схеме, то, вероятно, вы не сможете сделать много ошибок с «резервными копиями» с помощью Git. Но если вы хотите сделать резервную копию данных, то все может быть сложно. Git не очень хорош с большими файлами. Вы можете использовать что-то вроде git-annex для решения этой проблемы, но тогда вам понадобится отдельный механизм резервного копирования для создания внешних файлов. Кроме того, использование «правильных» методов резервного копирования, таких как pg_dump или архивация WAL, дает другие преимущества, такие как возможность восстановления подмножеств баз данных или восстановление на определенный момент времени.

Возможно, вы также хотите создать резервную копию других частей операционной системы. Как ты это делаешь? Желательно не с системой контроля версий, потому что они не так хорошо сохраняют права доступа к файлам, временные метки и специальные файлы. Поэтому имеет смысл связать резервную копию базы данных с существующей системой резервного копирования.

ответил Peter Eisentraut 27 PMpWed, 27 Apr 2011 12:12:46 +040012Wednesday 2011, 12:12:46
0

Я сделал это в $ day_job, но это с MySQL.

Мне пришлось написать сценарий для разделения монолитного файла mysqldump на отдельные файлы, чтобы я мог получать хорошие отчеты о различиях, а также потому, что git лучше работает с небольшими файлами.

Сценарий разбивает монолитный файл SQL на отдельные схемы таблиц SQL и данные.

Я также должен был убедиться, что каждый оператор вставки sql не находится в одной строке, чтобы иметь удобочитаемые отчеты о разнице.

Одним из преимуществ сохранения дампов в git является то, что я могу запустить «git log --stat», чтобы получить обзор того, какие таблицы изменились между ревизиями «резервного копирования».

ответил holygeek 27 PMpWed, 27 Apr 2011 13:07:23 +040007Wednesday 2011, 13:07:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132