mysql 第三十六篇文章~mysql慢日志方案解读1
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql 第三十六篇文章~mysql慢日志方案解读1,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3068字,纯文字阅读大概需要5分钟。
内容图文
![mysql 第三十六篇文章~mysql慢日志方案解读1](/upload/InfoBanner/zyjiaocheng/495/6cd8c6372159435289fe3dd210981946.jpg)
一 慢日志的相关参数
long_query_time : 设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为1s
log_slow_queries :1/0 指定是否开启慢查询日志(该参数要被slow_query_log取代,做兼容性保留)
slow_query_log_file : 指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件
二 慢日志的处理方案
1 将每天的慢日志进行切割,然后用pt-query-digest 插入到远程数据库进行存储
2 切割好的慢日志保留三十天,其他的进行清空处理
3 慢日志以邮件的形式进行每日发送
4 有特殊需求时用pt-query-digest在数据库端进行手动过滤
三 慢日志的切割方案
1 配合天兔的脚本,按照小时进行切割
脚本核心原理
tmp_log=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -e "select concat(‘$slowquery_dir‘,‘slowquery_‘,date_format(now(),‘%Y%m%d%H‘),‘.log‘);"|grep log|sed -n -e ‘2p‘`
set global slow_query_log=1 set global long_query_time=1 set global slow_query_log_file = ‘$tmp_log‘;
从这段代码中我们可以看出来,是根据重新设置slow_log的方式进行切割的,然后利用pt-query-digest先读取然后再生产新的slow_log,推荐此种方式
脚本在网上一搜就有了
2 logrotate 方式进行切割
/data/log/mysql/slowlog/mysql-slow.log {
daily 按照日期切割
rotate 30 保留30天
missingok #如果日志文件不存在,继续处理下一个文件而不产生报错信息
delaycompress #推迟要压缩的文件,直到下一轮询周期再执行压缩
copytruncate #见下面注解
postrotate
pt-query-digest --user=anemometer --password=anemometer --review h=node17,D=slow_query_log,t=global_query_review --history h=node17,D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /data/log/mysql/slowlog/mysql-slow.log-`date +%Y%m%d`
#/usr/local/mysql/bin/mysql -e "flush slow logs;"
endscript
}
在切割前进行远程插入,感觉配置比较复杂,有熟悉此工具的同学可以采用此种方式
四 相关的一些注意事项
1 自带
2 天兔
3 Anemometer
4 C/S架构下的自定义收集模式
1 脚本收集
共同点 pt-query-digest
不同点 过滤fliter规则和history表字段不一样
2 对于hostname的处理
1 自带的是无法解决这个问题,缺少相应字段
2 天兔 添加server_Id
--filter=" \$event->{add_column} = length(\$event->{arg}) and \$event->{serverid}=$lepus_server_id "
3 Anemometer 添加hostname
--filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\‘$HOSTNAME\‘ "
4 pt-query-diget两种表的区别
-history 将分析结果保存到表中,分析结果比较详细,下次再使用--history时,如果存在相同的语句,且查询所在的时间区间和历史表中的不同,则会记录到数据表中,可以通过查询同一CHECKSUM来比较某类型查询的历史变化。
--review 将分析结果保存到表中,这个分析只是对查询条件进行参数化,一个类型的查询一条记录,比较简单。当下次使用--review时,如果存在相同的语句分析,就不会记录到数据表中。
五 总结
核心工具 pt-query-digest 过滤规则,相关表设计 前端展示
mysql 第三十六篇文章~mysql慢日志方案解读1
标签:byte str cat 缺省 网上 处理 long repo slow
本文系统来源:http://www.cnblogs.com/danhuangpai/p/7921607.html
内容总结
以上是互联网集市为您收集整理的mysql 第三十六篇文章~mysql慢日志方案解读1全部内容,希望文章能够帮你解决mysql 第三十六篇文章~mysql慢日志方案解读1所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。