主机关闭时的MySQL主从复制
我在Ubuntu实例上运行MySQL作为数据库。我使用的是MySQL主从复制,其中主服务器的更改将写入从服务器,而从服务器的更改不会反映在主服务器上。那很好。我使用HAProxy负载平衡器来前置MySQL实例,所有请求都将发送到主MySQL实例。如果主MySQL实例关闭,则从MySQL实例将充当主实例,HAProxy将向salve发送所有请求。主动-被动情景主机关闭时的MySQL主从复制,mysql,database,ubuntu,replication,haproxy,Mysql,Database,Ubuntu,Replication,Haproxy,我在Ubuntu实例上运行MySQL作为数据库。我使用的是MySQL主从复制,其中主服务器的更改将写入从服务器,而从服务器的更改不会反映在主服务器上。那很好。我使用HAProxy负载平衡器来前置MySQL实例,所有请求都将发送到主MySQL实例。如果主MySQL实例关闭,则从MySQL实例将充当主实例,HAProxy将向salve发送所有请求。主动-被动情景 HAProxy - 192.168.A.ABC MySQL Master - 192.168.A.ABD MySQL Slave - 19
HAProxy - 192.168.A.ABC
MySQL Master - 192.168.A.ABD
MySQL Slave - 192.168.A.ABE
让我们假设MySQL master192.168.A.ABD已关闭。现在所有的请求都将由HAProxy发送到MySQL slave192.168.A.ABE,现在他在那里充当MySQL主服务器
我的问题是
当原始主MySQL实例192.168.A.ABD启动时会发生什么?
写入新MySQL master 192.168.A.ABE的更改是否会再次复制到原始master192.168.A.ABD?
我应该如何解决这种情况 我在考虑你的情况
Master - 192.168.A.ABD
Slave - 192.168.A.ABE
不能在系统中直接添加主控形状。要在系统中添加主机,您需要执行以下步骤:
1当主设备启动时,您可以将其添加为从设备。所以现在这种情况发生了
Master - 192.168.A.ABE
Slave - 192.168.A.ABD
那么现在你可以放下师父了。意味着你可以把192.168.A.ABD放下
3然后再次将其添加为从属。因此,在这之后,你将得到下面的场景
Master - 192.168.A.ABD
Slave - 192.168.A.ABE
你可以参考这个链接
首先,我应该说我从未使用过HA代理,所以不要直接对此发表评论 但是,在您当前的设置中,主ABD将不同步,并且无法跟上。您必须使用mysqlDump或类似的工具重新构建它 您需要的是一个Master<>Master设置,而不是Master>Slave,它使您能够写入任一数据库并将其反映在另一个数据库中。但这并不像听起来那么直截了当 假设您已经有了master>slave设置,并且它们是同步的 在要添加的主ABD上:
auto_increment_increment=2
auto_increment_offset=1
log-slave-updates
在附件上添加:
auto_increment_increment=2
auto_increment_offset=2
log-slave-updates
到您的my.cnf文件。重新启动数据库。这将有助于防止重复的密钥错误。n、 b.不严格要求日志从机更新,但这样可以更容易地在将来添加另一个从机
接下来,您要告诉主ABD从从从ABE复制
根据MySQL的版本以及是否使用GTID等,具体过程略有不同。但基本上,您将在主服务器上发出一个changemaster语句,以便它从从服务器复制
然后你就走了。你可能不想同时给这两个人写信,因为这会带来另一大堆麻烦。但是,如果主服务器宕机,您可以将写操作切换到从服务器,当主服务器恢复时,它将开始复制丢失的数据