Как создать резервную копию и восстановить базу данных mysql в rails 3

#mysql #ruby-on-rails-3 #mysqldump #mysql-management

#ruby-on-rails-3 #mysql #mysql-управление

Вопрос:

Можно ли сделать следующее: 1. Горячее резервное копирование базы данных mysql из приложения Rails 3 2. Инкрементное резервное копирование базы данных mysql из приложения Rails 3 3. Холодное резервное копирование базы данных mysql из приложения Rails 3 4. Восстановите любую из вышеуказанных баз данных (горячую, инкрементную и холодную) через приложение Rails 3.

Пожалуйста, дайте мне знать, как этого добиться?

Спасибо, Судхир С.Н.

Комментарии:

1. может быть какая-то помощь trevorturk.com/2010/04/14/automated-heroku-backups если вы используете heroku

Ответ №1:

Настройте некоторые cronjobs. Мне нравится использовать Whenever для их написания. Я запускаю этот скрипт bash один раз в день:

 #!/bin/bash

BACKUP_FILENAME="APPNAME_production_`date  %s`.gz"
mysqldump -ce -h MYSQL.HOST.COM -u USERNAME -pPASSWORD APPNAME_production | gzip | uuencode $BACKUP_FILENAME | mail -s "daily backup for `date`" webmaster@yourdomain.com

echo -e "n====n== Backed up APPNAME_production to $BACKUP_FILENAME on `date` n====n"
  

И вывести его на cron.log . Это может потребовать некоторой настройки с вашей стороны, но она отлично работает, как только вы ее получите. Отправляю вам резервную копию по электронной почте один раз в день в виде архивированного файла, моя база данных довольно большая, а размер файла сейчас составляет менее 2000 КБ.

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

Для восстановления:

 gzip -d APPNAME_production_timestamp.gz
mysql -u USERNAME -pPASSWORD APPNAME_production < APPNAME_production_timestamp.sql
  

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