#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 должен что-то найти, если это не сработает.