百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> Mysql运维之日志治理
分享文章到:

Mysql运维之日志治理

发布时间:09/01 来源:未知 浏览: 关键词:
一样成熟的软件,都会有本人的日志文件。通过这些日志来快速定位问题。在Mysql中,日志分为以下几类:

  • 慢查询日志,当sql的施行时间超越设定值时,便会记载

  • 错误日志,mysql启动、休止或运转时发生错误时,会记载到错误日志里

  • 二进制日志,该日志记载那些改动数据库数据时的sql语句,通过他,我们可以来复原Mysql数据

  • 查询日志,当开启时,会记载查询SQL。

今天我们来讲讲慢查询、错误日志乃至查询日志,二进制日志文件,将放今后用新的一篇文章来具体讲解。

错误日志

错误日志写记载Mysql启动、休止时显现的问题,别的也记载Mysql在运转中发生的严重问题。可以使用show variables like 'log_err%';查看错误日志文件的位置。

mysql> show variables like 'log_err%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| log_error           | ./iZbp171edtq2kx5iy0xufeZ.err |
| log_error_verbosity | 3                             |
+---------------------+-------------------------------+
2 rows in set (0.01 sec)

错误日志,默许使用主机名作为文件名,以err作为后缀名,存置在mysql名目下的/var名目中。假如我们想修改的话,可以修改配置文件log_error项。可以使用相对途径或绝对途径,使用相对途径的话只会修改错误日志文件名,而使用绝对途径则可以修改错误日志存置的位置。

错误日志的查看也非常简便,直接使用cat或vim来查看即可。

通用查询日志

通用查询日志会记载会员所有的操纵,所以一样占用空间较大,日常运维中一样都不会开启,并且默许状况也是关闭该日志的。如想开启的话,则可以在配置文件中参加log选项。

慢查询日志

慢查询是一个非常好的排查SQL问题工具,许多状况下,都是我们的sql致使系统运转不畅。笔者之前犯过这个错误,使用的一条非常复杂的查询语句,系统刚上不旧就502了。前段时间,发明公司的老项目也是显现了响应的问题,该项目使用的dedecms,当数据量到达必然程度,就会显现大量的慢查询,然后整个系统的cpu就跑满了。所以,我们要经常查看慢查询日志,寻过sql的问题所在。

慢查询配置项

  • slow-query-log={0|off|1|on} 可否开启慢查询日志功效

  • slow-query-time=10 设定的阀值,单位为秒,支撑浮点数。当sql的施行时间超越该值,就会记载在慢查询日志中。假如设定为0,则会记载所有查询

  • slow_query_log_file=/mydata/data/hostname-slow.log 慢查询日志存置的位置及文件名

  • log_queries_not_using_indexes=OFF 该项表示没有使用索引的查询也会记载到慢查询日志中去。

案例

此刻,我将本人的mysql的慢查询日志翻开,并且将时间设定为0,记载所有的SQL。然后来带大伙看看慢查询日志是怎样的。

Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2020-05-31T12:00:01.895700Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.000170  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
use blog;
SET timestamp=1590926401;
SET NAMES utf8mb4;
# Time: 2020-05-31T12:00:01.902684Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.006914  Lock_time: 0.006529 Rows_sent: 0  Rows_examined: 120
SET timestamp=1590926401;
SELECT * FROM knowledge 
            WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400   ORDER BY  show_time ASC 
            LIMIT 1;

我们主要看Query_time行

  • Query_time:查询时间

  • Lock_time:锁表时间

  • Rows_sent:猎取的数据行

  • Rows_examined:扫描的数据行

以上就是Mysql运维之日志治理的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有154人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板