完整的MySQL BAckup策略

这是我们的MySQL设置:

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

到目前为止,我们会做机器的快照,但这不是我们可以/想要做的事情了。 我们正在尝试将数据库的完整备份备份到S3。

我的想法是,我们需要每隔几个小时制作一次mysqldump ,然后将其上传到S3。 这个问题是,当你有超过几百MB的数据(我们在8GB)时,转储是相当昂贵的。

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

任何真棒解决scheme?

你实际上可以使用这个复制。 想到两个select。

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

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

它将创build备份到任何本地目录/挂载点。 所以使用Subcloud或s3fs你可以直接备份到S3。

你的应用使用什么存储引擎?

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