4. 反复执行大事务 。
mysql> insert into slowtech.t1(c1) select c1 from slowtech.t1 limit 1000000;Query OK, 1000000 rows affected (10.03 sec)Records: 1000000 Duplicates: 0 Warnings: 0
5. 观察错误日志 。
如果 node1 或 node2 的错误日志中提示以下信息 , 则意味着 node3 需要的消息已经从 XCom Cache 中逐出了 。
[Warning] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Messages that are needed to recover node 192.168.244.30:33061 have been evicted from the message cache. Consider resizing the maximum size of the cache by setting group_replication_message_cache_size.'
6. 查看系统表 。
除了错误日志 , 我们还可以通过系统表来判断 XCom Cache 的使用情况 。
mysql> select * from performance_schema.memory_summary_global_by_event_name where event_name like "%GCS_XCom::xcom_cache%"\G*************************** 1. row *************************** EVENT_NAME: memory/group_rpl/GCS_XCom::xcom_cache COUNT_ALLOC: 23678 COUNT_FREE: 22754 SUM_NUMBER_OF_BYTES_ALLOC: 154713397 SUM_NUMBER_OF_BYTES_FREE: 28441492 LOW_COUNT_USED: 0 CURRENT_COUNT_USED: 924 HIGH_COUNT_USED: 20992 LOW_NUMBER_OF_BYTES_USED: 0CURRENT_NUMBER_OF_BYTES_USED: 126271905 HIGH_NUMBER_OF_BYTES_USED: 1461372941 row in set (0.00 sec)
其中 ,
- COUNT_ALLOC:缓存过的消息数量 。
- COUNT_FREE:从缓存中删除的消息数量 。
- CURRENT_COUNT_USED:当前正在缓存的消息数量 , 等于 COUNT_ALLOC - COUNT_FREE 。
- SUM_NUMBER_OF_BYTES_ALLOC:分配的内存大小 。
- SUM_NUMBER_OF_BYTES_FREE:被释放的内存大小 。
- CURRENT_NUMBER_OF_BYTES_USED:当前正在使用的内存大小 , 等于 SUM_NUMBER_OF_BYTES_ALLOC - SUM_NUMBER_OF_BYTES_FREE 。
- LOW_COUNT_USED , HIGH_COUNT_USED:CURRENT_COUNT_USED 的历史最小值和最大值 。
- LOW_NUMBER_OF_BYTES_USED , HIGH_NUMBER_OF_BYTES_USED:CURRENT_NUMBER_OF_BYTES_USED 的历史最小值和最大值 。
7. 恢复 node3 与 node1、node2 之间的网络连接 。
在 group_replication_member_expel_timeout 期间 , 网络恢复了 , 而 node3 需要的消息在 XCom Cache 中不存在了 , 则 node3 同样会被驱逐出集群 。以下是这种场景下 node3 的错误日志 。
[ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Node 0 is unable to get message {4aec99ca 7562 0}, since the group is too far ahead. Node will now exit.'[ERROR] [MY-011505] [Repl] Plugin group_replication reported: 'Member was expelled from the group due to network failures, changing member status to ERROR.'[ERROR] [MY-011712] [Repl] Plugin group_replication reported: 'The server was automatically set into read only mode after an error was detected.'[System] [MY-011565] [Repl] Plugin group_replication reported: 'Setting super_read_only=ON.'[System] [MY-013373] [Repl] Plugin group_replication reported: 'Started auto-rejoin procedure attempt 1 of 3'
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 云原生之旅 - 9)云原生时代网关的后起之秀Envoy Proxy 和基于Envoy 的 Emissary Ingress
- 华为云 MRS 基于 Apache Hudi 极致查询优化的探索实践
- 基于 .NET 7 的 QUIC 实现 Echo 服务
- Mysql InnoDB Redo log
- 基于docker和cri-dockerd部署kubernetes v1.25.3
- 基于 Docker 构建轻量级 CI 系统:Gitea 与 Woodpecker CI 集成
- 使用LabVIEW实现基于pytorch的DeepLabv3图像语义分割
- 之七 2流高手速成记:基于Dubbo&Nacos的微服务简要实现
- MySQL的下载、安装、配置
- 我的Vue之旅 09 数据数据库表的存储与获取实现 Mysql + Golang