2009-06-02 117 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会清除您对磁盘的写入,以便备份处于一致状态。但是,这会阻止所有的阅读,直到完成,所以如果它们不是即时的,那就不好。