Как сделать резервную копию и восстановить базу данных mysql в rails 3 - PullRequest
3 голосов
/ 10 октября 2011

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

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

Спасибо, Sudhir C.N.

1 Ответ

5 голосов
/ 10 октября 2011

Настройка некоторых cronjobs.Мне нравится использовать Всякий раз для их записи.Я запускаю этот скрипт 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.Это может потребовать некоторой настройки с вашей стороны, но она прекрасно работает, как только вы ее получите.Один раз в день отправляет вам по электронной почте резервную копию в виде файла в формате gzip, моя база данных довольно велика, и размер файла сейчас не превышает 2000 КБ.

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

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

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

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

...