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
虽然开启了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
相关文章推荐
- 性能测试-监控Mysql慢查询
- SQLiteOpenHelper 介绍
- CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期
- 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计
- MySQL数据库复制概念及数据库架构不断扩展方案
- mysql基于BLACKHOLE复制基础的各种架构
- mysql + keepalived架构
- MySQL主从复制的一些错误处理和日常维护
- 邹海明:SQL Server 2005定时备份维护(数据库必学)
- sqoop使用mysql做为metastore
- MySQL数据库主从同步与监控
- 双机高可用,负载均衡,MySQL(读写分离、主从自动切换)架构设计
- 在apache hadoop2.6 上部署hive 并将hive数据源存储于Mysql
- mysql 大量数据插入(可用于数据添加字段不能添加的情况,因为会copy临时表。这样可以手动分批处理)
- sql order by错top(100)percent
- Mysql在大型网站的应用架构演变
- mysql Got error 28 from storage engine错误,Mysql导致tmp目录空间耗尽问题
- hadoop集群配置之hive1.2.0安装部署(远程mysql)
- Golang 连接MySql数据库使用方法
- Win7 64位,安装 PL/SQL Developer