MGR单主模式下,有一个节点可读可写,其余节点都是只读,其中表现为super_read_only被自动设为了ON。
那么,如果可读可写的节点异常宕机了,会进行怎样的切换呢?
在选择新的可写角色时,主要参考两个参数:
1.group_replication_member_weight
2.server_uuid
首先在竞选可选角色中的节点中,选出group_replication_member_weight最大的一个来作为新的可写节点;
如果存在多个节点的group_replication_member_weight相同,那么就选这些节点中server_uuid较小的。
例如三个节点有如下设置:
• member-1: group_replication_member_weight=30, server_uuid=aaaa
• member-2: group_replication_member_weight=40, server_uuid=bbbb
• member-3: group_replication_member_weight=40, server_uuid=cccc
当前member-1是可写节点,但异常宕机了,那么需要在member-2和member-3中挑选新的可写节点。
由于member-2和member-2拥有相同的group_replication_member_weight值,所以进一步比较两者的server_uuid,这里是选择member-2作为新的可写节点。