轉:通過pt-query-digest分析收集MySQL慢查詢日誌到指定位置
http://blog.csdn.net/dbaxiaosa/article/details/51392821
說明:本指令碼是基於開源工具Lepus監控
需要安裝percona-toolkit工具包
慢查詢時間:主庫1s,只讀庫3s
一臺伺服器上單例項或者多例項都可執行,本例子是單例項和雙例項的環境
可將本指令碼通過OS定時任務執行,便於慢查詢的分析彙總。
#!/bin/bash
#config lepus database server
lepus_db_host="xxx"
lepus_db_port=xxx
lepus_db_user="xxx"
lepus_db_password="xxx"
lepus_db_database="lepus"
#config MySQL server
mysql_client="/usr/bin/mysql"
mysql_host="localhost"
mysql_port=xxx
mysql_user="xxx"
mysql_password="xxx"
mysql_socket="xxx"
#pt-query-digest
pt_query_digest="/usr/local/bin/pt-query-digest"
#mysqlslow
slowquery_long_time=1
#define mysql slowquery dir
if [ -d "/data/lib/mysql" ]; then
arr_slowdir=("/data/lib/mysql/")
elif [ -d "/data/lib/mysqla/" ]; then
arr_slowdir=("/data/lib/mysqla/" "/data/lib/mysqlb/")
fi
for (( i=0; i<${#arr_slowdir[@]}; i++ ))
do
slowquery_dir=${arr_slowdir[i]}
if [ "$slowquery_dir" = "/data/lib/mysqlb/" ]; then
mysql_port=3307
mysql_socket="/data/lib/mysqlb/mysql.sock"
elif [ "$slowquery_dir" = "/data/lib/mysqla/" ]; then
mysql_port=3306
mysql_socket="/data/lib/mysqla/mysql.sock"
fi
#mysql readonly is on or off
read_only=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --socket=$mysql_socket -e "show variables like 'read_only'"|grep O|awk '{print $2}'`
if [ "$read_only" = "ON" ]; then
slowquery_long_time=3
fi
#mysql slowquery file
slowquery_file=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --socket=$mysql_socket -e "show variables like 'slow_query_log_file'"|grep log|awk '{print $2}'`
#config server_id
host_ip="`/sbin/ifconfig|grep "inet addr:"|cut -d ":" -f2|awk '{print $1}'|head -1`"
lepus_server_id=`$mysql_client -h$lepus_db_host -P$lepus_db_port -u$lepus_db_user -p$lepus_db_password -D$lepus_db_database -e "SELECT server_id FROM db_status WHERE host='$host_ip'"|sed
-n -e '2p'`
#collect mysql slowquery log into lepus database
$pt_query_digest --user=$lepus_db_user --password=$lepus_db_password --port=$lepus_db_port --charset=utf8 --review h=$lepus_db_host,D=$lepus_db_database,t=mysql_slow_query_review --histo
ry h=$lepus_db_host,D=$lepus_db_database,t=mysql_slow_query_review_history --no-report --limit=100% --filter="\$event->{add_column} = length(\$event->{arg}) and \$event->{serverid}=$lepus_se
rver_id" $slowquery_file > /data/mysqlslow/lepus_slowquery.log
##### set a new slow query log ###########
tmp_log=`$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --socket=$mysql_socket -e "select concat('$slowquery_dir','slowquery_',date_format(now(),'%Y%m%d%H%i'),'
.log');"|grep log|sed -n -e '2p'`
#config mysql slowquery
$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --socket=$mysql_socket -e "set global slow_query_log=1;set global long_query_time=$slowquery_long_time;"
$mysql_client -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --socket=$mysql_socket -e "set global slow_query_log_file = '$tmp_log'; "
#delete log before 5 days
cd $slowquery_dir
/usr/bin/find ./ -name 'slowquery_*' -mtime +5|xargs rm -rf
done
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-2130621/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pt-query-digest分析mysql查詢日誌MySql
- mysqlsla 分析mysql慢查詢日誌MySql
- 關於MySQL 通用查詢日誌和慢查詢日誌分析MySql
- mysql慢查詢日誌分析工具使用MySql
- Mysql慢查詢日誌分析工具mysqlslaMySql
- MySQL:慢查詢日誌MySql
- mysql慢查詢日誌MySql
- 用命令過濾MySQL慢查詢日誌MySql
- mysql慢查詢和錯誤日誌分析MySql
- 【轉載】MySQL慢查詢日誌總結MySql
- Mysql慢查詢日誌檔案轉ExcelMySqlExcel
- 對 MySQL 慢查詢日誌的簡單分析MySql
- mysql分析慢查詢日誌工具mysqlsla安裝MySql
- 分析mysql慢查詢日誌的好工具--mysqlslaMySql
- 【MySQL】慢查詢日誌不列印MySql
- 慢查詢日誌開啟分析
- PHP慢指令碼日誌和Mysql的慢查詢日誌PHP指令碼MySql
- MySQL 慢查詢分析工具~pt-query-digest 詳解MySql
- MySQL 慢查詢日誌——讓“慢”無所遁形MySql
- mysql之 slow log 慢查詢日誌MySql
- MySQL Slow Query log(慢查詢日誌)MySql
- 【MySql】 慢日誌查詢工具之mysqlslaMySql
- 【MySql】mysql 慢日誌查詢工具之mysqldumpslowMySql
- 【pt系列】MySQL慢日誌分析工具pt-query-digest使用、報告分析MySql
- 使用慢查詢日誌
- MySQL慢查詢日誌相關設定MySql
- MYSQL開啟慢查詢日誌實施MySql
- mysql開啟檢視慢查詢日誌MySql
- MySQL優化 - 開啟MySQL慢查詢日誌及分析工具mysqldumpslowMySql優化
- 如何在MySQL中開啟慢查詢日誌?MySql
- Mysql 啟動慢查詢日誌 (不用重啟)MySql
- 慢查詢日誌的管理
- 通過 Systemd Journal 收集日誌
- MySQL資料庫中的日誌檔案---(3)慢查詢日誌MySql資料庫
- 開啟查詢慢查詢日誌引數
- mysql 日誌之慢查詢日誌MySql
- mysql 查詢日誌MySql
- mysql查詢日誌MySql