mysql错误日志内容太少,关于mysql错误日志爆满的问题分析处理

开发反应他们MySQL的测试库hang住了,登录到mysql库show processlist看下进程,发现都是些insert 语句卡主了,感觉很奇怪,再看下文件系统发现可用空间为0,然后检查磁盘发现最大的文件居然是错误日志文件,有几十GB大小。

将错误日志备份了一部分

tail -1000000 mysql-error-log.err >mysql-error-log.err.bak

然后将日志清理掉:

echo null > mysql-error-log.err

打开备份的日志及看新生成的日志,发现大部分内容都是show engine innodb status看到的内容,如下所示:

50a1f8a315bc4150cb289d72eb6fbbf3.png

如下最后一行内容是 END OF INNODB MONITOR OUTPUT

搜索关键字 INNODB MONITOR 可以看到官方文档关于InnoDB Monitors的内容

如下内容

When InnoDB monitors are enabled for periodic output, InnoDB writes the output to mysqld server standard error output (stderr) every 15 seconds, approximately.

The innodb_status_output and innodb_status_output_locks system variables are used to enable the standard InnoDB Monitor and InnoDB Lock Monitor.

可以知道打开InnoDB monitors差不多15秒会输出一次信息到标准错误输出(而后应该就是写入到错误日志文件),而innodb_status_output和innodb_status_output_locks 两个参数就是控制InnoDB monitors的开关。

这两个参数的含义:

innodb_status_output innodb 状态监控信息开关,on为开启,off为关闭,默认为off

innodb_status_output_locks 为锁监控信息开关,on为开启,off为关闭,默认也为off

一般建议将innodb_status_output innodb 参数关闭,如测试需要可以临时打开,测试完成再关闭。

innodb_status_output_locks 设置为打开,监控锁信息。

这样需要查看锁信息时,可以通过 show engine innodb status \G; 进行查看。

于是将参数innodb_status_output 改为off

SET GLOBAL innodb_status_output=OFF;

改为还需要同步修改配置文件,否则下次重启又打开了。

改完后,错误日志不再有innodb状态信息输出了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值