简述mysql监控组复制
来源:脚本之家
时间:2023-02-23 10:43:21 388浏览 收藏
来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《简述mysql监控组复制》,介绍一下复制、MySQL监控组,希望对大家的知识积累有所帮助,助力实战开发!
原文:https://dev.mysql.com/doc/refman/8.0/en/group-replication-monitoring.html
译者:kun
最近在翻译MySQL8.0官方文档 本文是第18.3“监控组复制”部分。
1.监控组复制
假设MySQL已经在启用了性能模式的情况下编译,使用Perfomance Schema表监控组复制。组复制添加以下表:
performance_schema.replication_group_member_stats
performance_schema.replication_group_members
这些现有的Perfomance Schema复制表也显示有关组复制的信息:
performance_schema.replication_connection_status
显示有关组复制的信息,例如,已从组接收并在应用程序队列中排队的事务(中继日志)。performance_schema.replication_applier_status
显示与组复制相关的通道和线程的状态,如果有许多不同的工作线程应用事务,那么这个表也可用于监视每个工作线程正在执行的操作。
Group Replication插件创建的复制通道命名为:
group_replication_recovery
- 此通道用于与分布式恢复阶段相关的复制更改。group_replication_applier
- 此通道用于来自组的传入更改。并且应用直接来自组的事务的通道。
以下部分描述了每个表中可用的信息。
2.组成员实例状态
组中的server实例可以处于多种状态。如果server都正常通信,则所有server都报告相同的状态。但是,如果存在网络分隔,或者组成员离开组,则可能报告不同的信息,这取决于查询了哪个server。要注意的是,如果某个组成员已经离开组,那么显然它不能报告关于其他server状态的最新信息。如果发生网络分隔,如果超出仲裁数量的server都断开了,那么server之间将不能相互协作。因此,他们无法得知不同server成员的状态。因此,他们会报告一些server不可访问,而不是猜测他们的状态。
Server State
Field | 描述 | 组同步 |
ONLINE | 该成员可以作为一个具有所有功能的组成员,这意味着客户端可以连接并开始执行事务。 | yes |
RECOVERING | 该成员正在成为该组的有效成员,并且正处于恢复过程中,从数据源节点(数据源节点)接收状态信息。 | no |
OFFLINE | 插件已加载,但成员不属于任何组。 | no |
ERROR | 本地成员的状态。 只要恢复阶段或应用更改时出现错误,server就会进入此状态。 | no |
UNREACHABLE | 每当本地故障检测器怀疑某个给定的server可能由于已经崩溃或被意外地断开而不可访问时,server的状态显示为“UNREACHABLE” | no |
Important
一旦实例进入ERROR状态后,该 super_read_only选项将设置为ON。要离开ERROR 状态,您必须手动配置实例super_read_only=OFF
需要注意的是,组复制不是同步复制,但最终是同步的。更确切地说,事务以相同的顺序传递给所有组成员,但是它们的执行不同步,这意味着在接受事务被提交之后,每个成员以其自己的速度提交。
3.replication_group_members表
该 performance_schema.replication_group_members
表用于监视作为组成员的不同server实例的状态。每当视图更改时,表replication_group_members就会更新,例如,当组的配置动态更改时。在此基础上,server成员之间交换他们的一些元数据以保持同步并继续协作。信息在组复制成员之间共享,因此可以从任何成员查询有关所有组成员的信息。此表可用于获取复制组状态的高级视图,例如通过发出:
SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+| group_replication_applier | 041f26d8-f3f3-11e8-adff-080027337932 | example1 | 3306 | ONLINE | SECONDARY | 8.0.13 || group_replication_applier | f60a3e10-f3f2-11e8-8258-080027337932 | example2 | 3306 | ONLINE | PRIMARY | 8.0.13 || group_replication_applier | fc890014-f3f2-11e8-a9fd-080027337932 | example3 | 3306 | ONLINE | SECONDARY | 8.0.13 |+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+
根据这个结果,我们可以看到该组由三个成员组成,每个成员的主机和端口号,客户端用来连接成员,以及成员的 server_uuid
。该MEMBER_STATE
列显示了 “组成员实例状态”之一,在该情况下,它显示该组中的所有三个成员都是 ONLINE
,并且该MEMBER_ROLE
列显示有两个从节点和一个主节点。因此,该组必须是以单主模式运行的。MEMBER_VERSION
当您升级组并且组合中正在运行不同MySQL版本的成员时,该列可能很有用。
4. Replication_group_member_stats
复制组中的每个成员都会验证并应用该组提交的事务。有关验证和应用程序的统计信息对于了解申请队列增长情况、触发了多少冲突、检查了多少事务、哪些事务已被所有成员提交等等非常有用。
该 performance_schema.replication_group_member_stats
表提供与认证过程相关的组级信息,以及由复制组的每个成员接收和发起的事务的统计信息。信息在组成员实例之间共享,因此可以从任何成员查询有关所有组成员的信息。请注意,刷新远程成员的统计信息由group_replication_flow_control_period
选项中指定的消息周期控制 ,因此这些信息可能与进行查询的成员的本地收集的统计信息略有不同。
表 replication_group_member_stats
field | 描述 |
CHANNEL_NAME | 组复制通道的名称。 |
VIEW_ID | 此组的当前视图标识符。 |
Member_id | 此值为我们当前连接到的server成员的UUID。组中的每个成员具有不同的值。因为它对每个成员是唯一的,所以它也成为了一个关键字。 |
Count_transactions_in_queue | 队列中等待冲突检测检查的事务数。冲突检查通过后,他们排队等待应用。 |
Count_transactions_checked | 表示已进行过冲突检查的事务数。 |
Count_conflicts_detected | 表示未通过冲突检测检查的事务数。 |
Count_transactions_rows_validating | 表示冲突检测数据库的当前大小(每个事务经过验证的数据库)。 |
Transactions_committed_all_members | 表示已在当前视图的所有成员上成功提交的事务。 此值以固定的时间间隔更新。 |
Last_conflict_free_transaction | 显示最后一个经检查无冲突的事务标识符。 |
Count_transactions_remote_in_applier_queue | 此成员从复制组收到的等待应用的事务数。 |
Count_transactions_remote_applied | 此成员从已应用的复制组收到的事务数。 |
Count_transactions_local_proposed | 此成员发起并发送到复制组以进行协调的事务数。 |
Count_transactions_local_rollback | 此成员发起的事务在发送到复制组后的回滚数。 |
这些字段对于监控组中的成员的性能很重要。例如,假设组的成员之一出现延迟,并且不能与该组的其他成员同步。在这种情况下,您可能会在队列中看到大量的事务。基于此信息,您可以决定从组中删除成员或延迟组中其他成员的事务处理,从而减少排队的事务的数量。此信息还可以帮助您决定如何调整组复制插件的流控制。
文中关于mysql的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《简述mysql监控组复制》文章吧,也可关注golang学习网公众号了解相关技术文章。
-
271 收藏
-
207 收藏
-
340 收藏
-
499 收藏
-
402 收藏
-
368 收藏
-
475 收藏
-
266 收藏
-
273 收藏
-
283 收藏
-
210 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习
-
- 开放的万宝路
- 这篇技术贴太及时了,很详细,感谢大佬分享,码住,关注师傅了!希望师傅能多写数据库相关的文章。
- 2023-06-02 03:24:58
-
- 无聊的高跟鞋
- 感谢大佬分享,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢老哥分享文章!
- 2023-05-01 02:16:25
-
- 阳光的发夹
- 太详细了,收藏了,感谢作者大大的这篇博文,我会继续支持!
- 2023-04-22 22:50:19
-
- 害羞的玫瑰
- 这篇文章内容真及时,老哥加油!
- 2023-03-31 21:25:03
-
- 忧心的大船
- 这篇文章内容出现的刚刚好,好细啊,很棒,已加入收藏夹了,关注博主了!希望博主能多写数据库相关的文章。
- 2023-03-14 20:55:11
-
- 刻苦的滑板
- 写的不错,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢博主分享博文!
- 2023-03-12 05:33:06
-
- 高兴的学姐
- 赞 👍👍,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢老哥分享文章内容!
- 2023-03-04 09:21:46
-
- 忧伤的香水
- 这篇博文真及时,作者加油!
- 2023-03-04 04:08:28
-
- 酷炫的大象
- 这篇文章出现的刚刚好,太详细了,很好,已收藏,关注楼主了!希望楼主能多写数据库相关的文章。
- 2023-02-25 12:16:44
-
- 爱笑的小蝴蝶
- 好细啊,码起来,感谢大佬的这篇技术贴,我会继续支持!
- 2023-02-24 23:56:55