、准备工作:
检查Perl
[root@namenode ~]# rpm-qa perl-DBD-MySQL*
perl-DBD-MySQL-4.013-3.el6.x86_64
这个代表已经安装,如果没有安装
yum install perl-DBD-MySQL*
下载
https://github.com/noodba/myawr
也可以用我提供的(我提供的修改过)下面几个文件。
说明
提到的文件在linux下用vi编辑,如果在windows下用nodepad++这样的编辑。
安装调试
我将授权注释了,因为在本地授权失败。推荐我这样做,手工执行建库。
然后vi 这个myawr.sql 增加use myawr,并且注释前面的建库和授权。
复制myawr.sql等
将4个文件放到mysql的服务器上。
执行myawr.sql
-rwxr-xr-x 1 root root 544 Jun 26 11:10t.sh
[root@namenode backups]# mysql -u root -p1< /data/backups/myawr.sql
Warning: Using a password on the commandline interface can be insecure.
[root@namenode backups]#
执行完毕。检查一下是不是都有如下表了。
调用awr
[root@namenodebackups]# perl myawr.pl -u root -p 1 -P 3306 -lhlocalhost -I 136 -i 600 -d sda1 -TP 3306 -tu root -tp 1 -th localhost
DBD::mysql::dbdo failed: You have an error in your SQL syntax; check the manual thatcorresponds to your MySQL server version for the right syntax to use near',"/dev/sda1", 291, 39, 14,"/boot" , "2015-07-01 14:12:48
")' at line 1at myawr.pl line 735.
说明:我执行的时候出这个错。但是我手动带入值执行确实成功的。这个问题没研究出来,无奈之下将这句注释。
perl myawr.pl -u root -p 1 -P 3306 -lhlocalhost -I 136 -i 600 -d sda1 -TP 3306 -tu root -tp 1 -th localhost
执行成功!
以上这些参数是:
-h,--help Print Help Info.
-i,--interval Time(second) Interval(default 1).
-d,--disk Disk Info(can't be null,defaultsda1).
-n,--net Net Info(default eth0).
-P,--port Port number to use for local mysqlconnection(default 3306).
-u,--user user name for local mysql(defaultuser).
-p,--pswd user password for local mysql(can'tbe null).
-lh,--lhost localhost(ip) for mysql where info isgot(can't be null).
-TP,--tport Port number to use formysql where infois saved (default 3306)
-tu,--tuser user name for mysql where info is saved(default user).
-tp,--pswd user password for mysql where info issaved(can't be null).
-th,--thost host(ip) for mysql where info issaved(can't be null).
-I,--tid db instance register id(can't benull,Reference myawr_host.id)
生成报告
开始执行
[root@namenode backups]# perl myawrrpt.pl -u root -p 1 -P 3306 -lhlocalhost -I 136
后面就和Oracle的AWR报告一样了。
文件
将myawr.Sql放到计划任务里面去,时间间隔自定义。