MySQL Error number: MY-013683; Symbol: ER_RPL_ASYNC_CHANNEL_CANT_CONNECT_NO_QUORUM; SQLSTATE: HY000

文档解释

Error number: MY-013683; Symbol: ER_RPL_ASYNC_CHANNEL_CANT_CONNECT_NO_QUORUM; SQLSTATE: HY000

Message: The IO thread detected that the source (host:%s port:%u network_namespace:%s) does not belong to the group majority, thence the channel ‘%s’ will try to connect to another source.

错误说明:

ER_RPL_ASYNC_CHANNEL_CANT_CONNECT_NO_QUORUM错误,这是一个MySQL错误。它表明MySQL正在尝试与另一个MySQL服务器建立异步复制通道,但是由于没有多数服务,这种连接无法继续下去。这种情况通常发生在一个复制集群中,其中发生了故障转移,但是没有多数机器以重新建立异步通道。

常见案例

当MySQL在尝试以OFF_LINE增长方式增加复制复制集成员时,就可能遇到这种情况。首先,MySQL会限制活动服务器上的复制,然后MySQL会尝试连接到要添加的服务器,以确认它已准备就绪。当MySQL尝试连接新服务器时,如果活动服务器少于集群总数的一半,则可能会遇到此错误,因为无法满足多数服务器条件。

解决方法:

为了解决这个问题,第一步是尝试将复制集中的其他服务器重新加入到多数服务器中。要执行此步骤,可以检查哪些复制集服务器正处于活动状态,然后可以使用SET GLOBAL rpl_async_ON=命令来将复制集中的其他服务器重新加入多数服务器中。

假如检查发现没有任何服务器可以处于活动状态,则在所有服务器上需要重新启动MySQL,直到复制复制集中的所有服务器达到半数且仍然处于活动状态时,再次尝试以OFF_LINE增长方式添加新服务器。

此外,可以使用rpl_async_Message_queue_recovery命令来重新建立异步通道,从而避免ER_RPL_ASYNC_CHANNEL_CANT_CONNECT_NO_QUORUM错误。此机制可能通过删除当前死信息队列,以便可以重写更新内容重新连接主机来解决当前挂起的更新阶段。

你可能感兴趣的