MySQL Error number: MY-011562; Symbol: ER_GRP_RPL_FETCH_LOG_EVENT_FAILED; SQLSTATE: HY000

文档解释

Error number: MY-011562; Symbol: ER_GRP_RPL_FETCH_LOG_EVENT_FAILED; SQLSTATE: HY000

Message: Failed to fetch Log_event containing required server info for applier

错误 MY-011562:ER_GRP_RPL_FETCH_LOG_EVENT_FAILED 的SQLSTATE为 HY000,说明 Group Replication 无法抓取来自 Group Replication 日志流的事件日志了。

Group Replication 是一种 MySQL 集群架构,允许在集群中传播数据。 Group Replication 日志是用来记录从一个终端传播到所有其他终端的变更日志。

常见情况下,此错误会由于Group Replication 设置容错等级过高而发生,或者在集群中的一个或多个节点不可用,或者已经可用但因主机内存不足而超负载。此外,有时由于数据有误,Group Replication 日志会丢失等原因也可能导致此错误的发生。

要解决此错误,首先应结束Group Replication,检查日志中缺少的事件,并对缺少的事件执行正确的操作。例如,如果 Group Replication 被设置为 TRX_STOP 而且缺失日志是由于服务器内存不足(或不可用)导致的,则可以进行以下操作:

1. 检查 Group Replication 配置,以确保已使用尽可能低的负载(例如,检查是否启用了可选的容错等级);

2. 检查主机是否有足够的内存可用;

3. 使用 Group Replication 的 recv_queue_* 等级开关(例如 recv_queue_min/max_recv_buf_size)来控制内存使用;

4. 如果在缺失日志上重新启动Group Replication,那么也可以尝试在不同的容错等级下进行测试;

5. 重置 Group Replication 并且在考虑以上因素后重新启动;

6. 尽管非常建议使用快照来启动 Group Replication,但是也可以使用 GR_START_RECOVERY_TYPE(EXTERNAL) 配置选项来启动处于异常状态的Group Replication。

总的来说,此错误是由于Group Replication 设置容错等级过高,在集群中的一个或多个节点不可用,或者已经可用但因主机内存不足而超负载而发生的,但是,要解决此错误,应使用Group Replication 日志流解决该问题,并考虑调整 Group Replication 的容错等级,以及检查主机内存是否可用,并决定是否调整 recv_queue_* 等级开关等。

你可能感兴趣的