2009-06-02 128 views
7

我需要知道如何定期備份我的MySQL數據庫並將備份下載到本地服務器。我使用的是navicat,它有一個簡單的備份界面和任務計劃功能,但它備份數據庫並將備份存儲在服務器上。我想有一種方法可以將備份一次下載到本地系統,而不是將它們與數據庫放在同一臺服務器上。定期備份MySQL數據庫

+0

可能更適合serverfault? – tronda 2009-06-02 11:55:28

+1

你還應該看看:http://www.percona.com/docs/wiki/percona-xtrabackup:start – Everyz 2010-06-22 09:38:18

回答

14

設置其中的一些間隔之後運行mysqldump的命令的服務器的cron(例如24小時)

mysqldump -hMY_HOST.COM -uDB_USERNAME -pDB_PASSWORD USERNAME_DATABASENAME > MysqlDump.sql 

創建轉儲文件之後。設置另一個cron以將此轉儲複製到目標服務器(最好是本地),使其以上述cron的相同間隔執行。

scp [email protected]_HOST.COM:/some/path/file [email protected]_HOST2.COM:/some/path/file 

注:此命令可能會導致高服務器負載(請確保您正在執行他們當具有最小負載的服務器)

0

除了mysqldump的,也有一些其他的備份選項。這些主要是爲了解決導致高負載/長重載時間的mysqldump。

  1. 這裏有InnoDB hot backup,它是InnoDB的製造商以在線方式備份的支付產品。備份InnoDB表比MyISAM更難,因爲對於後者,如果表被刷新,你可以複製文件,但前者有問題。
    • 如果您的備份可以拍攝硬盤的即時快照,FLUSH TABLES WITH READ LOCK會清除您對磁盤的寫入,以便備份處於一致狀態。但是,這會阻止所有的閱讀,直到完成,所以如果它們不是即時的,那就不好。