Py学习  »  DATABASE

MySQL线上执行语句,监控与日志不可少

Java基基 • 4 月前 • 183 次点击  

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源:blog.csdn.net/hebtu666
/article/details/140939049


监控和日志记录是数据库管理中的关键部分,它们帮助数据库管理员(DBA)理解系统的性能状况,诊断问题,并保持系统的健康状态。以下是关于如何监控系统资源使用情况以及记录执行日志的一些示例:

监控系统资源使用情况

监控系统资源通常涉及跟踪CPU使用率、内存使用、磁盘I/O以及网络流量等。许多操作系统和数据库管理系统提供了工具来帮助监控这些资源。

使用 top 命令监控CPU和内存使用情况:

top 

这个命令将显示Linux系统中的实时进程信息,包括CPU和内存使用情况。

使用 iostat 命令监控磁盘I/O:

iostat -x 2 

这个命令显示磁盘I/O统计数据,-x 参数提供了扩展统计信息,2 表示间隔2秒刷新数据。

使用 vmstat 监控虚拟内存统计:

vmstat 1 

这个命令每1秒刷新一次,显示包括CPU、内存、磁盘和系统进程等信息。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

记录执行日志

数据库系统通常会有一个查询日志,用于记录执行的SQL语句。在MySQL中,你可以通过修改配置文件来启用慢查询日志,记录执行时间超过指定阈值的查询。

启用MySQL慢查询日志:

在MySQL配置文件(通常是my.cnf或my.ini)中设置:

[mysqld] 
slow_query_log = 1 
slow_query_log_file = /var/log/mysql/mysql-slow.log 
long_query_time = 2 

这里,slow_query_log 设置为1以启用慢查询日志,slow_query_log_file 指定日志文件的位置,long_query_time 设置阈值为2秒,任何执行时间超过2秒的查询都会被记录下来。

查看慢查询日志:

tail -f /var/log/mysql/mysql-slow.log 

这个命令实时显示慢查询日志的内容。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

分析和解决问题

当出现性能问题或其他异常时,DBA可以查看和分析这些监控数据和日志信息,以识别并解决问题。例如:

  • 如果top命令显示CPU使用率异常高,可能是某个查询或进程占用了过多资源。
  • 如果iostat显示磁盘I/O异常高,可能是磁盘性能瓶颈或查询导致了大量的磁盘读写。
  • 如果慢查询日志中有多条记录,DBA可能需要优化这些查询的性能,比如通过添加索引或重写查询语句。

最佳实践

定期监控:定期查看资源使用情况和日志文件,而不是仅在出现问题时才检查。

  • 自动化监控工具: 使用如Prometheus、Grafana、Nagios等工具自动化监控任务。
  • 日志管理: 使用日志管理工具(如ELK栈)来集中管理和分析日志。
  • 定期审计: 定期审计数据库的配置和性能,以适应可能变化的负载。
  • 备份日志文件: 定期备份重要的日志文件,以防数据丢失或损坏。

通过这些监控和日志记录的实践,DBA可以确保数据库的性能得到优化,并且在出现问题时能够迅速响应和解决。


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/176831
 
183 次点击