Mysql Backup с Mercurial - PullRequest
       18

Mysql Backup с Mercurial

7 голосов
/ 21 февраля 2010

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

Было бы здорово, если бы мы могли получить резервную копию mysql с сервера на локальный хост с помощью Mercurial [at localhost]. может быть с Remote Mysql Connection и т. д. знаете ли вы какой-либо способ сделать это? это возможно?

Спасибо !! С уважением ...

Ответы [ 2 ]

5 голосов
/ 24 февраля 2010

Если вы хотите сохранить периодическую резервную копию в репозитории контроля версий, есть три шага:

  1. Установите ртутный репозиторий, в котором вы хотите хранить снимки базы данных.

    mkdir db-backup
    hg init db-backup
    
  2. Получить базу данных в формате файла. Самый простой способ - через mysqldump. Простое резервное копирование файлов необработанных таблиц базы данных не будет работать, поскольку они могут находиться в несогласованном состоянии.

    cd db-backup
    mysqldump -u username -p -h dbhost databasename > databasename.sql
    
  3. Зафиксируйте дамп базы данных в хранилище управления версиями, в вашем случае mercurial.

    hg commit -A -m "committing database snapshot as at `date`"
    

Последние 2 шага - это то, что вы, вероятно, захотите автоматизировать.

2 голосов
/ 24 февраля 2010

Я думаю, что это было бы бессмысленным и опасным упражнением на нескольких уровнях. Но если вы думаете о том, как работает система VCS, она делает различие между текущей версией и предыдущей (или эталонной) версией, а затем, если вы возвращаетесь к предыдущей ревизии, она (VCS) записывает файлы в каталог. Во-первых, если вы сделали это с базой данных, а затем сделали diff, что бы вы увидели? Представление, которое вы получаете от данных в базе данных, фильтруется через СУБД, так что разбирать необработанные файлы было бы бессмысленно. Во втором случае, если вы восстановите ревизию в работающей базе данных, я не думаю, что вы получите много, кроме поврежденной базы данных. Кроме того, что произойдет с представлениями, хранимыми процедурами, триггерами и т. Д .?

Единственный раз, когда я думал о чем-то подобном, это дамп только структуры базы данных, без данных и VCS, чтобы я мог разобраться, какие структурные изменения были внесены. Однако усиление коммуникаций в команде решило эту проблему.

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

...