2011-10-10 133 views
2

是否可以執行以下操作: 1.從Rails 3應用程序對mysql數據庫進行熱備份的數據庫 2.從Rails 3應用程序對mysql數據庫的增量數據庫備份 3。通過Rails 3應用程序對數據庫進行冷數據庫備份 4.通過Rails 3應用程序還原上述任何數據庫(熱,增量和冷)。如何在rails 3中備份和恢復mysql數據庫

請讓我知道如何做到這一點?

謝謝, Sudhir C.N.

+0

可能有一些幫助http://trevorturk.com/2010/04/14/automated-heroku-backups/如果您使用的是heroku – Hishalv

+0

不,我沒有使用heroku。 – sudhir

回答

4

設置一些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`" [email protected] 

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 

或類似的東西......我不需要經常還原,所以我不知道這一次把我的頭頂部,但快速谷歌搜索應該把如果這不起作用的話。