【问题标题】:Taking periodic backups of a MySQL database定期备份 MySQL 数据库
【发布时间】:2009-06-02 10:17:01
【问题描述】:

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

【问题讨论】:

标签: mysql backup


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-19
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 2018-02-11
        • 1970-01-01
        • 2019-07-25
        • 2015-06-26
        相关资源
        最近更新 更多