我目前的mysql备份策略是复制。我在主人身后设置了一个或多个奴隶。如果主人失败了,我仍然有一个干净和最新的数据副本,从一个奴隶。它的工作没有任何问题。现在我开始有更多的主节点来管理,每个主节点都持有不同的数据。
现在,如果我想使用相同的备份策略,我需要为每个主服务器设置至少一个从实例。它将使mysql节点的数量翻一番。理想情况下,我希望所有备份只有一台服务器。我能想到的可能的解决办法是:
对于可能的解决方案#1,它应该可以工作,但是它需要花费内存来运行从实例。对于可能的解决方案#2,我担心当数据被rsync‘编辑时,主服务器失败,备份可能不包含数据的完整副本。那么,还有其他更好的策略来安全地备份所有主节点到一个地方吗?
发布于 2015-11-03 11:17:52
“我目前的mysql备份策略是复制。”复制不能是备份策略,但可以在从服务器上设置备份!我猜你是在说“如果主人失败了,那就用奴隶”.
不管怎样..。MySQL 5.7附带了多源复制。您可以从两个不同的主程序中复制单个从机。
您可以编写自己的脚本来循环更改-主程序-切换主程序并进行复制。
你的想法:
while(true) {
change master to master1 from noted co-ordinates
monitor until sec_behind_master=0
Note coordinates: relay_master_log_file, exec_master_log_pos
change master to master2 from noted co-ordinates
monitor until sec_behind_master=0
Note coordinates: relay_master_log_file, exec_master_log_pos
}最后,您可以在这个从服务器上设置备份。(这并不比下面写的复杂多少)
您还可以为主程序和设置备份提供单独的辅助服务器。您以后可以将这些备份推送到远程位置/网络驱动器/磁带/上载到s3以保留更长时间。
master1--> slave1
master2--> slave2
(如果需要时间点还原,请考虑备份二进制日志。)
对于备份,可以使用传统的米斯德或推土机/装载机。如果您的数据大小很大,最好采用/w物理备份,然后按照用荷兰框架建立mysql的xtrabackup进行。
https://dba.stackexchange.com/questions/119908
复制相似问题