转载自 ​​http://blog.itpub.net/29500582/viewspace-1353030/​

安装包:
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 打印调试信息