MySQL日常巡检

操作系统层面

  • CPU
  • 内存
  • I/O
  • 磁盘
  • 系统基本信息
  • 操作系统日志

巡检没啥特别的,就直奔主题把。

CUP

sar -u 10 3

内存

sar -r 10 3

I/O

sar -b 10 3

磁盘

df -h

系统基础信息

查看是否使用numa和swap,或是否频繁交互信息等。还有其他的监控项目,这里就不赘述了。

操作系统日志

除此之外,还需要关注日志类信息,例如:

tail 200 /var/log/messages
dmesg | tail 200

MySQL层面

  • 重点参数
  • MySQL的状态
  • 库表情况
  • MySQL主从检测
  • 高可用层面
  • 中间件的巡检

重点参数

参数参考值
innodb_buffer_pool_size系统的50%-75%
binlog_formatROW
sync_binlog1
innodb_flush_log_at_trx_commit1
read_only从库ON,主库OFF
super_read_only从库ON,主库OFF
log_slave_updates1
innodb_io_capacitysata/sas硬盘这个值在200
sas raid10: 2000
ssd硬盘:8000
fusion-io(闪存卡):25,000-50,000
max_connections

MySQL的状态

\s
show full processlist;
show engine innodb status\G
show slave hosts;

wait事件

show global status like 'Innodb_buffer_pool_wait_free';
show global status like 'Innodb_log_waits';

#表锁
show global status like 'Table_locks_waited';
show global status like 'Table_locks_immediate';#行锁#当前等待锁的行锁数量
show global status like 'Innodb_row_lock_current_waits';#请求行锁总耗时
show global status like 'Innodb_row_lock_time';#请求行锁平均耗时
show global status like 'Innodb_row_lock_time_avg';#请求行锁最久耗时
show global status like 'Innodb_row_lock_time_max';#行锁发生次数
show global status like 'Innodb_row_lock_waits';#还可以定时收集INFORMATION_SCHEMA里面的信息:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; // MySQL 8.0 中已经不再使用,建议观测 sys 库
#临时表/临时文件
show global status like 'Created_tmp_disk_tables';
show global status like 'Created_tmp_files';#打开表/文件数
show global status like 'Open_files';
show global status like 'Open_table_definitions';
show global status like 'Open_tables';#并发连接数
show global status like 'Threads_running';
show global status like 'Threads_created';
show global status like 'Threads_cached';
show global status like 'Aborted_clients';#客户端没有正确关闭连接导致客户端终止而中断的连接数
show global status like 'Aborted_connects';

Binlog

# 使用临时二进制日志缓存但超过 binlog_cache_size 值,需要使用临时文件存储事务中的语句的事务数
binlog_cache_disk_use;# 使用二进制日志缓存的事务数
binlog_cache_use;# 使用二进制日志语句缓存但超过 binlog_stmt_cache_size 的值,需要使用临时文件存储这些语句的非事务语句的数量
binlog_stmt_cache_disk_use;# 使用二进制日志语句缓存的非事务性语句的数量
binglog_cache_disk_use;

链接数

# 试图连接到(不管成不成功)mysql服务器的链接数
show global status like 'Connection'; 

临时表

# 服务器执行语句时,在硬盘上自动创建的临时表的数量,是指在排序时,内存不够用(tmp_table_size小于需要排序的结果集),所以需要创建基于磁盘的临时表进行排序
show global status like 'Created_tmp_disk_tables'; # 服务器执行语句时自动创建的内存中的临时表的数量
show global status like 'Created_tmp_files';

索引

# 内部提交语句
show global status like 'Handler_commit'; # 内部 rollback语句数量
show global status like 'Handler_rollback'; # 索引第一条记录被读的次数,如果高,则它表明服务器正执行大量全索引扫描
show global status like 'Handler_read_first';  # 根据索引读一行的请求数,如果较高,说明查询和表的索引正确
show global status like 'Handler_read_key'; # 查询读索引最后一个索引键请求数
show global status like 'Handler_read_last';# 按照索引顺序读下一行的请求数
show global status like 'Handler_read_next'; # 按照索引顺序读前一行的请求数
show global status like 'Handler_read_prev';# 根据固定位置读一行的请求数,如果值较高,说明可能使用了大量需要mysql扫整个表的查询或没有正确使用索引
show global status like 'Handler_read_rnd'; # 在数据文件中读下一行的请求数,如果你正进行大量的表扫,该值会较高
show global status like 'Handler_read_rnd_next'; # 被缓存的.frm文件数量
show global status like 'Open_table_definitions'; # 已经打开的表的数量,如果较大,table_open_cache值可能太小
show global status like 'Opened_tables';# 当前打开的表的数量
show global status like 'Open_tables';# 已经发送给服务器的查询个数
show global status like 'Queries';# 没有使用索引的联接的数量,如果该值不为0,你应该仔细检查表的所有
show global status like 'Select_full_join';# 对第一个表进行完全扫的联接的数量
show global status like 'Select_scan';# 查询时间超过long_query_time秒的查询个数
show global status like 'Slow_queries';# 排序算法已经执行的合并的数量,如果值较大,增加sort_buffer_size大小
show global status like 'Sort_merge_passes';

