mysqlreport安裝&使用


mysqlreport安裝&使用

2020-12-17

 

mysql命令行中經常使用下面的指令來獲取當前數據庫的實時狀態:

mysql>show status;
mysql>show innodb status;

但是他們的顯示結果不太友好,我們需要更好的更加人性化的分析結果,而不是堆出來一堆數字。mysqlreport是一個第三方的Mysql狀態報告工具,它把mysql的show status 和 show innodb status的結果進行一系列的后期處理,讓可讀性更強,更友好。 下面是mysqlreport的安裝過程:

MySQLReport 是用perl語言編寫,所以想要運行它首先需要安裝perl環境;它還要與MySQL數據庫連接,所以還需要安裝數據庫接口 DBI 和 數據庫驅動 DBD-MySQL 。

 

安裝DBI

yum -y install perl-DBI

 

安裝DBD-mysql

yum -y install perl-DBD-MySQL

 

安裝&運行mysqlreport

#下載mysqlreport tgz
wget http://pkgs.fedoraproject.org/repo/pkgs/mysqlreport/mysqlreport-3.5.tgz/33a345f5e2c89b083a9ff0423f7fd7b4/mysqlreport-3.5.tgz
#解壓到目錄mysqlreport
tar -zxvf download/mysqlreport-3.5.tgz -C mysqlreport/
#使用mysqlreport收集信息
./mysqlreport --user=root --password=123456 --port 3306 --host=101.133.239.204 --outfile=/usr/local/mysqlreport/report/mysqlreport20201217.txt

 

 mysqlreport20201217.txt內容

MySQL 8.0.21             uptime 8 22:24:56      Thu Dec 17 14:36:11 2020

__ Key _________________________________________________________________
Buffer used         0 of   8.00M  %Used:   0.00
  Current       1.46M            %Usage:  18.24
Write hit       0.00%
Read hit        0.00%

__ Questions ___________________________________________________________
Total          46.30k     0.1/s
  Com_         25.05k     0.0/s  %Total:  54.09
  DMS          16.45k     0.0/s           35.54
  COM_QUIT      6.60k     0.0/s           14.25
  -Unknown      1.80k     0.0/s            3.88
Slow 10 s           0       0/s            0.00  %DMS:   0.00  Log:
DMS            16.45k     0.0/s           35.54
  SELECT       16.43k     0.0/s           35.50         99.88
  UPDATE           17     0.0/s            0.04          0.10
  INSERT            2     0.0/s            0.00          0.01
  REPLACE           0       0/s            0.00          0.00
  DELETE            0       0/s            0.00          0.00
Com_           25.05k     0.0/s           54.09
  set_option   24.05k     0.0/s           51.95
  show_status     689     0.0/s            1.49
  show_variab      43     0.0/s            0.09

__ SELECT and Sort _____________________________________________________
Scan            6.34k     0.0/s %SELECT:  38.59
Range               0       0/s            0.00
Full join           9     0.0/s            0.05
Range check         0       0/s            0.00
Full rng join       0       0/s            0.00
Sort scan         123     0.0/s
Sort range          0       0/s
Sort mrg pass       0       0/s

__ Table Locks _________________________________________________________
Waited              0       0/s  %Total:   0.00
Immediate         710     0.0/s

__ Tables ______________________________________________________________
Open              360 of 4000    %Cache:   9.00
Opened            488     0.0/s

__ Connections _________________________________________________________
Max used           86 of  100      %Max:  86.00
Total           8.16k     0.0/s

__ Created Temp ________________________________________________________
Disk table          0       0/s
Table           1.44k     0.0/s    Size:  16.0M
File                9     0.0/s

__ Threads _____________________________________________________________
Running             2 of   31
Cached             55 of  100      %Hit:  98.95
Created            86     0.0/s
Slow                0       0/s

__ Aborted _____________________________________________________________
Clients         3.13k     0.0/s
Connects          171     0.0/s

__ Bytes _______________________________________________________________
Sent           21.99M    28.5/s
Received       10.60M    13.7/s

__ InnoDB Buffer Pool __________________________________________________
Usage          74.61M of 128.00M  %Used:  58.29
Read hit       99.99%
Pages
  Free          3.42k            %Total:  41.71
  Data          4.77k                     58.18 %Drty:   0.00
  Misc              9                      0.11
  Latched                                  0.00
Reads          50.57M    65.5/s
  From file     2.81k     0.0/s            0.01
  Ahead Rnd         0       0/s
  Ahead Sql                 0/s
Writes          1.47M     1.9/s
Flushes         4.66k     0.0/s
Wait Free           0       0/s

__ InnoDB Lock _________________________________________________________
Waits               4     0.0/s
Current             0
Time acquiring
  Total        204033 ms
  Average       51008 ms
  Max           51012 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
  Reads         3.23k     0.0/s
  Writes       23.27k     0.0/s
  fsync         5.74k     0.0/s
  Pending
    Reads           0
    Writes          0
    fsync           0

Pages
  Created       2.44k     0.0/s
  Read          3.14k     0.0/s
  Written       5.49k     0.0/s

Rows
  Deleted           0       0/s
  Inserted    393.22k     0.5/s
  Read          3.84G    5.0k/s
  Updated     131.08k     0.2/s

 

InnoDB Lock 可通過以下方式產生

打開一個navicat窗口(窗口1),輸入以下命令使得該窗口提交命令后不自動提交

set @@autocommit = 0; #0為不自動提交 1位自動提交
select @@autocommit;

窗口1 執行以下語句

update student set age=14 where id = 00000000000000000001;

在新窗口(窗口3)執行以下語句查看事務表信息表信息

select * from information_schema.INNODB_TRX;

 

 新建窗口(窗口2),輸入更改語句,引起所沖突

update student set age=14 where id = 00000000000000000001;

 

 

 窗口3執行以下語句查看事務表信息表信息,可以看到trx_state為LOCK WAIT。

LOCK WAIT有時間超時設置,超過會回滾

當窗口1 執行命令 commit后事務結束,5545這條記錄也會清空,若5447沒有超時,也會執行成功,故這條記錄也會清空。

 

 

 

 

 

 

參考

[1] MySQL效能監控工具mysqlreport安裝和中文說明

[2] MySQLReport

 

InnoDB Lock


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM