导读
在slow query log中频繁出现commit、binlog dump等奇怪的记录,本来这种SQL应该很快结束,不应该出现在slow query log中才对,这是为什么呢?
现象
线上有个数据库,在slow log中,存在大量类似下面的记录:
# Time: 150823 13:56:08 # User@Host: repl[repl] @ slave [10.x.x.x] # Query_time: 9.000833 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 SET timestamp=1377237368; # administrator command: Binlog Dump;
或者这样的:
# Time: 150823 14:56:08 # User@Host: repl[repl] @ slave [10.x.x.x] # Query_time: 2.000833 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 1 SET timestamp=1377237368; COMMIT;
每完成一次COMIT 或 binlog dump都会被记录下来,看着非常不爽。 经过排查,最后确认是特定版本存在这个现象,目前发现官方 5.1.49 存在,估计整个官方 5.1.x 都会有这个现象。
解决方法
修改 my.cnf 配置文件,增加或修改下面这个选项:
log-slow-admin-statements = 0
比较坑人的是,这个选项在5.1无法在线修改,需要重启mysqld才行。
手册上关于这个选项的解释如下:
Include slow administrative statements in the statements written to the slow query log. Administrative statements include ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE.
手册也有不靠谱的时候啊,还是实践出真知,哈哈。
关于MySQL的方方面面大家想了解什么,可以直接留言回复,我会从中选择一些热门话题进行分享。 同时希望大家多多转发,多一些阅读量是老叶继续努力分享的绝佳助力,谢谢大家 :)
最后打个广告,运维圈人士专属铁观音茶叶微店上线了,访问:http://yejinrong.com获得专属优惠
本文转载自:微信公众账号 - MySQL中文网,版权归原作者所有! |