Mysqlreport使用詳解

Michael_DD發表於2014-12-01
Mysqlreport使用詳解


安裝包:
mysqlreport-3.5.tgz

下載地址:


安裝辦法:
[root@nagios ~]# tar -xvf mysqlreport-3.5.tgz

使用辦法:
[root@nagios ~]# cd mysqlreport-3.5
[root@nagios mysqlreport-3.5]# perl mysqlreport --user=root --password=123456 --socket=/tmp/mysql.sock --outfile=/tmp/mysqlreport.txt


報告分析:
MySQL 5.1.66             uptime 68 1:27:19      Mon Dec  1 16:23:33 2014

#  MySQL Server 的版本、自上次啟動後已經過多少時間、目前 Server 的日期與時間。有些人會定時讓系統自動產生報表

__ Key _________________________________________________________________
Buffer used     6.54M of   8.00M  %Used:  81.75
  Current       1.65M            %Usage:  20.59
Write hit      73.95%
Read hit       91.29%

__ Questions ___________________________________________________________
Total          85.49M    14.5/s
  DMS          76.68M    13.0/s  %Total:  89.70
  COM_QUIT     10.83M     1.8/s           12.67
  -Unknown     10.35M     1.8/s           12.11
  Com_          8.32M     1.4/s            9.74
Slow 10 s          14     0.0/s            0.00  %DMS:   0.00  Log: OFF
DMS            76.68M    13.0/s           89.70
  INSERT       31.45M     5.3/s           36.78         41.01
  DELETE       24.45M     4.2/s           28.60         31.88
  SELECT       18.73M     3.2/s           21.91         24.43
  UPDATE        1.80M     0.3/s            2.10          2.35
  REPLACE     254.92k     0.0/s            0.30          0.33
Com_            8.32M     1.4/s            9.74
  change_db     2.99M     0.5/s            3.49
  set_option    2.68M     0.5/s            3.14
  admin_comma   2.54M     0.4/s            2.97

__ SELECT and Sort _____________________________________________________
Scan            4.51M     0.8/s %SELECT:  24.10
Range          99.55k     0.0/s            0.53
Full join      51.91k     0.0/s            0.28
Range check         0       0/s            0.00
Full rng join       0       0/s            0.00
Sort scan       1.24M     0.2/s
Sort range     38.67k     0.0/s
Sort mrg pass       0       0/s

__ Table Locks _________________________________________________________
Waited            279     0.0/s  %Total:   0.00
Immediate      81.48M    13.9/s

__ Tables ______________________________________________________________
Open               64 of   64    %Cache: 100.00
Opened          1.67M     0.3/s

__ Connections _________________________________________________________
Max used           41 of  151      %Max:  27.15
Total          10.83M     1.8/s

__ Created Temp ________________________________________________________
Disk table     47.00k     0.0/s
Table           1.43M     0.2/s    Size:  16.0M
File                5     0.0/s

__ Threads _____________________________________________________________
Running             1 of    4
Cached              0 of    0      %Hit:      0
Created        10.83M     1.8/s
Slow                1     0.0/s

__ Aborted _____________________________________________________________
Clients           137     0.0/s
Connects        7.81M     1.3/s

__ Bytes _______________________________________________________________
Sent            8.41G    1.4k/s
Received       23.85G    4.1k/s

__ InnoDB Buffer Pool __________________________________________________
Usage           8.00M of   8.00M  %Used: 100.00
Read hit      100.00%
Pages
  Free              0            %Total:   0.00
  Data            510                     99.61 %Drty:   4.90
  Misc              2                      0.39
  Latched                                  0.00
Reads           3.73G   634.0/s
  From file    32.99k     0.0/s            0.00
  Ahead Rnd       426     0.0/s
  Ahead Sql      2017     0.0/s
Writes        639.57M   108.8/s
Flushes        23.38M     4.0/s
Wait Free           0       0/s

__ InnoDB Lock _________________________________________________________
Waits           13852     0.0/s
Current             0
Time acquiring
  Total        229151 ms
  Average          16 ms
  Max            1406 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
  Reads        39.44k     0.0/s
  Writes       62.72M    10.7/s
  fsync        53.59M     9.1/s
  Pending
    Reads           0
    Writes          0
    fsync           0

Pages
  Created      14.80k     0.0/s
  Read         50.07k     0.0/s
  Written      23.38M     4.0/s

