如何在rails 3中备份和恢复mysql数据库

时间:2011-10-10 08:15:06

标签: mysql ruby-on-rails-3 mysqldump mysql-management

是否可以执行以下操作:  1.从Rails 3应用程序的mysql数据库的热数据库备份  2.从Rails 3应用程序增加mysql数据库的数据库备份  3.从Rails 3应用程序对mysql数据库进行冷数据库备份  4.通过Rails 3应用程序恢复上述任何数据库(热,增量和冷)。

请告诉我如何实现这一目标?

谢谢, Sudhir C.N。

1 个答案:

答案 0 :(得分:5)

设置一些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。这可能需要一些调整,但一旦你得到它就会很好。每天通过电子邮件将备份发送给您一次作为gzip压缩文件,我的数据库相当大,文件现在不到2000kb。

这不是最安全的技术,所以如果你真的担心有人可能会进入你的电子邮件并获得备份(应该加密敏感信息),那么你必须找到另一种解决方案

要恢复:

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

或者类似的东西......我不需要经常恢复,所以我不知道这个问题,但是如果这不起作用的话,快速谷歌搜索会出现问题。