shell脚本分析mysql慢查询日志(slow log)

使用percona公司的pt-query-digest分析慢查询日志,分析、统计的结果的比较清晰

#!/bin/sh

slowlog_path=/root/slow_query_log

everyslow=/tmp/everydayslow

##需要下载pt-query-digest

pt_digest=/root/pt-query-digest

start_string=$(grep `date --date="0 days ago" +%y%m%d` ${slowlog_path}|head -1)

start_pos=$(grep -n `date --date="0 days ago" +%y%m%d` ${slowlog_path}|head -1|awk -F: ‘{print $1}‘)

end_pos=$(grep -n `date --date="0 days ago" +%y%m%d` ${slowlog_path}|tail -1|awk -F: ‘{print $1}‘)

print_linecnt=$(expr ${end_pos} - ${start_pos})

##start_string如果不为空,则分析日志

if [ -z "${start_string}" ];

then exit 1

else

grep -i "${start_string}" -A ${print_linecnt} ${slowlog_path} > ${everyslow}

/usr/bin/perl ${pt_digest} ${everyslow} > /tmp/anaslowlog_`date +%Y-%m-%d`

fi

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 07:28:40

shell脚本分析mysql慢查询日志(slow log)的相关文章

ELK分析MySQL慢查询日志并生成图像

一.背景 1.MySQL慢查询日志格式: # Time: 181109 15:04:08 # [email protected]: tvpayrcdev[tvpayrcdev] @ [172.16.14.51] Id: 8960747 # Query_time: 35.918265 Lock_time: 0.000141 Rows_sent: 1 Rows_examined: 11699162 SET timestamp=1541747048; select count(*) from trad

mysqlsla 分析mysql慢查询日志

发现有一个工具mysqlsla,分析查询日志比 mysqldumpslow分析的会更清晰明了! 安装mysqlsla: 下载mysqlsla-2.03.tar.gz [[email protected] export]# tar -xvf mysqlsla-2.03.tar.gz [[email protected] export]# yum install *DBI* [[email protected] mysqlsla-2.03]# perl Makefile.PLCan't locate

MySQL 慢查询日志(Slow Query Log)

同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述通用查询日志. 1.MySQL日志文件系统的组成   a.错误日志:记录启动.运行或停止mysqld时出现的问题.   b.通用日志:记录建立的客户端连接和执行的语句.   c.更新日志:记录更改数据的语句.该日志在M

Logstash分析MySQL慢查询日志

最近在使用ELKStack对系统日志进行分析,在网上也有看到有使用logstash的案例,但是发现不能正常解析出来,于是重新花时间去进行正则计算,主要代码如下: input {   file {     type => "mysql-slow"     path => "/var/lib/mysql/slow.log"         start_position => beginning                 sincedb_write

shell 脚本连接mysql数据库查询database中表的数量和表名

#!/bin/bash MYSQLHOST="127.0.0.1" MYSQLUSER="root" MYSQLPWD="root" MYSQLPORT="3306" MYSQLDB="test" echo "health tables total:" > mysqlCount.txt; mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPWD -P$

正确安全清空在线慢查询日志slow log的流程

查看慢查询日志的状态: mysql> show variables like '%slow%'; +---------------------+-----------------------------+ | Variable_name | Value | +---------------------+-----------------------------+ | log_slow_queries | ON | | slow_launch_time | 2 | | slow_query_log

mysql慢查询日志分析工具 mysqlsla(转)

mysql数据库的慢查询日志是非常重要的一项调优辅助日志,但是mysql默认记录的日志格式阅读时不够友好,这是由mysql日志记录规则所决定的,捕获一条就记录一条,虽说记录的信息足够详尽,但如果将浏览慢查询日志做为一项日常工作,直接阅读mysql生成的慢查询日志就有可能比较低效了. 除了操作系统命令直接查看slowlog外,mysql自己也提供了一个阅读slowlog的命令行工具:mysqldumpslow,该命令行提供了一定的分析汇总功能,可以将多个类似的SQL语句抽象显示成一个,不过功能还是

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云

mysql慢查询日志切割,日志分析

#!/usr/bin/env python #coding:utf8 import os,sys import datetime,shutil,subprocess from config.config import slow_config class cut_mysql(object): mysql_user,mysql_pass,date_day,slow_log_name,slow_log_path,mysqlsla_log_name,mysqldumpslow_log_name,new_