线程

# 线程缓存内的线程数量
show global status like 'Threads_cached';# 当前打开的连接数量
show global status like 'Threads_connected';# 创建用来处理连接的线程数
show global status like 'Threads_created';# 激活的(非睡眠状态)线程数
show global status like 'Threads_running';

库表情况

自增id使用情况

SELECTtable_schema,table_name,ENGINE,Auto_increment 
FROMinformation_schema.TABLES 
WHERETABLE_SCHEMA NOT IN ("INFORMATION_SCHEMA","PERFORMANCE_SCHEMA","MYSQL","SYS") limit 30;

表行数数据大小统计

SELECTtable_schema "Database name",sum( table_rows ) "No. of rows",sum( data_length ) / 1024 / 1024 "Size data (MB)",sum( index_length )/ 1024 / 1024 "Size index (MB)" 
FROMinformation_schema.TABLES 
GROUP BYtable_schema;

表行数 TOP 30

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS
FROM `information_schema`.`tables` 
WHERETABLE_SCHEMA not in('information_schema','sys','mysql','performance_schema')
ORDER BY table_rows DESC LIMIT 30;

存储引擎不是innodb的表

SELECTTABLE_SCHEMA,TABLE_NAME,
ENGINE 
FROMINFORMATION_SCHEMA.TABLES 
WHEREENGINE != 'innodb' AND TABLE_SCHEMA NOT IN ( "INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA", "MYSQL", "SYS" );

表数据和碎片 TOP 30

select TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH,DATA_FREE
from information_schema.tables 
where DATA_FREE is not null 
ORDER BY DATA_FREE DESC LIMIT 30;

无主键的表

SELECTt1.table_schema,t1.table_name,t1.table_type 
FROMinformation_schema.TABLES t1LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA AND t1.table_name = t2.TABLE_NAME AND t2.CONSTRAINT_NAME IN ( 'PRIMARY' ) 
WHEREt2.table_name IS NULL AND t1.TABLE_SCHEMA NOT IN ( 'information_schema', 'performance_schema', 'test', 'mysql', 'sys' ) AND t1.table_type = "BASE TABLE";

MySQL主从检测

#主从状态
show slave status\G#主从是否延迟
Master_Log_File == Relay_Master_Log_File 
&& Read_Master_Log_Pos == Exec_Master_Log_Pos

高可用层面

MHA && keepalived

观察日志看是否有频繁主从切换,如果有的话就分析一下是什么原因导致频繁切换?

中间件的巡检

mycat && proxysql

这些中间件的巡检,首先参考系统巡检,再看一下中间件本身的日志类和状态类信息,网络延迟或丢包的检查,也是必须要做工作。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0到机器视觉工程师(二):封装调用静态库和动态库

目录 静态库 编写静态库 使用静态库 方案一 方案二 动态库 编写动态库 使用动态库 方案一 方案二 方案三 总结 静态库 静态库是在编译时将库的代码合并到最终可执行程序中的库。静态库的优势是在编译时将所有代码包含在程序中,可以使程序独立运行&…

VisualStudio 2019 升级遇到的问题及解决

事件起因 今天计划想研究下.net core(后面版本直接称为 .net ),发现 .net sdk 5.0 最新版本安装不成功。解决之后,真是手欠,看着Visual Studio 2019 有更新了,就直接点击了,这时才发现问题大了。。。 安装…

Spring Boot教程之四十一:在 Spring Boot 中调用或使用外部 API

如何在 Spring Boot 中调用或使用外部 API? Spring Boot 建立在 Spring 之上,包含 Spring 的所有功能。它现在越来越受到开发人员的青睐,因为它是一个快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不必费力配置…

HTML5实现好看的新年春节元旦网站源码

HTML5实现好看的新年春节元旦网站源码 前言一、设计来源1.1 主界面1.2 新年由来界面1.3 文章详细界面1.4 登录界面1.5 注册界面1.6 新年图册界面1.7 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的新年春节元旦网站源码,春节新…

Python学习(5):数据结构

