这是我们的 MySQL 设置:
“复制环”中的 3 个 MySQL 服务器:它们都是主服务器,S1 是 S2 的从服务器,S2 是 S3 的从服务器,S3 是 S4 的从服务器。
到目前为止,我们会对机器进行快照,但我们现在无法/不想再这样做了。我们正在尝试将数据库的完整备份到 S3。
我的想法是,我们需要mysqldump
每隔几个小时进行一次,然后将其上传到 S3。这样做的问题是,当您拥有超过几百 MB 的数据时(我们的数据为 8GB),转储的成本非常高。
保存二进制日志是一种选择,但是恢复可能需要几天时间,因为我们需要应用所有二进制日志 :/
对我们而言有没有什么出色的解决方案?
答案1
您实际上可以使用复制来实现这一点。我想到两个选项。
- 使用 MySQL“风格”时间延迟复制(即插入第四台机器并让其进行滚动恢复)。
- 您还可以添加第四台机器作为热备用,每天将其取出,然后正常备份或快照(例如,在 Solaris 上使用 ZSF 或在 Linux 上使用 LVM)。最后将其放回复制并让其赶上主服务器。
答案2
我不知道它是否很棒,但我们对 R1Soft 的 MySQL CDP 非常满意。您可能想看看它:http://wiki.r1soft.com/pages/viewpage.action?pageId=4460570
答案3
答案4
您的应用程序使用什么存储引擎?
如果是 InnoDB,你可以使用备份每天进行完整备份,每隔几小时进行增量备份。