定期备份MySQL数据库

时间:2009-06-02 10:17:02

标签: mysql backup

我需要知道如何定期备份MySQL数据库并将备份下载到本地服务器。我正在使用navicat,它有一个简单的备份接口和任务计划工具,但它备份数据库并将备份存储在服务器本身。我希望有一种方法可以将备份下载到本地系统,而不是将它们放在与数据库相同的服务器上。

3 个答案:

答案 0 :(得分:15)

设置服务器cron,在一段时间间隔(例如24小时)后运行mysqldump命令

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

创建转储文件后。设置另一个cron将此转储复制到目标服务器(最好是本地),使其以相同的上述cron间隔执行。

scp user@MY_HOST.COM:/some/path/file user2@MY_HOST2.COM:/some/path/file

注意:此命令可能导致服务器负载过高(确保在服务器负载最小时执行它们)

答案 1 :(得分:0)

除了mysqldump之外,还有一些其他备份选项。这些主要是解决mysqldump导致高负载/长重载时间。

  1. InnoDB hot backup,它是InnoDB制造商以在线方式备份的付费产品。备份InnoDB表比MyISAM更难,因为对于后者,如果表被刷新,你可以只复制文件,但前者有问题。
    • 如果您的备份可以拍摄硬盘的即时快照,FLUSH TABLES WITH READ LOCK将清除您对磁盘的写入,以便备份处于一致状态。但是,这将阻止所有读取,直到你完成,所以如果它们不是瞬时的,那就不会好了。

答案 2 :(得分:-1)

你应该试试mydumper - https://answers.launchpad.net/mydumper/+faq/338

它有一个守护程序模式,可以为您定期备份,并由一些优秀的MySQL工程师开发。我相信它已经像dba想象的那样被称为mysqldump; )