完整的 MySQL 备份策略

完整的 MySQL 备份策略

这是我们的 MySQL 设置:

“复制环”中的 3 个 MySQL 服务器:它们都是主服务器,S1 是 S2 的从服务器,S2 是 S3 的从服务器,S3 是 S4 的从服务器。

到目前为止,我们会对机器进行快照,但我们现在无法/不想再这样做了。我们正在尝试将数据库的完整备份到 S3。

我的想法是,我们需要mysqldump 每隔几个小时进行一次,然后将其上传到 S3。这样做的问题是,当您拥有超过几百 MB 的数据时(我们的数据为 8GB),转储的成本非常高。

保存二进制日志是一种选择,但是恢复可能需要几天时间,因为我们需要应用所有二进制日志 :/

对我们而言有没有什么出色的解决方案?

答案1

您实际上可以使用复制来实现这一点。我想到两个选项。

  1. 使用 MySQL“风格”时间延迟复制(即插入第四台机器并让其进行滚动恢复)。
  2. 您还可以添加第四台机器作为热备用,每天将其取出,然后正常备份或快照(例如,在 Solaris 上使用 ZSF 或在 Linux 上使用 LVM)。最后将其放回复制并让其赶上主服务器。

答案2

我不知道它是否很棒,但我们对 R1Soft 的 MySQL CDP 非常满意。您可能想看看它:http://wiki.r1soft.com/pages/viewpage.action?pageId=4460570

它将创建备份到任何本地目录/挂载点。因此使用子云或者s3fs您可以直接备份到 S3。

答案3

答案4

您的应用程序使用什么存储引擎?

如果是 InnoDB,你可以使用备份每天进行完整备份,每隔几小时进行增量备份。

相关内容