aws mysql 开启慢查询日志, 并利用mysqlsla 分析
1.开启慢查询日志服务
(a) sql 查询配置
# 查看慢日志是否开启,开启为ON
show variables like 'slow_query%';
show variables like 'long_query_time'; # 设置全局,查询时间超过1s的日志记录下来
set global slow_query_log='ON';
set global long_query_time=1; # 如果使用慢日志输出为table, mysql.slow_log表中sql_text 为blob格式,查看时需要转化
SELECT CONVERT(sql_text using utf8) sql_text from mysql.slow_log;
(b) aws 控制台配置
RDS服务>参数组 更改的参数组更改如下参数:
- slow_query_log:要创建慢速查询日志,请设置为 1。默认值为 0。
- general_log:要创建一般日志,请设置为 1。默认值为 0。
- long_query_time:只记录查询时间超过制定时间的sql,单位毫秒.
- log_queries_not_using_indexes:要将所有不使用索引的查询记录到慢速查询日志,请设置为 1。默认值为 0。即使查询的执行时间小于 long_query_time 参数值,只要它们不使用索引,就会被系统记录。
- log_output:您可为 log_output 参数指定下列选项之一。
TABLE (默认) – 将慢速查询写入 mysql.slow_log 表。
FILE (推荐) – 查询日志写入文件系统。日志文件每小时轮换一次。并删除 24 小时之前的日志文件。
NONE– 禁用日志记录。
2. 利用aws-cli工具,将aws-mysql慢日志导出到本地服务器查看
1. aws-cli 指令
aws k # 获取aws的所有的命令功能, 例如:ec2 对应的是ec2的服务,s3对应s3服务等
aws rds k # 查看rds的所有功能
aws rds describe-db-log-files help # 查看日志文件命令如何使用
2. 指令携带参数
describe-db-log-files #查看数据库日志
--region ap-southeast-1 #mysql所在时区
--db-instance-identifier duofen #要导出日志的数据库名称, 我这里是duofen
--no-paginate #不分页
--filename-contains slowquery # 日志名称过滤, 这里只查询名字里带slowquery的慢日志
--output text # 输出格式为文本
--log-file-name slowquery/mysql-slowquery.log # 具体某一个日志名称
3. 查看mysql系统日志
aws rds describe-db-log-files --no-paginate --db-instance-identifier duofen --filename-contains slowquery --output text
4.将日志文件导出到指定文件
aws rds --region ap-southeast-1 download-db-log-file-portion --db-instance-identifier duofen --no-paginate --log-file-name slowquery/mysql-slowquery.log --output text > slowquery.$(date +%Y%m%d%H).txt;
脚本批量拉取慢查询日志(aws rds 只保存24小时以内日志,共有24个日志)
#!/bin/bash
# 获取慢日志列表
filename=`aws rds describe-db-log-files --db-instance-identifier duofen | grep LogFileName | awk -F"/" '{print $2}' | tr -d '",' | grep 'slowquery'` # 创建存放路径
fileDir=/data/mysqlLog/$(date +%Y%m%d)
if [ ! -d fileDir ];then
mkdir -p $ fileDir
fi # 循环下载到本地/data/mysqlLog文件夹下
for f in $filename
do
echo "$f"
aws rds download-db-log-file-portion --db-instance-identifier duofen --log-file-name slowquery/$f --starting-token 0 --output text > $fileDir/$f
done # 将日志合并到slowqueryresult.txt文件
cat $fileDir/mysql-slowquery.* > /data/mysqlLog/slowqueryresult.$(date +%Y%m%d).txt
3.mysql慢日志分析工具mysqlsla 安装
# 安装依赖包
yum install -y wget perl perl-DBI perl-DBD-MySQL mysql perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker # 源码安装mysqlsla cd /usr/local/software
wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
tar -xvf mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
# 配置并编译
perl Makefile.PL
make
make install # 将/usr/local/bin 放到系统变量PATH
vim /etc/profile
export PATH=/usr/local/bin:$PATH
/etc/profile # 查看是否安装成功,不提示(-bash: mysqlsla: command not found),就是成功的
mysqlsla -version
4.mysqlsla 指令分析日志
1. 查询参数说明:
-lt # log的类型为slow, 主要有slow,general,binary,msl,udl
-sort # 结果进行排序,默认是按照t_sum来进行排序的
-top # 显示sql的数量,默认是10,表示去按照规则排序的前多少条
-sf # 过滤sql语句的类型,比如select,update,drop 例如"+SELECT,INSERT",
--databases # 要处理哪个库的日志
2. 统计参数说明
1.queries total: # 总查询次数
2.unique: # 去重后的sql数量
3.sorted by: # 输出报表的内容排序 最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.
4.Count: # sql的执行次数及占总的slow log数量的百分比.
5.Time: # 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.
6.95% of Time: # 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.
7.Lock Time: # 等待锁的时间.
8.95% of Lock: # 95%的慢sql等待锁时间.
9.Rows sent: # 结果行统计数量, 包括平均, 最小, 最大数量.
10.Rows examined: # 扫描的行数量.
11.Database: # 属于哪个数据库.
12.Users: # 哪个用户,IP, 占到所有用户执行的sql百分比.
13.Query abstract: # 抽象后的sql语句.
14.Query sample: # sql语句
3. 使用范例
# 查询记录最多的10条,可以指定具体的数据库
mysqlsla -lt slow -sort t_sum -sf "+select,update,INSERT" -db duofen -top 10 /data/mysqlLog/slowqueryresult.20190508.txt # 统计慢查询执行时间最长的20条sql,并写到longsql.log中
mysqlsla -lt slow -sf "+select" -top 20 /data/mysqlLog/slowqueryresult.20190508.txt > /data/mysqlLog/longsql.log
aws mysql 开启慢查询日志, 并利用mysqlsla 分析的更多相关文章
- MySql开启慢查询日志并使用pt-query-digest 分析
慢查询日志会将查询过程中超出你设置的时间的查询记录下来,以便供开发者进行分析和优化. 1. 开启慢查询 1.1 查看当前设置 mysql> show variables like "% ...
- MySQL 开启慢查询日志
1.1 简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 1.2 登录数据库查看 [root@localhost lib]# ...
- MySQL开启慢查询日志时报Errcode: 13 的解决方法
开启慢查询日志时会出现(Errcode: 13 - Permission denied)文件找不到的错误,但文件明明是存在的并且有读写的权限. mysql> set global slow_qu ...
- MySQL 开启慢查询日志与普通日志
一.开启满查询日志 1.查看慢查询日志 SHOW VARIABLES LIKE '%slow%'; 2.开启慢查询日志 set GLOBAL slow_query_log =on; 3.设置慢查询日志 ...
- mysql开启慢查询日志及查询--windows
MySQL慢查询配置 1. 慢查询有什么用? 它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化. 2. 如何开启慢查询? ...
- MYSQL开启慢查询日志实施
查看当前服务器是否开启慢查询:1.快速办法,运行sql语句show VARIABLES like "%slow%" 2.直接去my.conf中查看.my.conf中的配置(放在[m ...
- 操作3 mongodb和mysql 开启慢查询日志 ,以及mongodb从配置文件启动
1. mongodb从配置文件启动 创建配置文件:/usr/local/mongodb/etc/mongodb.conf 配置文件的内容为: #Directory and relavent set d ...
- mysql开启慢查询日志
5.1版本之前,在 my.cnf添加如下信息, long_query_time=1 log_slow_queries=/data/mysql/slow.log 5.1版本之后,在 my.cnf添加如下 ...
- Mysql: 开启慢查询日志[ERROR] unknown variable 'log-slow-queries'处理办法
参考: http://www.dataguru.cn/thread-305503-1-1.html # slow query log qjp 20160921 # mysql5.6版本以上,取消了参数 ...
随机推荐
- Django -->admin后台(后台管理可以直接往数据库添加数据)
一.使用pymysql时,必须加这两行(#如果使用mysql的数据库,请进行伪装 pymysql伪装为MySQLdb) import pymysqlpymysql.install_as_MySQLdb ...
- 如何关闭php的所有错误提示
在调试PHP 应用程序时,应当知道两个配置变量.下面是这两个变量及其默认值:display_errors = Offerror_reporting = E_ALL E_ALL能从不良编码实践到无害提示 ...
- 曹工说Redis源码(5)-- redis server 启动过程解析,以及EventLoop每次处理事件前的前置工作解析(下)
曹工说Redis源码(5)-- redis server 启动过程解析,eventLoop处理事件前的准备工作(下) 文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis ...
- python3(七)dict list
# dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. # dict内部存放的顺序和key放入的顺序是没有关系的 # 根据同学的名字 ...
- 刨根问底系列(1)——虚假唤醒(spurious wakeups)的原因以及在pthread_cond_wait、pthread_cond_singal中使用while的必要性
刨根问底之虚假唤醒 1. 概要 将会以下方式展开介绍: 什么是虚假唤醒 什么原因会导致虚假唤醒(两种原因) 为什么系统内核不从根本上解决虚假唤醒这个"bug"(两个原因) 开发者如 ...
- xml 文件 和xsd 文件的关系
XML文件和XSD文件的关系 2010-09-29 15:38 2307人阅读 评论(0) 收藏 举报 xml 1. XSD文件在某个namespace中定义element和type.此处定义的typ ...
- 【漏洞通告】Linux Kernel 信息泄漏&权限提升漏洞(CVE-2020-8835)通告
0x01漏洞简介: 3月31日, 选手Manfred Paul 在Pwn2Own比赛上用于演示Linux内核权限提升的漏洞被CVE收录,漏洞编号为CVE-2020-8835.此漏洞由于bpf验证系统在 ...
- 学习笔记分享之汇编---3. 堆栈&标志寄存器
前言: 此文章收录在本人的<学习笔记分享>分类中,此分类记录本人的学习心得体会,现全部分享出来希望和大家共同交流学习成长.附上分类链接: https://www.cnblogs.c ...
- python 3 的解释器
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Yangtze PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- 申请elasticsearch中x-pack插件许可证及授权
前提: ES主机中elasticsearch x-pack插件许可证申请使用期限为1年,到期后x-pack插件将不再可用,重启elasticsearch服务后日志会提示一下警告,如图所 ...