【数据库相关】mysql数据库巡检

mysql数据库巡检

    • 巡检步骤
      • **一、基础状态检查**
      • **二、服务器资源监控**
        • **CPU使用**
        • **内存使用**
        • **磁盘I/O**
        • **网络流量**
      • **三、数据库内部健康度**
        • **全局状态**
        • **慢查询监控**
        • **锁与并发**
      • **四、存储引擎健康**
        • **InnoDB引擎**
        • **MyISAM引擎**
      • **五、日志与备份**
      • **六、安全与权限**
      • **七、高可用性检查**
        • **主从复制**
        • **集群状态(MySQL Group Replication/InnoDB Cluster)**
      • **八、自动化监控建议**
      • **九、维护与调优建议**
      • **十、附录:关键命令速查**

巡检步骤

一、基础状态检查

  1. 服务可用性
    systemctl status mysql(检查服务状态)
    telnet <IP> 3306 / nc -zv <IP> 3306(测试端口连通性)
    SHOW GLOBAL VARIABLES LIKE 'server_id';(确认实例唯一性)

  2. 版本与配置
    SELECT VERSION();(核对MySQL版本)
    • 检查my.cnf配置文件(内存分配、线程池、字符集等关键参数)

二、服务器资源监控

CPU使用

top/htop(观察MySQL进程CPU占比)
mpstat 1 5(1秒间隔采样5次,分析CPU周期分布)
警戒值:持续>70%需排查慢查询或锁争用。

内存使用

free -m(查看物理内存)
ps aux --sort -rss | grep mysql(MySQL进程内存占用)
InnoDB缓冲池SHOW ENGINE INNODB STATUS LIKE 'Innodb_buffer_pool_size';
• 缓冲池使用率>90%时需扩容。

磁盘I/O

iostat -dx 2(监控磁盘读写延迟与吞吐量)
iotop -o(实时查看I/O密集型进程)
重点指标await(平均等待时间)<20ms为佳。

网络流量

netstat -antp | grep ESTABLISHED(检查 active 连接)
ss -s(统计TCP连接数)
风险阈值TIME_WAIT连接数>1000可能需调整tcp_fin_timeout

三、数据库内部健康度

全局状态

