mysql运维监控

我们的mysql生产库会突然变慢。原因大概是有人在生产库上进行了大数据的查询或者有死锁。

虽然开启了slow sql日志,但一旦生产库变慢往往连一些原本很快的sql都会被拖累至变慢。

所有的sql文都进了slow sql日志,记录变得毫无意义。所以考虑在mysql生产库开始变慢的初期阶段把当时执行的sql 和死锁事物记录下来,以便分析。

为了侦查mysql生产库的变慢需要添加一个zabbix trigger。

然后再添加一个action,负责执行sh脚本

做后完成sh脚本

#!/bin/sh
. /etc/profile
. ~/.bash_profile
mysql -uroot -pXXX -hXX.XX.XX.XX -e"SELECT t.PROCESSLIST_ID,IF (NAME = 'thread/sql/event_scheduler','event_scheduler',t.PROCESSLIST_USER) PROCESSLIST_USER,t.PROCESSLIST_HOST,t.PROCESSLIST_DB,t.PROCESSLIST_COMMAND,t.PROCESSLIST_TIME,t.PROCESSLIST_STATE,t.THREAD_ID,t.TYPE,t.NAME,t.PARENT_THREAD_ID,t.INSTRUMENTED,t.PROCESSLIST_INFO,a.ATTR_VALUE FROM performance_schema.threads t  LEFT OUTER JOIN performance_schema.session_connect_attrs a ON t.processlist_id = a.processlist_id AND (a.attr_name IS NULL OR a.attr_name = 'program_name') WHERE t.TYPE <> 'BACKGROUND' order by t.PROCESSLIST_TIME desc" > sqls.log
mysql -uroot -pXXX -hXX.XX.XX.XX -e"SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS" > locks.log
mysql -uroot -pXXX -hXX.XX.XX.XX -e"SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS" > waits.log
zip dump.zip ./*.log
echo "mainDB server CPU is busy" | mail -s 'mainDB server CPU is busy' -a ./dump.zip 123@qq.com 1234@qq.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值