监控因为带宽打满造成的 MySQL 复制延迟

目录

1. 写表版本

2. 写文件版本


1. 写表版本

        监控脚本文件 get_Gtid_totable.sh 内容如下:

#!/bin/bash

source ~/.bash_profile

# 获取主库 binlog 位点
a=`mysql -uroot -p123456 -h172.30.4.6 -P3306 -e "show master status\G" 2>/dev/null | egrep 'f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7' | sed 's/,//' | awk -F: '{print $2}' | awk -F"-" '{print $2}'`

# 获取从库接收和执行 binlog 位点
b=`mysql -uroot -p123456 -S /data3/3306/mysqldata/mysql.sock -e "show slave status\G" 2>/dev/null | egrep 'f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7' | egrep -v "Master_UUID" | sed -e '1s/f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7:1-//g' | sed -e '2s/f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7:1-//g'`

# 获取从库延迟秒数
c=`mysql -uroot -p123456 -S /data3/3306/mysqldata/mysql.sock -e "show slave status\G" 2>/dev/null | egrep 'Seconds_Behind_Master' | sed 's/Seconds_Behind_Master: //g'`
Seconds_Behind_Master=`echo $c`

master_Executed_Gtid=`echo $a`
slave_Retrieved_Gtid=`echo $b | awk '{print $1}' | sed 's/.$//'`
slave_Executed_Gtid=`echo $b | awk '{print $2}' | sed 's/.$//'`

# 入库
mysql -h172.18.16.156 -P3306 -uroot -p123456 -e "
insert into test.t_lag_172_18_27_238 (master_Executed_Gtid, slave_Retrieved_Gtid, slave_Executed_Gtid,Seconds_Behind_Master)
values ("$master_Executed_Gtid","$slave_Retrieved_Gtid","$slave_Executed_Gtid","$Seconds_Behind_Master");"

        只监控业务高峰期,用 cron 调度执行:

* 19-23 * * * /home/mysql/get_Gtid_totable.sh

        建表语句:

-- mysql 8
use test;
CREATE TABLE `t_lag_172_18_27_238` (
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `master_Executed_Gtid` bigint(20) DEFAULT NULL,
  `slave_Retrieved_Gtid` bigint(20) DEFAULT NULL,
  `slave_Executed_Gtid` bigint(20) DEFAULT NULL,
  `rlag` int(11) DEFAULT (greatest((`master_Executed_Gtid` - `slave_Retrieved_Gtid`),0)),
  `elag` int(11) DEFAULT (greatest((`slave_Retrieved_Gtid` - `slave_Executed_Gtid`),0)),
  `Seconds_Behind_Master` int(11) DEFAULT NULL
);

        查询语句:

mysql -h172.18.16.156 -P3306 -uroot -p123456 -Dtest -e "select ts \"时间\",rlag \"接收binlog落后事务数\",elag \"执行binlog落后事务数\",Seconds_Behind_Master \"延迟秒数\"from t_lag_172_18_27_238 where date(ts)='2024-04-25' order by Seconds_Behind_Master desc limit 10;" 2>/dev/null

        结果如下:

+---------------------+-----------------------------+-----------------------------+--------------+
| 时间                | 接收binlog落后事务数        | 执行binlog落后事务数        | 延迟秒数     |
+---------------------+-----------------------------+-----------------------------+--------------+
| 2024-04-25 22:43:01 |                      144230 |                         112 |          119 |
| 2024-04-25 22:46:02 |                      137649 |                         981 |          118 |
| 2024-04-25 22:25:02 |                      146937 |                         186 |          115 |
| 2024-04-25 22:44:01 |                      135479 |                         898 |          114 |
| 2024-04-25 22:24:01 |                      140064 |                         258 |          112 |
| 2024-04-25 22:49:01 |                      146843 |                         228 |          111 |
| 2024-04-25 22:53:02 |                      146033 |                        2032 |          110 |
| 2024-04-25 22:26:02 |                      140634 |                           9 |          110 |
| 2024-04-25 22:23:01 |                      137269 |                         747 |          109 |
| 2024-04-25 22:40:02 |                      127012 |                         350 |          108 |
+---------------------+-----------------------------+-----------------------------+--------------+

        接收binlog落后事务数很大,执行binlog落后事务数很小,说明引起复制延迟的瓶颈是带宽不足造成主库 binlog 无法及时传输到从库。复制延迟不是做的慢,而是收不到。