1 列表 1.1 列表方法 列表数据类型支持很多方法,列表对象的所有方法所示如下: list.append(x):在列表末尾添加一项。 类似于 a[len(a):] [x]。list.extend(iterable):通过添加来自 iterable 的所有项来扩展列表。 类似于 a[len…

2021.12.28基于UDP同信的相关流程

作业 1、将TCP的CS模型再敲一遍 服务器 #include <myhead.h> #define PORT 8888 #define IP "192.168.124.123" int main(int argc, const char *argv[]) {//创建套接字//绑定本机IP和端口号//监听客户端请求//接收客户端连接请求//收发消息//创建套接字int…

2024年RAG:回顾与展望

2024年&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术经历了从狂热到理性的蜕变&#xff0c;成为大模型应用领域不可忽视的关键力量。年初&#xff0c;AI的“无所不能”让市场充满乐观情绪&#xff0c;RAG被视为解决复杂问题的万能钥匙&#xff1…

Python 爬虫

一、创建项目 1.双击打开pycharm&#xff0c;点击新建项目 2.项目设置- 勾选[继承全局站点软件包]- 勾选[可用于所有项目]- 取消勾选[创建main.py欢迎脚本]- 点击创建 3.项目名称右键--新建--python文件 4.输入文件名--回车二、编辑代码 # 导入请求模块 import requests # 如…

idea项目导入gitee 码云

1、安装gitee插件 IDEA 码云插件已由 gitosc 更名为 gitee。 1 在码云平台帮助文档http://git.mydoc.io/?t153739上介绍的很清楚&#xff0c;推荐前两种方法&#xff0c; 搜索码云插件的时候记得名字是gitee&#xff0c;gitosc已经搜不到了。 2、使用码云托管项目 如果之…

基于JAVA+SpringBoot+Vue的机动车号牌管理系统

基于JAVASpringBootVue的机动车号牌管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; …

活动预告 |【Part1】Microsoft Azure 在线技术公开课:基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;基础知识”活动&#xff0c;培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动&#xff0c;扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 活…

郑州时空-TMS运输管理系统 GetDataBase 信息泄露漏洞复现

0x01 产品简介 郑州时空-TMS运输管理系统是一款专为物流运输企业设计的综合性管理软件,旨在提高运输效率、降低运输成本,并实现供应链的协同运作。系统基于现代计算机技术和物流管理方法,结合了郑州时空公司的专业经验和技术优势,为物流运输企业提供了一套高效、智能的运输…

BUUCTF Pwn ciscn_2019_es_2 WP

1.下载 checksec 用IDA32打开 定位main函数 发现了个假的后门函数&#xff1a; 看看vul函数&#xff1a; 使用read读取 想到栈溢出 但是只有48个 只能覆盖EBP和返回地址 长度不够构造 所以使用栈迁移&#xff1a; 栈迁移需要用到leave ret 使用ROPgadget找地址&#xff1a; …

07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)

目录 1、综述2、sceneview.qualitySettings2.1、sceneview.qualitySettings.memoryLimit2.2、lodFactor2.3 additionalCacheMemory 3、结论 1、综述 先上重点&#xff0c;SceneView.qualitySettings为隐藏对象参数&#xff0c;该对象的memoryLimit和lodFactor等值&#xff0c;…

【SQL Server】教材数据库(1)

1 利用sql建立教材数据库&#xff0c;并定义以下基本表&#xff1a; 学生&#xff08;学号&#xff0c;年龄&#xff0c;性别&#xff0c;系名&#xff09; 教材&#xff08;编号&#xff0c;书名&#xff0c;出版社编号&#xff0c;价格&#xff09; 订购&#xff08;学号…

RP2040 C SDK I2C外设使用

RP2040 C SDK I2C外设使用 &#x1f4cc;相关篇《RP2040 VSCode C/C开发环境快速部署》&#x1f4cd;I2C API 外设&#xff1a;https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#group_hardware_i2c&#x1f527;驱动I2C ssd1306 屏幕需要使用到的库&#xf…

模仿微信小程序wx.showModal自定义弹窗,内容可以修改

实现以下弹框样式功能 1.在components新建一个文件showModel.wpy作为组件&#xff0c;复制下面代码 <style lang"less" scoped> .bg_model {display: flex;justify-content: center;align-items: center;// 弹框背景.bg_hui {width: 100%;height: 100%;posi…

WebP Vs. PNG:哪种图像格式适合您的网站?

图像对任何网站都至关重要,可以增强视觉吸引力和用户体验。但是,图像也会显着影响网站的加载时间,因此必须针对 Web 使用对其进行优化。一种方法是使用正确的图像格式。

mysql乱码、mysql数据中文问号

网上排出此错误方法的很多&#xff0c;但是 都不简洁&#xff0c;找不到根本原因 主要排查两点&#xff1a; 1.代码中jdbc链接的编码规则 urljdbc:mysql://localhost:3306/title?useUnicodetrue&amp;characterEncodingutf8 将characterEncoding设置为utf8 2.设置mysq…

INT303 Big Data Analytics 笔记

Lecture1 Introduction 不考&#xff01; “Data Mining is the study of collecting, processing, analyzing, and gaining useful insights from data” EXPLORATORY ANALYSIS Make measurements to understand what the data looks like first steps when collecting da…