Mysqlreport使用详解

Mysqlreport使用详解


安装包:
mysqlreport-3.5.tgz

下载地址:
http://hackmysql.com/scripts/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    打印调试信息

请使用浏览器的分享功能分享到微信等