SHOW GLOBAL STATUS;(关键指标解析):
Threads_connected(当前连接数 vs max_connections
Queries_per_second(QPS趋势)
Slow_queries(慢查询数量)

SHOW ENGINE INNODB STATUS;(分析事务、锁、死锁):
• 检查Innodb_row_lock_waits(行级锁等待)
Innodb_trx(活跃事务数)

慢查询监控

• 启用慢查询日志:slow_query_log=1 + long_query_time=2
• 分析工具:pt-query-digest /var/log/mysql/slow.log
优化方向:索引缺失、临时表使用、全表扫描。

锁与并发

SHOW STATUS LIKE 'innodb_lock_waits';(锁等待事件)
INFORMATION_SCHEMA.INNODB_TRX(查看长事务):
trx_stateRUNNING且持续时间过长需终止。

四、存储引擎健康

InnoDB引擎

• 表空间文件检查:

SELECT file_name, tablespace_name, ROUND((data_length + index_length)/1024/1024, 2) AS size_mb 
FROM information_schema.tables 
WHERE engine='InnoDB';

• 自适应哈希索引命中率:SHOW ENGINE INNODB STATUS LIKE 'adaptive_hash_index';
风险点ibdata1文件过大时考虑表空间拆分。

MyISAM引擎

CHECK TABLE <table_name>(修复表损坏)
ANALYZE TABLE(更新统计信息)

五、日志与备份

  1. 错误日志
    • 检查/var/log/mysql/error.log中的警告/错误(如主键冲突、连接拒绝)。

  2. 二进制日志
    SHOW MASTER STATUS;(确认binlog写入位置)
    PURGE BINARY LOGS BEFORE '<date>';(清理旧日志)

  3. 备份验证
    • 物理备份:xtrabackup --check --backup-dir=/path
    • 逻辑备份:mysqlcheck --all-databases --auto-repair

六、安全与权限

SHOW GRANTS FOR USER '<user>'@'host';(最小权限原则)
mysql_secure_installation(加固配置)
• 授权审计:定期清理过期账户。

七、高可用性检查

主从复制

SHOW SLAVE STATUS\G(检查Slave_IO_RunningSlave_SQL_Running
• 延迟监控:SHOW MASTER STATUS vs SHOW SLAVE STATUSRelay_Master_Log_FileExec_Master_Log_Pos
工具推荐:Percona Toolkit的pt-table-checksum校验数据一致性。

集群状态(MySQL Group Replication/InnoDB Cluster)

SELECT * FROM mysql.group_replication_members;(节点健康)
• 集群控制节点(CN)日志:/var/log/mysql/innodb-cluster.log

八、自动化监控建议

  1. Prometheus + MySQL Exporter
    • 拉取指标:up{job="mysql", instance="localhost"}(服务状态)
    • 关键告警:QPS突增、慢查询率>5%、锁等待超时。

  2. 自定义脚本
    • 示例:监控连接数脚本:

    mysql -e "SHOW STATUS LIKE 'Threads_connected'" | awk '/Threads_connected/ {print $2}'
    
  3. 巡检工具
    • Percona Monitoring and Management (PMM)
    • Datadog MySQL Integration

九、维护与调优建议

  1. 定期优化
    OPTIMIZE TABLE(整理碎片)
    ALTER TABLE ... ENGINE=InnoDB(迁移MyISAM表)

  2. 参数调优示例
    • 根据内存调整InnoDB缓冲池:

    innodb_buffer_pool_size = (70-80% of total RAM)
    innodb_log_file_size = 256M
    

    • 限制并发连接:

    max_connections = 500
    thread_pool_size = 16
    
  3. 版本升级
    • 评估MySQL 8.0的特性(如窗口函数、资源组管理)对业务的影响。

十、附录:关键命令速查

-- 查看实时线程状态
SHOW PROCESSLIST;-- 获取InnoDB指标
SHOW ENGINE INNODB STATUS LIKE 'innodb_';-- 分析慢查询
SELECT * FROM sys.slow_log;

通过以上清单,可系统性排查MySQL性能瓶颈与潜在风险。建议结合自动化工具实现持续监控,并根据业务增长动态调整资源配置。若遇到复杂问题(如死锁风暴、内存泄漏),建议启用innodb_force_recovery模式并联系专业支持。

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

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

相关文章

Python进阶编程总结

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

Redis复制(replica)主从模式

Redis主从复制 Redis 的复制&#xff08;replication&#xff09;功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品&#xff0c;其中被复制的服务器为主服务器&#xff08;master&#xff09;&#xff0c;而通过复制创建出来的服务器复制品则为从服务器&#…

Adobe Premiere Pro2023配置要求

Windows 系统 最低配置 处理器&#xff1a;Intel 第六代或更新版本的 CPU&#xff0c;或 AMD Ryzen™ 1000 系列或更新版本的 CPU&#xff0c;需要支持 Advanced Vector Extensions 2&#xff08;AVX2&#xff09;。操作系统&#xff1a;Windows 10&#xff08;64 位&#xff…

【Kubernets】Deployment 和 StatefulSet 有什么区别?什么时候用 StatefulSet?

Deployment 和 StatefulSet 的区别 在 Kubernetes 中&#xff0c;Deployment 和 StatefulSet 都用于管理 Pod&#xff0c;但它们适用于不同的场景。 1. Deployment&#xff1a;管理无状态应用 特点&#xff1a; 无状态&#xff1a;Pod 之间相互独立&#xff0c;不需要保持顺…

R语言零基础系列教程-03-RStudio界面介绍与关键设置

代码、讲义、软件回复【R语言03】获取。 设置位置: 菜单栏 - Tools - Blobal Options 设置 通用设置 设置面板左侧General选项 版本选择: 一般只用一个版本即可 默认工作目录设置: 你希望RStudio打开时是基于哪个目录进行工作可以不设置, 因为脚本一般都是放置在特定项目路…

车载以太网测试-9【网络层】-子网划分的子网掩码VLAN

目录 1 摘要2 子网划分2.1 子网掩码2.2 VLAN&#xff08;虚拟局域网&#xff09;2.2.1 IEEE 802.1Q VLAN标签2.2.1.1 VLAN标签的结构2.2.1.2 VLAN标签的插入2.2.1.3 VLAN标签的处理2.1.2.4 PVID&#xff08;Port VLAN Identifier&#xff09; 和 VID&#xff08;VLAN Identifie…

微信小程序刷题逻辑实现:技术揭秘与实践分享

页面展示&#xff1a; 概述 在当今数字化学习的浪潮中&#xff0c;微信小程序以其便捷性和实用性&#xff0c;成为了众多学习者刷题备考的得力工具。今天&#xff0c;我们就来深入剖析一个微信小程序刷题功能的实现逻辑&#xff0c;从代码层面揭开其神秘面纱。 小程序界面布局…

JVM--垃圾回收

垃圾回收的概念 垃圾回收主要针对的是堆中的对象&#xff0c;堆是一个共享的区域&#xff0c;创建的对象和数组都放在这个位置。但是我们不能一直的创建对象&#xff0c;也不是所有的对象能一直存放&#xff0c;如果不进行垃圾回收&#xff0c;内存迟早会耗尽&#xff0c;及时…

【教程】继承中的访问控制 C++

目录 简介public&#xff0c;protected 和 private继承中的 public&#xff0c;protected 和 private示例 简介 在 C 中派生类可以通过 public&#xff0c;protected 和 private 三种修饰符决定基类成员在派生类中的访问级别 public&#xff0c;protected 和 private 公有成…

【2025】基于python+django的驾校招生培训管理系统(源码、万字文档、图文修改、调试答疑)

课题功能结构图如下&#xff1a; 驾校招生培训管理系统设计 一、课题背景 随着机动车保有量的不断增加&#xff0c;人们对驾驶技能的需求也日益增长。驾校作为驾驶培训的主要机构&#xff0c;面临着激烈的市场竞争和学员需求多样化等挑战。传统的驾校管理模式往往依赖于人工操作…

要登录的设备ip未知时的处理方法

目录 1 应用场景... 1 2 解决方法&#xff1a;... 1 2.1 wireshark设置... 1 2.2 获取网口mac地址&#xff0c;wireshark抓包前预过滤掉自身mac地址的影响。... 2 2.3 pc网口和设备对接... 3 2.3.1 情况1&#xff1a;... 3 2.3.2 情…

一.ffmpeg打开麦克风,录制音频并重采样

一.windows windows下使用msys编译ffmpeg&#xff0c;先编译libx264和libx265&#xff0c;然后编译ffmpeg的时候需要添加这两个库的路径才能--enable&#xff1b;为什么ffplay--enable了还是没有呢&#xff0c;仔细看编译打印&#xff0c;可能刚有一段报错提示SDL找不到&#…

go 安装swagger

1、依赖安装&#xff1a; # 安装 swag 命令行工具 go install github.com/swaggo/swag/cmd/swaglatest# 安装 gin-swagger 和 swagger 文件的依赖 go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files 2、测试 cmd中输入&#xff1a; swag -v 如果…

网络安全反渗透 网络安全攻防渗透

网络渗透防范主要从两个方面来进行防范&#xff0c;一方面是从思想意识上进行防范&#xff0c;另一方面就是从技术方面来进行防范。 1.从思想意识上防范渗透 网络攻击与网络安全防御是正反两个方面&#xff0c;纵观容易出现网络安全事故或者事件的公司和个人&#xff0c;在这些…

java泛型通配符?及上下界(extends,super)保证安全性、灵活性、可读性

在 Java 中&#xff0c;泛型通配符&#xff08;?&#xff09;用于表示未知类型&#xff0c;通常用于增强泛型的灵活性。通配符可以与上下限结合使用&#xff0c;以限制泛型的范围。以下是通配符及上下限的使用示例&#xff1a; 1. 无界通配符 (?) 无界通配符表示可以接受任意…

技术视界|构建理想仿真平台,加速机器人智能化落地

在近期的 OpenLoong 线下技术分享会 上&#xff0c;松应科技联合创始人张小波进行了精彩的演讲&#xff0c;深入探讨了仿真技术在机器人智能化发展中的关键作用。他结合行业趋势&#xff0c;剖析了现有仿真平台的挑战&#xff0c;并描绘了未来理想仿真系统的设计理念与实现路径…

uniapp-x 之useAttrs只读

数据类型&#xff1a; useAttrs在web端拿到的是obj&#xff0c;app拿到的是map 是否可以修改内部元素&#xff1a; 否&#xff0c;只读 这意味着你想这样写代码将会无效 let attrsuseAttrs();console.log("attrs",attrs, attrs instanceof Map)//appif(attrs ins…

Python 正则表达式模块 re

Python 正则表达式模块 re flyfish 一、正则表达式基础 1. 什么是正则表达式&#xff1f; 正则表达式&#xff08;Regular Expression, RE&#xff09;是一种用于匹配、查找和替换文本模式的工具&#xff0c;由普通字符&#xff08;如字母、数字&#xff09;和特殊字符&…

【商城实战(33)】解锁版本迭代与更新策略

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…

环境配置 | 5分钟极简Git入门:从零上手版本控制

你是否刚接触Git&#xff1f;别担心&#xff01;这篇指南将用最简单的步骤带你掌握Git核心操作&#xff0c;快速开启版本控制之旅&#xff01;✨ 1.git在win10上的下载安装 1.1.下载git 打开官方网站 Git - Downloadshttps://git-scm.com/downloads ​ ​​ 1.2.git安装 …