2. 写文件版本

        监控脚本文件 get_Gtid_totable.sh 内容如下:

#!/bin/bash

source ~/.bash_profile

time1=$(date "+%Y-%m-%d %H:%M:%S").$((`date "+%N"`/1000000))

a=`mysql -uroot -p123456 -h172.30.4.6 -P3306 -e "show master status\G" 2>/dev/null | egrep 'f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7' | sed 's/,//' | awk -F: '{print $2}' | awk -F"-" '{print $2}'`

time2=$(date "+%Y-%m-%d %H:%M:%S").$((`date "+%N"`/1000000))

b=`mysql -uroot -p123456 -S /data3/3306/mysqldata/mysql.sock -e "show slave status\G" 2>/dev/null | egrep 'f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7' | egrep -v "Master_UUID" | sed -e '1s/f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7:1-/ Retrieved_Gtid: /g' | sed -e '2s/f8e0355d-9d6e-11ee-8dcd-e43d1a47c7b7:1-/  Executed_Gtid: /g'`

echo -e " 主库Gtid:"
echo $time1
echo -e "  Executed_Gtid: ""$a"
echo;
echo -e " 从库Gtid:"
echo $time2
echo "$b" | sed 's/.$//'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/582461.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—682. 棒球比赛【简单】(stoi函数、accumulate函数)

2024每日刷题&#xff08;120&#xff09; Leetcode—682. 棒球比赛 实现代码 class Solution { public:int calPoints(vector<string>& operations) {vector<int> v;for(const string& oper: operations) {if(oper "") {v.push_back(v.back(…

渗透新思路 | 仿真环境下内存转储分析和模糊测试的全记录

本文由安全研究人员hugsy于2024年03月26日更新并发表于blahcat博客上&#xff0c;本文主要记录了其在进行内存安全和模糊测试任务时发现的一些技术实现方式&#xff0c;主要讨论的是仿真环境下内存转储分析和模糊测试方法。本文旨在为红队和蓝队研究人员提供新的思路&#xff0…

数字化技术可以促进中国企业创新吗?

数字化技术可以显著促进中国企业的创新。数字化技术&#xff0c;包括人工智能&#xff08;AI&#xff09;、区块链&#xff08;Blockchain&#xff09;、云计算&#xff08;Cloud computing&#xff09;、大数据&#xff08;big Data&#xff09;等&#xff0c;被称为ABCD技术&…

TruLens

文章目录 一、关于 TruLensHow it works 二、安装三、快速使用Get DataInCreate Vector StoreBuild RAG from scratchSet up feedback functions.Construct the appRun the app 一、关于 TruLens Evaluate and Track LLM Applications 官网&#xff1a;https://www.trulens.o…

【Redis 开发】详细搭建Redis主从,并了解数据同步原理

Redis主从搭建 Redis主从搭建Redis的主从架构数据全同步原理数据的增量同步优化Redis主从集群 Redis主从 搭建Redis的主从架构 主从节点可以实现读写分离&#xff0c;将都大量的读操作分担与诸多从节点当中去 从节点可以叫做slave或者replica 如何搭建&#xff1a; 在一台…

node 项目启动报 ERROR Failed to compile with 1 errors 错误

问题 node项目通过npm run dev启动时出现ERROR Failed to compile with 1 errors 错误&#xff0c;具体信息如下&#xff1a; ✖ WebpackCompiled with some errors in 366.81msERROR Failed to compile with 1 errors …

如何买到“30元以下”的免备案服务器?

对于预算有限的个人和小型企业来说&#xff0c;30 元以下免备案服务器的价格非常亲民。用户可以以极低的成本获得所需的服务器资源&#xff0c;这对创业者、个人开发者、学生和站长来说简直不要太划算&#xff0c;毕竟配置可以升级真不够后面再付费升级也行。 何为“免备案”&…

xLua背包实践

准备工作 环境&#xff0c;代码 在C#代码方面我们需要准备单例模式基类&#xff0c;AB包管理器&#xff0c;lua解析器管理器 详情请见AB包管理器 xlua详解 然后是Xlua包和AB包&#xff0c;具体导入方法也在上面的链接中 然后是lua的三个文件 具体代码&#xff1a; JsonUtil…

主观赋权法、客观赋权法、组合赋权法、评价指标体系构建

