MySQL Error number: MY-013374; Symbol: ER_GRP_RPL_TIMEOUT_RECEIVED_VC_ON_REJOIN; SQLSTATE: HY000

文档解释

Error number: MY-013374; Symbol: ER_GRP_RPL_TIMEOUT_RECEIVED_VC_ON_REJOIN; SQLSTATE: HY000

Message: Timeout while waiting for a view change event during the auto-rejoin procedure

错误说明

MY-013374(ER_GRP_RPL_TIMEOUT_RECEIVED_VC_ON_REJOIN)是MySQL中的一个错误,这个错误表示 group replication 无法传输View Change信息。具体的来说,当MySQL的集群尝试加入或重建时,它会认为这是一个超时,这是不正确的,因此它就会报出这个错误。

常见案例

Group replication 用于在MySQL服务器的多个实例之间实现高可用性和故障转移(在 master 服务器实例故障后会自动将其切换到另一台服务器实例)。每次服务器尝试加入现有群集,或现有节点尝试重新加入时,都会产生这种情况,并可能导致 MY-013374(ER_GRP_RPL_TIMEOUT_RECEIVED_VC_ON_REJOIN)错误发生。

解决方法

一般情况下,使用 group_replication_recovery设置选项,强制加入集群并手动触发复原操作来解决此错误。

1.在尝试重新加入群集的节点上,确保使用以下命令设置 group_replication_recovery 选项:

SET GLOBAL group_replication_recovery= ON;

2.然后,使用以下命令来重新加入群集:

START GROUP_REPLICATION;

3.最后,使用以下命令触发复原操作:

START GROUP_REPLICATION RECOVERY;

而在某些更复杂的情况下,比如尝试重新加入群集的节点失去连接或长时间停止,那么还需要重置群集:

1.停止所有的 Group replication 节点:

STOP GROUP_REPLICATION

2.重置配置:

RESET MASTER;

3.重新启动所有 Group replication 节点:

START GROUP_REPLICATION;

4.最后,在尝试重新加入的节点上触发复原操作:

START GROUP_REPLICATION RECOVERY;

另外,也可以考虑重新配置 Group replication 节点以减少发生此错误的可能性。以此来减少节点加入群集和重建群集时超时发生的可能性。 重新配置主要包括:

1.修改 group_replication_start_on_boot 值,默认情况下为OFF:

SET GLOBAL group_replication_start_on_boot = OFF;

2.调整 group replication 频道/组配置,如 group_replication_group_name 和 group_replication_local_address 等;

3.调整相应的超时参数,比如 group_replication_communication_max_message_size,group_replication_member_expel_timeout,group_replication_consistency,group_replication_flow_control_mode 等;

4.检查使用的网络设置,以确保在不同的节点之间可以无缝连接。

如果还没有解决问题,可以尝试将 MySQL 节点升级到最新版本,以便从新特性中获益。

总之,排除 MY-013374(ER_GRP_RPL_TIMEOUT_RECEIVED_VC_ON_REJOIN)错误,通常需要重新配置 Group replication 选项,重置和重新加入群集,并触发复原操作,以及检查网络设置。 如果仍然无法解决此问题,则可以考虑将 MySQL 节点升级到最新版本。

你可能感兴趣的