分享一款MySQL日誌分析神器--mysqlsla,值得收藏

MySQL SQL Perl 數據庫 腳本語言 收藏 DBA Git 波波說運維 2019-07-12

概述

今天主要分享一款MySQL日誌分析神器--mysqlsla,對於我們分析mysql數據庫的三大日誌還不錯,這裡介紹一下。


什麼是mysqlsla?

Mysqlsla 是daniel-nichter 用perl 寫的一個腳本,專門用於處理分析Mysql的日誌而存在。作為一名Mysql DBA,日常工作中處理日誌是再正常不過的事情了。

通過Mysql的日誌主要分為:General log,slow log,binary log三種。通 過query日誌,我們可以分析業務的邏輯,業務特點。通過slow log,我們可以找到服務器的瓶頸。通過binary log,我們可以恢復數據。Mysqlsla 可以處理其中的任意日誌,這也是我喜歡它的最主要原因之一。


為什麼選擇mysqlsla?

一般我們分析mysql日誌的工具有:

  • mysqldumpslow
  • mysqlbinlog
  • myprofi
  • mysql-explain-slow-log
  • mysql-log-filter
  • pt-query-digest
  • mysqlsla

下面做一個對比

分享一款MySQL日誌分析神器--mysqlsla,值得收藏

根據以上特點,最適合的工具非 mysqlsla 與 pt-query-digest 莫屬。 mysqlsla與pt-query-digest的作者是同一個人。現在主打開發pt系列工具。pt的工具下次再做介紹,今天主要介紹下mysqlsla。


mysqlsla流程

mysqlsla大致流程是: LOGS(UDL,defalut) -> parse -> filter -> sort -> reprot -> replay .

分享一款MySQL日誌分析神器--mysqlsla,值得收藏

這裡說的,Mysqlsla可以處理任意日誌。默認可以處理mysql的三種常見日誌。

如:General log,binary log,slow log

  • Slow log: mysqlsla ­lt slow slow.log
  • General log: mysqlsla ­lt general general.log
  • Binary log: mysqlbinlog bin.log | mysqlsla ­lt binary ­

mysqlsla安裝部署

下載地址:https://github.com/daniel-nichter/hackmysql.com

git clone https://codeload.github.com/daniel-nichter/hackmysql.com/zip/master
unzip hackmysql.com-master.zip -d mysql-tool
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Time-HiRes perl-DBI
perl Makefile.PL
make && make install
分享一款MySQL日誌分析神器--mysqlsla,值得收藏


mysqlsla例子

1、開啟慢查詢

set global slow_query_log=on;
set global long_query_time=10;
set global log_queries_not_using_indexes=on;
分享一款MySQL日誌分析神器--mysqlsla,值得收藏

2、mysqlsla輸出

命令:# mysqlsla -lt slow /data/datafile/ZL-FSL-OCS-DB-slow.log

分享一款MySQL日誌分析神器--mysqlsla,值得收藏

格式說明如下:
總查詢次數 (queries total), 去重後的sql數量 (unique)
輸出報表的內容排序(sorted by)
最重大的慢sql統計信息, 包括平均執行時間, 等待鎖時間, 結果行的總數, 掃描的行總數.
Count, sql的執行次數及佔總的slow log數量的百分比.
Time, 執行時間, 包括總時間, 平均時間, 最小, 最大時間, 時間佔到總慢sql時間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率佔95%的sql的執行時間.
Lock Time, 等待鎖的時間.
95% of Lock , 95%的慢sql等待鎖時間.
Rows sent, 結果行統計數量, 包括平均, 最小, 最大數量.
Rows examined, 掃描的行數量.
Database, 屬於哪個數據庫
Users, 哪個用戶,IP, 佔到所有用戶執行的sql百分比
Query abstract, 抽象後的sql語句
Query sample, sql語句

這裡主要整理了mysqlsla入門方面的內容,後面再分享下怎麼去自定義模板,感興趣的朋友可以關注一下~

分享一款MySQL日誌分析神器--mysqlsla,值得收藏

相關推薦

推薦中...