在科研领域&#xff0c;为了对某个研究主题进行深入的探讨和评估&#xff0c;我们往往需要构建一套科学合理的评价体系&#xff0c;并为其中的各项评价指标赋予相应的权重。比如&#xff0c;在评价一项新技术的性能时&#xff0c;我们可能会考虑其创新性、实用性、成本效益等多…

git的学习笔记

git的学习使用 参考了书和好多网上搜到的连接&#xff0c;忘了记录参考的了&#xff0c;太多了&#xff08;&#xff09;捋出来一个大致的较为全面的git个人使用流程。 &#xff08;一&#xff09;基本操作&#xff1a; 安装配置好git 创建目录 init 初始化一个仓库&#xff0…

Golang | Leetcode Golang题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; // 贪心算法 func canJump(nums []int) bool {cover : 0n : len(nums)-1for i : 0; i < cover; i { // 每次与覆盖值比较cover max(inums[i], cover) //每走一步都将 cover 更新为最大值if cover > n {return true}}return false } …

2024通信会|迈向智慧配电网建设新时代,锐捷网络发布双平面配电通信解决方案

近期,以“加快推进通信数智化,助力构建新型能源体系”为主题的2024年能源网络通信创新应用大会在四川成都圆满结束,会议围绕构建新型能源体系和新型电力系统建设需求,探讨能源网络通信创新应用的最新趋势与成果、“主、配、微”通信网一体化融合、配电通信网、通信数智化转型等…

41-数组 _ 数组作为函数参数

41-1 冒泡排序函数的设计 数组传参的时候&#xff0c;形参有2种写法&#xff1a; 1、数组 2、指针 往往我们在写代码的时候&#xff0c;会将数组作为参数传个函数 如&#xff1a;实现一个冒泡排序&#xff0c;将数组的数据排成升序 冒泡排序的核心思想&#xff1a; 1、两…

NGINX发布动态页面的方法

一、建立 [rootserver100 html]# vim index.php [rootserver100 html]# pwd /usr/share/nginx/html 二、下载PHP文件 [rootserver100 conf.d]# dnf install php.x86_64 -y 正在更新 Subscription Management 软件仓库。 无法读取客户身份 本系统尚未在权利服务器中注册。可…

国内十大CRM软件盘点2024:专家推荐+用户真实反馈

Zoho CRM软件即客户关系管理系统&#xff0c;这个概念自1999年由GartnerGroup公司提出以来逐渐演变&#xff0c;最初是为了填补ERP系统在客户关系管理方面的缺失&#xff0c;后来发展成了企业战略中不可或缺的工具。随着企业对客户管理的重视程度不断提升&#xff0c;越来越多的…

Socket套接字(UDP数据报)篇

Socket 概念数据报套接字DatagramSocketDatagramPacketInetSocketAddress 小结 概念 Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元. 基于Socket套接字的网络程序开发就是网络编程. 数据报套接字 使用的是UDP(User Datagram Protocol…

IGM焊接机器人RTE 495伺服电机维修详情一览

在当今科技迅速发展的时代&#xff0c;机器人已成为各行各业不可或缺的重要工具。IGM机器人便是其中之一&#xff0c;其工业机械手伺服马达作为机器人的关键部件&#xff0c;确保机器人能够高效、稳定地运行。当出现IGM焊接机器人RTE 495伺服电机故障问题时&#xff0c;及时进行…

【推荐】2024年必备的技术学习网站

在学习 Java 的过程中&#xff0c;你都在用哪些网站查找资料和学习呢&#xff1f;以下是 V 哥在日常工作和学习中&#xff0c;经常会使用到的网站&#xff0c;有哪些是与 V 哥不约而同都在用的呢&#xff0c;下面来一一介绍一下&#xff1a; 1、百度开发者搜索 你是不是日常在…

[Algorithm][分治 - 归并排序][排序数组][交易逆序对的总数][计算右侧小于当前元素的个数][翻转对]详细讲解

目录 0.原理讲解1.排序数组1.题目链接2.代码实现 2.交易逆序对的总数1.题目链接2.算法原理详解3.代码实现 3.计算右侧小于当前元素的个数1.题目链接2.算法原理详解3.代码实现 4.翻转对1.题目链接2.算法原理详解3.代码实现 0.原理讲解 归并排序的流程充分的体现了**「分⽽治之」…

使用CSgetshell到3389端口远程桌面

中间使用了这个Akagi64.exe提权&#xff0c;网上可以找到&#xff0c;高版本的cs网上也可以找到。