MySQL Error number: MY-013733; Symbol: ER_GRP_RPL_MEMBER_ACTION_FAILURE; SQLSTATE: HY000 报错 故障修复 远程处理

文档解释

Error number: MY-013733; Symbol: ER_GRP_RPL_MEMBER_ACTION_FAILURE; SQLSTATE: HY000

Message: The member action “%s” for event “%s” with priority “%u” failed. Please check previous messages in the error log for hints about what could have caused this failure.

错误说明

ER_GRP_RPL_MEMBER_ACTION_FAILURE 错误提示系统在操作组复制(Group Replication)成员时发生错误,这通常是由于节点间的网络连接故障或主节点内部故障造成的。该错误在MySQL 8.0中被添加。

常见案例

典型的案例是,系统在尝试加入或从组复制成员中删除一个节点时发生错误,并显示 ER_GRP_RPL_MEMBER_ACTION_FAILURE 错误。此时,尝试执行该操作的节点将变为非活动节点,其状态设置为 ONLINE_AND_ FAILED。

解决方法

处理 ER_GRP_RPL_MEMBER_ACTION_FAILURE 错误的不同方法取决于问题的严重性。如果节点处在 ONLINE_AND_FAILED 状态,则需要立即处理此问题,以避免变生进一步的损害。

首先,应确定错误的根源并防止它再次发生。由于节点可能因网络连接性问题而陷入 ONLINE_AND_FAILED 状态,因此应检查节点之间的网络连接是否有效,以及可能的基础设施问题,例如防火墙或负载平衡器配置。如果节点是故意结束成员的加入的,然后检查成员的配置,以查看是否存在任何可能影响其加入的因素。

如果网络连接正常,则需要从该节点中移除组复制成员。此过程相当简单,首先调用 RESET MASTER 并标记该节点为 ‘REMOVE’ 状态,然后调用 CHANGE MASTER TO FOR CHANNEL ”,INSERT INTO group_replication_members (member_id) VALUES (”) 来移除,最后调用 RESET SLAVE FOR CHANNEL ” 以删除节点的所有连接。

如果在移除节点之前或之后发生其他问题,则可能需要重新检查其他节点,以确保这些节点可以正常工作,或者可能需要停止其他节点并重新启动它们,以确保它们以正确的状态启动组复制。

此外,为了保证完整的复制数据,还可以重新回放复制日志。这包括使用 pts_to_trx_id() 查询函数来记录最新的事务 ID,然后在新成员上使用基于日志的复制,将最大的事务 ID 作为最后一个日志的结束点,确保所有节点都有相同的事务 ID,最后确认所有节点都有相同的复制块。

最后,为了保持系统状态平衡,最好在处理 ER_GRP_RPL_MEMBER_ACTION_FAILURE 错误之前首先停止所有组复制成员,然后重新运行所有组复制节点,最后再检查状态,确认所有的节点都处于 ONLINE 状态,以便组复制可以继续运行。


数据运维技术 » MySQL Error number: MY-013733; Symbol: ER_GRP_RPL_MEMBER_ACTION_FAILURE; SQLSTATE: HY000 报错 故障修复 远程处理