mysql 架构~MGR监控手段
一 简介 今天咱们来聊聊MGR的监控
二 监控 方面: 1 节点mysql进程监控
2 节点mysql复制进程的监控
3 节点是否为主的监控
4 节点延迟事务的监控
三 方法:
一 经过proxysql对MGR功能的支持,采用其中的sql就可以创建常用的监控表
1 相关表:gr_member_routing_candidate_status
viable_candidate //节点的状态,当复制停止时此值会异常
read_only // 主节点时此值会为OFF
transactions_behind //可以理解为等待应用事务的延迟
transactions_to_cert//可以理解为等待通过验证的事务
二 实现的一些原理
1 SELECT Received_transaction_set FROM performance_schema.replication_connection_status WHERE Channel_name = 'group_replication_applier'//接收到的GTID
select @@global.GTID_EXECUTED;//执行的GTID
接收到的-执行的 就是延迟了 也即是 transactions_behind
2 SELECT (SELECT GROUP_CONCAT(variable_value) FROM
performance_schema.global_variables WHERE variable_name IN ('read_only',
'super_read_only')) != 'OFF,OFF'), 'YES', 'NO') as read_only
是否为只读 也即是 read_only
3 IF( MEMBER_STATE='ONLINE' AND ((SELECT COUNT(*) FROM
performance_schema.replication_group_members WHERE MEMBER_STATE != 'ONLINE') >=
((SELECT COUNT(*) FROM performance_schema.replication_group_members)/2) = 0
此为判断NODE是否正常 也即是viable_candidate
4 select COUNT_TRANSACTIONS_IN_QUEUE from replication_group_member_stats
此值为transactions_to_cert
四 总结:我们可以发现 proxysql此视图的编写时基于对performance_schema相关表的灵活组合查询运用的,我们即便不用proxysql,也可以根据此表进行有效的监控,相关创建sql可以在github上找到
五 自己写的 监控脚本
#!/bin/sh
function status()
{
result=`mysql -uroot -ptest -Ne "select $1 from sys.gr_member_routing_candidate_status"`
if [ "$result" == "YES" ];
then
status=0
map_status=1
statustxt="mgr RPE is running !"
elif [ "$result" == "NO" ];
then
status=2
map_status=1
statustxt="mgr RPE is DOWN!"
elif [ "$result" == 0 ];
then
status=0
map_status=1
statustxt=$1" value 0"
elif ["$result" > 0 ];
then
status=2
map_status=1
statustxt=$1" value "$result
else
echo "the value is vaild"
fi
echo "$status $1 $1=$status $statustxt"
}
result=`netstat -anlp|grep :3306|wc -l`
if [ "$result" == 1 ];
then
status viable_candidate
status transactions_behind
status transactions_to_cert
else
echo "mysql is down"
fi
mysql 架构~MGR监控手段的更多相关文章
- mysql 架构~mgr具体细节分析
一 简介:今天咱们来聊聊mgr的具体实现细节 二 关于多点写入的锁冲突问题以及处理: certify模块主要负责检查事务是否允许提交,是否与其它事务存在冲突,如两个事务可能修改同一行数据.在单机系 ...
- mysql 架构 ~ MGR 与PXC的对比
一 简介 MGR和PXC的对比 二 WriteSet1 定义 是组件对于写节点应用事务生成binlog的再封装,用来验证其他节点的事务冲突 PXC构成key db_table_组件值data bin ...
- MySql(十八):MySql架构设计——高可用设计之 MySQL 监控
前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一个系统,无论如何设计如何维护,都无法完全避免出 ...
- mysql 架构篇系列 3 复制运行状态监控与选项参数说明
一. 概述 在上一篇中,搭建了一主一从的复制架构,这篇通过一些诊断方法来了解复制的运行状态和一些选项参数说明.上次mysql主从服务关机,今天在打开mysql服务,出现了错误信息. 1.首先 启动主从 ...
- mysql 架构 ~异地容灾
一 简介 我们来探讨下多机房下的mysql架构二 目的: 首先要清楚你的目的 1 实现异地机房的容灾备份 2 实现异地机房的双活 三 叙说 1 实现异地机房的容灾备份 ...
- ch2 MySQL 架构组成
第 2 章 MySQL 架构组成 前言 麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从 MySQL 物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL ...
- 第 2 章 MySQL 架构组成
麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从MySQL物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL 的整体架构组成,希望能够让读者对 MySQL 有一个更 ...
- 运维架构服务监控Open-Falcon
一. 介绍 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择.当公司刚 ...
- mysql 的mgr集群
mysql 的mgr集群 http://wubx.net/mgr%E7%9B%91%E6%8E%A7%E5%8F%8A%E4%BC%98%E5%8C%96%E7%82%B9/ MGR调优参数因为基本复 ...
随机推荐
- LightOJ - 1265 (概率)
题意: 1.两只老虎相遇 就互相残杀 2.老虎与鹿相遇 鹿死 3.老虎与人相遇 人死 4.人与鹿相遇 鹿死 5.鹿与鹿相遇 无果 求人活的概率 解析:如果老虎为0 则人活得概率为1 ...
- $Min\_25$筛学习笔记
\(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...
- Mysql数据库基础小实例 学员管理系统菜单
package test; import java.sql.*; import java.util.Scanner; public class testSql002_StudentTest { /** ...
- [luogu2144][bzoj1002][FJOI2007]轮状病毒【高精度+斐波那契数列+基尔霍夫矩阵】
题目描述 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图所示 N轮状病 ...
- py3+urllib+re,爬虫下载捧腹网图片
实现原理及思路请参考我的另外几篇爬虫实践博客 py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图:http://www.cnblogs.com/UncleYong/p/6892688. ...
- TextView 借助Linkify,使用自定义模式设置链接
http://my.oschina.net/fengheju/blog/176105 TextView是android中的一个比较常用的控件,它有一个非常有趣的特性,可以通过android:autoL ...
- JS循环语句!
<1> for(1.初始值(初始值只有一次):2.判断条件:4.状态改变){ 3.执行语句: //如果判断条件为true,则进入死循环:不设执行语句浏览器会未响应: } <2> ...
- A1104. Sum of Number Segments
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...
- c基础:函数参数是 struct(结构),传的是引用,还是值?
比如函数形式:void func(struct a data1, struct b data2); 答案: 只要不是指针或者数组都是传值,其实指针也是传递的地址值. 追问但是如果这个结构体里面有数组这 ...
- code::Blocks生成的dll 在 java jni 调用遇到的问题
Test.java__________________________________ public class Test{ public static native void p(); pub ...