MySQL Error number: MY-013820; Symbol: ER_GRP_RPL_SET_SINGLE_CONSENSUS_LEADER; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释
Error number: MY-013820; Symbol: ER_GRP_RPL_SET_SINGLE_CONSENSUS_LEADER; SQLSTATE: HY000
Message: The member %s:%u, with UUID: %s, was set as the single preferred consensus leader.
错误说明
ER_GRP_RPL_SET_SINGLE_CONSENSUS_LEADER 为MySQL5.7error code中的一个错误,该错误表明在一个复制群组(Replication group)中由于未设置指定的共识发布者(Consensus Publisher)导致无法继续操作。
共识发布者是指用于复制组复制流程管理中的一个核心元素,PV(primary-view)将由共识发布者发布,且共识发布者以推送形式发布给所有分支(branches)。PV更新确认追踪器(Updates Confirmation Tracker,UCT)可以查询到所有复制组节点的当前有效PV,并由共识发布者维护。
常见的案例
当要添加或更新一个复制群组,但是没有正确的设置共识发布者,就会报出 ER_GRP_RPL_SET_SINGLE_CONSENSUS_LEADER 错误。
解决方法
首先,必须确保在添加或更新复制群组时,已经正确设置了共识发布者。可以调用mysql.group_replication_set_consensus_publisher_status函数,或者可以在CREATE GROUP or CHANGE MASTER TO语句中设置consensus_publisher=ENABLED参数来实现。
其次,需要明确复制群组中最多只能有一个共识发布者,且必须要有一个共识发布者;此时,若在一个群组中发现有多个共识发布者,则需要删除除原有共识发布者以外的其它共识发布者,以回复正常运行状态。
最后,需要调用mysql.group_replication_set_consensus_publisher_status函数来关闭或重新启用复制群组中指定的共识发布者,即在SQL编译器上,调用该函数来实现设置或重置需要更新的复制群组中指定的共识发布者,以此解决 ER_GRP_RPL_SET_SINGLE_CONSENSUS_LEADER 错误。