前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL Galera Cluster全解析 Part 9 监控Galera Cluster

MySQL Galera Cluster全解析 Part 9 监控Galera Cluster

作者头像
bsbforever
发布2020-08-19 16:25:13
1.3K0
发布2020-08-19 16:25:13
举报

前期回顾

主机名

IP地址

操作系统

MySQL版本

插件版本

rac1

11.12.14.29

Redhat 6.10

5.7.26

25.3.27

rac2

11.12.14.30

Redhat 6.10

5.7.26

25.3.27

rac3

11.12.14.39

Redhat 6.10

5.7.26

25.3.27

前面我们说了Galera Cluster有三种不同的分支

  • MySQL Galera Cluster by Codership
  • Percona XtraDB Cluster by Percona
  • MariaDB Galera Cluster (5.5 and 10.0) by MariaDB

上面我们说了如何一步步搭建MySQL Galera集群

前面我们介绍了Galera相关的知识包括如何搭建,这节的内容为监控Galera

1. 监控状态变量

在监控Galera之前我们可能已经监控了其他MySQL的变量,Galera也提供了一些状态变量供查看

他们以wsrep_开头,我们可以用如下语句来查看所有Galera的状态

代码语言:javascript
复制
mysql> SHOW GLOBAL STATUS LIKE 'wsrep_%';

该语句查询出来可能有60个,可能大多数都不是我们需要的

但是有些是你需要查看的,我们可以简单分为3个种类

  • 集群完整性(Cluster's Integrity)
  • 节点状态(node status)
  • 复制健康度(replication health)

1.集群完整性

该分类主要有如下状态变量

  • wsrep_cluster_state_uuid
  • wsrep_cluster_conf_id
  • wsrep_cluster_size
  • wsrep_cluster_status

1.1 检查UUID

我们知道集群内节点是相互同步的,这意味着他们执行完了所有的相同的事务

每个事务由一个uuid来标识,所以所有节点最后执行的uuid应该是一样的

所以我们在所有节点查询uuid并比较

所有节点

代码语言:javascript
复制
SHOW GLOBAL STATUS LIKE 'wsrep_cluster_state_uuid' \G
1.png
1.png

如果最后个节点和其他的不一致,可能是由于正在执行导致

1.2 节点数量

对于一个健康的集群,所有节点查询出来的集群大小应该是一致的,应该是所有节点的个数

所有节点

代码语言:javascript
复制
SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size';
2.png
2.png

1.3 集群变化次数

对于一个健康的集群,所有节点的集群变化次数应该是一致的,重启数据库算2次(关闭和启动)

所有节点

代码语言:javascript
复制
SHOW GLOBAL STATUS LIKE 'wsrep_cluster_conf_id';
3.png
3.png

如果该值非常大,可能会是由于节点不断的被踢出和加入导致,需要查看

2. 各节点状态

我们日常除了查询集群整体状态,对于各个节点我们也应该有所关注

主要有如下状态变量

  • wsrep_ready
  • wsrep_connected
  • wsrep_local_state_comment

2.1 节点连接状态

我们可以查询如下变量来查看该节点是否在集群内

代码语言:javascript
复制
SHOW GLOBAL STATUS LIKE 'wsrep_ready';
SHOW GLOBAL STATUS LIKE 'wsrep_connected';
4.png
4.png

该值必须为ON

如果为OFF说明有问题,在该节点的事务会失败

可能是由于节点故障,网络问题,也可能是参数配置错误

  • wsrep_cluster_address 
  • wsrep_cluster_name 

我们可以在错误日志中查看相关错误

2.2 节点在集群中的状态

我们使用如下语句查询节点在集群中的状态

代码语言:javascript
复制
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
5.png
5.png

其结果很容易理解,有:

  • Joining
  • Waiting on SST
  • Joined
  • Synced
  • Donor

一般应该为Synced,代表已同步

3. 复制性能状态

通过上面的查询我们可以知道集群的是否正常,且不会对服务器造成大的负载

当复制队列中有很多写集,节点会触发Flow Control机制暂停复制用来缓解服务器压力

我们可以监控如下变量来检查该机制的运行情况

  • wsrep_local_recv_queue_avg
  • wsrep_flow_control_paused
  • wsrep_cert_deps_distance

上面三个变量,当执行FLUSH STATUS 命令时会被清零

3.1 大量写状态

下面的变量显示上次状态查询以来本地队列的平均大小

代码语言:javascript
复制
SHOW STATUS LIKE 'wsrep_local_send_queue_avg';
6.png
6.png

该值大于0代表,节点无法及时应用接收到的写集

这时我们需要查询如下变量来查看最大和最小值

  • wsrep_local_recv_queue_min
  • wsrep_local_recv_queue_max

3.2 Flow Control Paused

如果你怀疑节点负载较大,你可以执行flush status之后等待一段时间,再查询如下值

代码语言:javascript
复制
SHOW STATUS LIKE 'wsrep_flow_control_paused';
7.png
7.png

其显示了在这段时间内复制进程暂停了多久(百分比),任何大于0的数值说明复制的性能不佳

如果值为0.18,代表18%的时间

你可以不时的查询该值来检查其是否是0(记得先执行flush status来清零以前的值),如果不能解决,需要增加slave thread的值(wsrep_slave_threads)

3.3 并行恢复

我们可以查询如下变量来评估节点是否可以启用并行恢复

代码语言:javascript
复制
 SHOW STATUS LIKE  'wsrep_cert_deps_distance';
8.png
8.png

我们可以根据该值来参考设置wsrep_slave_threads的值

4. 参考资料

https://galeracluster.com/library/training/tutorials/galera-monitoring.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期回顾
  • 1. 监控状态变量
  • 1.集群完整性
  • 1.1 检查UUID
  • 1.2 节点数量
  • 1.3 集群变化次数
  • 2. 各节点状态
    • 2.1 节点连接状态
      • 2.2 节点在集群中的状态
      • 3. 复制性能状态
        • 3.1 大量写状态
          • 3.2 Flow Control Paused
            • 3.3 并行恢复
            • 4. 参考资料
            相关产品与服务
            云数据库 SQL Server
            腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档