定期备份MySQL数据库

10

我需要知道如何定期备份MySQL数据库并将备份下载到我的本地服务器。我正在使用Navicat,它有一个易于使用的备份界面和任务调度功能,但它备份数据库并将备份存储在服务器上。我希望有一种方法可以在备份完成后将其下载到我的本地系统,而不是将其保留在与数据库相同的服务器上。


也许更适合在ServerFault上? - tronda
1
你也应该看一下:http://www.percona.com/docs/wiki/percona-xtrabackup:start - Everyz
3个回答

16

设置一个服务器 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

注意:这些命令可能会导致服务器负载过高(请确保在服务器负载最小的情况下执行)


0

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

  1. InnoDB热备份,这是InnoDB制造商提供的一种付费产品,可在线备份。备份InnoDB表比MyISAM更难,因为对于后者,如果刷新表,则可以直接复制文件,但前者存在问题。
    • 如果您的备份可以即时快照硬盘,则FLUSH TABLES WITH READ LOCK将刷新写入磁盘的内容,以使备份处于一致状态。但是,这将阻止所有读取,直到完成,因此如果它们不是即时的,则不会很好。

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接