Rows
  Deleted      22.54M     3.8/s
  Inserted     22.57M     3.8/s
  Read          1.28G   218.3/s
  Updated       6.62M     1.1/s





mysqlreport引數詳解:
選項    解釋
-
 -user                連線MySQL的使用者名稱
-
 -password        連線MySQL的使用者密碼。命令列上出現該選項但沒有給出引數時,mysqlreport將在使用者回車後提示輸入密碼
-
 -host                MySQL伺服器地址
-
 -port                MySQL伺服器的開發埠
-
 -socket        本地MySQL UNIX域套介面路徑
-
 -no-mycnf        該選項指引mysqlreport不要讀取 ~/.my.cnf,預設情況下會去讀取這個檔案。
 
 -
 -user 和 - -password 總是覆蓋從 ~/.my.cnf 中取得的引數



- -infile      從status檔案讀取資料,代替從伺服器上讀取
-
 -outfile      列印報告後,將報告同時寫入該選項指定的檔案中。mysqlreport 的內部機制總是先將報告寫入臨時檔案中,然後將該臨時檔案裡的內容列印到螢幕上。
如果指定了--outfile選項,則將臨時檔案複製成 指定的檔案。如果指定了選項- -email,則會刪除臨時檔案

-
 -email        列印報告後,將結果傳送到指定的郵箱。該選項需要使用/usr/sbin/目錄下的sendmail程式,因此無法在windows
 平臺下使用。/usr/sbin/sendmail可以符號連結到 qmail,或者任何其他能模擬sendmail -t方式的MTA程式。郵件來源是:mysqlreport,
 主題是:MySQL status report on HOST,HOST是mysqlreport所在的主機名,可能是讀取到的- -host值,預設是localhost
-
 -flush-status        列印報告後,執行FLUSH STATUS命令
-
 -relative        mysqlreport通常產生從MySQL啟動以來的狀態報告。指定- -relative選項可產生相對於前次報告以來的相關報告。
如果選項引數是一個整數,程式每隔指定的秒數後再次產生一份狀態報告,報告次數由--report-count選項指定。預設產生1份相關報告。

例如,指定 -relative的值為60,則會產生2份報告:第一份基本報告馬上生成,第二份相關報告在60秒後生成。第二份報告中的數值和前面的那份相關。
例如,前者總共有10.00k次查詢,在這60秒的間隔時間裡接受了新的1.00k次查詢,則後者的總查詢次數是1.00k而非11.00k次。
如果選項引數是本地檔案列表(就像- -infile選項那樣),程式會按照引數中檔案的順序來依次產生狀態報告。檔案列表中的檔案應該以空格分隔。
以檔案產生時間依次排列檔案就顯得很重要,較早產生的檔案應該放在列表的前面。第一個檔案中必須有系統變數,例如:key_buffer_size、table_cache等。
每個檔案中可以有多組”SHOW STATUS”的結果。注意:透過 “mysqladmin -r -i N extended” 產生的狀態檔案無法使用,因為 mysqladmin的-r引數已經令其產生了具有相對性的狀態值了。

由於mysqlreport首先會把狀態報告寫到臨時檔案中,如果- -relative的引數是整數時,mysqlreport會顯示它把檔案寫到哪了。那麼就可以直接透過檢視這些檔案內容來觀察伺服器的狀況
-
 -report-count    生成N份相關的報告。本選項只有在同時啟用- -relative選項後才有效。mysqlreport會自動產生N+1份報告:第一份基本報告,以及後面的N份相關報告
-
 -detach    本選項使得mysqlreport派生新程式,從終端上脫離轉入後臺繼續執行。派生新程式後,mysqlreport
 會報告它把結果寫入了哪個臨時檔案。本選項需要- -outfile或- -email中的一個,如果這兩個選項都沒有給出,則產生的臨時檔案就會被刪除,因為自派生出新程式後,
 無法再將結果列印到終端螢幕上了。本選項如果和- -relative選項一起使用的話就更有意義了,這樣mysqlreport就能定時報告資訊,而無需人工干預獲得報告。
 例如使用如下命令,就能讓mysqlrepot隔一個小時再次產生一次報告,並將結果傳送到指定的信箱:perl mysqlreport - -relative=3600 - -detach
 - -email=host@domain.com。一個小時候後,mysqlreport透過email傳送報告,刪除臨時檔案,並且乾淨地終止
-
 -help    列印幫助資訊
-
 -debug    列印除錯資訊

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1353030/,如需轉載,請註明出處,否則將追究法律責任。