您的位置:首页 > 数据库 > SQL

mysql运维监控

2016-03-09 11:42 549 查看
我们的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: