MySQL系统运行状态实时监控(shell版本)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 开始接触MySQL,还是和Oracle有些不一样的地方,需要逐步积累和学习,其中有一点不同,就是Oracle有一些数据字典,可以显示系统运行状态,但需要使用SQL来检索,另外AWR会有一些运行状态信息,相比之下,MySQL提供了一些指令,直接执行就可以显示,看起来要更方便一些。

开始接触MySQL,还是和Oracle有些不一样的地方,需要逐步积累和学习,其中有一点不同,就是Oracle有一些数据字典,可以显示系统运行状态,但需要使用SQL来检索,另外AWR会有一些运行状态信息,相比之下,MySQL提供了一些指令,直接执行就可以显示,看起来要更方便一些。


MySQL要显示系统运行状态,可以有两种方法。


方法一:登陆数据库,执行命令show global status,如下所示,


方式二:不用登陆数据库,使用mysqladmin指令,如下所示,

mysqladmin -uroot -p'My@sql' extended-status

其中extended-status可以用ext进行缩写。


为了不显示输入密码,可以配置文件中定义,

[mysqladmin]

host=localhost

user=root

password='My@sql'


直接用以下指令,

mysqladmin extended-status


若没有用默认的配置文件,则需要注意,mysqladmin默认参数,按照如下顺序,

/etc/my.cnf /etc/mysql/my.cnf /var/mysql/etc/my.cnf ~/.my.cnf


同时需要使用以下参数,

--defaults-extra-file=# Read this file after the global files are read.


指令如下,

mysqladmin --defaults-extra-file=/DATA/mysql/my.cnf ext


既然有以上指令,可以帮助我们了解,MySQL系统运行状态,我们自然考虑,是否可以自动化,几乎可以用任何语言,实现上面的指令过程,以下是用shell脚本实现的监控模版,


/* 使用awk,截出mysqladmin ext的回显,-i1表示1秒钟,自动刷新一次 */

mysqladmin --defaults-extra-file=/DATA/mysql/my.cnf ext -i1 | awk 'BEGIN{lswitch=0;


/* 打印信息表头 */

print "|QPS        |Commit     |Rollback   |TPS        |Threads_con  |Threads_run |";

print "------------------------------------------------------------------------------";}


/* 打印Queries、Com_commit、Com_rollback、Threads_connected、Threads_running这五个参数,前三个参数,是增量数据,因此需要记录上一次的值 */

$2 ~ /Queries$/ {q=$4-lq; lq=$4;}

$2 ~ /Com_commit$/ {c=$4-lc; lc=$4;}

$2 ~ /Com_rollback$/ {r=$4-lr; lr=$4;}

$2 ~ /Threads_connected$/ {tc=$4;}

$2 ~ /Threads_running$/ {tr=$4;


/* 设置lswitch的原因,为了打印10次出现一次表头 */

if (lswitch==0)

{lswitch=1;

count=0;}

else {


/* 打印10次数据,重新显示表头 */

if (count>10) {

count=0;

print "------------------------------------------------------------------------------";

print "|QPS        |Commit     |Rollback   |TPS        |Threads_con  |Threads_run |";

print "------------------------------------------------------------------------------";

} else {

count+=1;


/* 按照格式符进行打印,其中TPS值为Com_commit、Com_rollback的总和 */

printf "|%-10d |%-10d |%-10d |%-10d |%-12d |%-12d|", q,c,r,c+r,tc,tr;

}

}

}'


每隔1秒,刷新一次,


每隔10次,重新打印表头,


以上完整代码,可以从我的GitHub下载,

https://github.com/bisal-liu/oracle/blob/master/mysql_per_mon.sh



如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:bisal的个人杂货铺,您的支持是对我最大的鼓励!共同学习,共同进步:)

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
144 11
|
3月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
27天前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
201 17
|
17天前
|
运维 关系型数据库 MySQL
使用RDS MySQL 极速构建实时全文检索系统,完成任务可领取300社区积分兑换各种商城好礼!
实时全文检索系统是企业竞争力的关键工具,但自建面临诸多挑战。本方案利用阿里云RDS MySQL版与Elasticsearch简化构建,优化数据索引与查询性能,助力企业高效数字化转型。
|
2月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
544 26
|
2月前
|
SQL Oracle 关系型数据库
在MySQL Shell里 重启MySQL 8.4实例
在MySQL Shell里 重启MySQL 8.4实例
67 2
|
2月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
264 12
|
4月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
161 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
4月前
|
人工智能 关系型数据库 分布式数据库
100%兼容MySQL!手把手教你基于PolarDB搭建RAG系统
100%兼容MySQL!手把手教你基于PolarDB搭建RAG系统
244 0
|
1月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!

推荐镜像

更多