【MySQL】监控组复制

原文:https://dev.mysql.com/doc/refman/8.0/en/group-replication-monitoring.html
译者:kun
最近在翻译MySQL8.0官方文档 本文是第18.3“监控组复制”部分。

18.3 监控组复制

假设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 - 此通道用于来自组的传入更改。并且应用直接来自组的事务的通道。

以下部分描述了每个表中可用的信息。

18.3.1 组成员实例状态

组中的server实例可以处于多种状态。如果server都正常通信,则所有server都报告相同的状态。但是,如果存在网络分隔,或者组成员离开组,则可能报告不同的信息,这取决于查询了哪个server。要注意的是,如果某个组成员已经离开组,那么显然它不能报告关于其他server状态的最新信息。如果发生网络分隔,如果超出仲裁数量的server都断开了,那么server之间将不能相互协作。因此,他们无法得知不同server成员的状态。因此,他们会报告一些server不可访问,而不是猜测他们的状态。

表18.1 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

需要注意的是,组复制不是同步复制,但最终是同步的。更确切地说,事务以相同的顺序传递给所有组成员,但是它们的执行不同步,这意味着在接受事务被提交之后,每个成员以其自己的速度提交。

18.3.2 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列显示了 第18.3.1节“组成员实例状态”之一,在该情况下,它显示该组中的所有三个成员都是 ONLINE,并且该MEMBER_ROLE 列显示有两个从节点和一个主节点。因此,该组必须是以单主模式运行的。MEMBER_VERSION当您升级组并且组合中正在运行不同MySQL版本的成员时,该列可能很有用。请参见 第18.3.1节“组成员实例状态” 获得更多信息。

有关Member_host 值及其对分布式恢复过程的影响的更多信息,请参见 第18.2.1.3节“用户凭据”。

18.3.3 Replication_group_member_stats

复制组中的每个成员都会验证并应用该组提交的事务。有关验证和应用程序的统计信息对于了解申请队列增长情况、触发了多少冲突、检查了多少事务、哪些事务已被所有成员提交等等非常有用。

performance_schema.replication_group_member_stats 表提供与认证过程相关的组级信息,以及由复制组的每个成员接收和发起的事务的统计信息。信息在组成员实例之间共享,因此可以从任何成员查询有关所有组成员的信息。请注意,刷新远程成员的统计信息由group_replication_flow_control_period 选项中指定的消息周期控制 ,因此这些信息可能与进行查询的成员的本地收集的统计信息略有不同。

表18.2 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 此成员发起的事务在发送到复制组后的回滚数。

这些字段对于监控组中的成员的性能很重要。例如,假设组的成员之一出现延迟,并且不能与该组的其他成员同步。在这种情况下,您可能会在队列中看到大量的事务。基于此信息,您可以决定从组中删除成员或延迟组中其他成员的事务处理,从而减少排队的事务的数量。此信息还可以帮助您决定如何调整组复制插件的流控制。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348