orzdba是一个监控mysql性能的一个比较好用的perl脚本,是淘宝开源的小工具,下载地址http://code.taobao.org/p/orzdba/src/trunk/

配置过程中除了参照《orzdba工具使用说明》外,还有一些注意事项

 

我的安装环境是

Red Hat Enterprise Linux Server release 6.3 (Santiago)

5.6.22-log MySQL Community Server (GPL)

 

安装tcprstat前,先安装包

yum install glibc-static-2.12-1.80.el6.x86_64.rpm

 

参照

http://my.oschina.net/moooofly/blog/157063安装tcprstat

安装tcprstat过程中,除了前面的那个glibc-static外,还需要安装5个包

yum -y install automake

yum install bison

yum install flex

yum install patch

yum install make

配置tcprstat的权限

chown mysql:mysql -R tcprstat

ln -sf /mysqldata/soft/tcprstat/src/tcprstat /usr/bin/tcprstat

chown root:root /usr/bin/tcprstat

chmod u+s /usr/bin/tcprstat

ll /usr/bin/tcprstat

lrwxrwxrwx 1 root root 37 Feb 11 11:22 /usr/bin/tcprstat -> /mysqldata/soft/tcprstat/src/tcprstat

查看目录/mysqldata/soft/tcprstat/src

[root@open_mysql1 src]# ll

total 1996

-rw-r–r– 1 mysql mysql    3006 Feb 10 15:48 capture.c

-rw-r–r– 1 mysql mysql    1057 Feb 10 15:48 capture.h

-rw-r–r– 1 mysql mysql    4015 Feb 10 15:48 functions.c

-rw-r–r– 1 mysql mysql    1019 Feb 10 15:48 functions.h

-rw-r–r– 1 mysql mysql    4325 Feb 10 15:48 local-addresses.c

-rw-r–r– 1 mysql mysql    1065 Feb 10 15:48 local-addresses.h

-rw-r–r– 1 mysql mysql   41829 Feb 11 11:07 Makefile

-rw-r–r– 1 mysql mysql    1800 Feb 10 15:48 Makefile.am

-rw-r–r– 1 mysql mysql   47676 Feb 11 11:07 Makefile.in

-rw-r–r– 1 mysql mysql   10157 Feb 10 15:48 output.c

-rw-r–r– 1 mysql mysql    1315 Feb 10 15:48 output.h

-rw-r–r– 1 mysql mysql    3970 Feb 10 15:48 process-packet.c

-rw-r–r– 1 mysql mysql    1139 Feb 10 15:48 process-packet.h

-rw-r–r– 1 mysql mysql   10411 Feb 10 15:48 stats.c

-rw-r–r– 1 mysql mysql    1958 Feb 10 15:48 stats.h

-rw-r–r– 1 mysql mysql    7845 Feb 10 15:48 stats-hash.c

-rw-r–r– 1 mysql mysql    1480 Feb 10 15:48 stats-hash.h

-rwsr-xr-x 1 root  root   291086 Feb 11 11:08 tcprstat

-rw-r–r– 1 mysql mysql    5970 Feb 10 15:48 tcprstat.c

-rw-r–r– 1 mysql mysql   10720 Feb 11 11:07 tcprstat-capture.o

-rw-r–r– 1 mysql mysql   10272 Feb 11 11:07 tcprstat-functions.o

-rw-r–r– 1 mysql mysql    1339 Feb 10 15:48 tcprstat.h

-rw-r–r– 1 mysql mysql   13568 Feb 11 11:08 tcprstat-local-addresses.o

-rw-r–r– 1 mysql mysql   23312 Feb 11 11:08 tcprstat-output.o

-rw-r–r– 1 mysql mysql   16072 Feb 11 11:08 tcprstat-process-packet.o

-rwxr-xr-x 1 mysql mysql 1258608 Feb 11 11:08 tcprstat-static

-rw-r–r– 1 mysql mysql   10720 Feb 11 11:08 tcprstat_static-capture.o

-rw-r–r– 1 mysql mysql   10272 Feb 11 11:08 tcprstat_static-functions.o

-rw-r–r– 1 mysql mysql   13568 Feb 11 11:08 tcprstat_static-local-addresses.o

-rw-r–r– 1 mysql mysql   23312 Feb 11 11:08 tcprstat_static-output.o

-rw-r–r– 1 mysql mysql   16072 Feb 11 11:08 tcprstat_static-process-packet.o

-rw-r–r– 1 mysql mysql   16056 Feb 11 11:08 tcprstat_static-stats-hash.o

-rw-r–r– 1 mysql mysql   27232 Feb 11 11:08 tcprstat_static-stats.o

-rw-r–r– 1 mysql mysql   18576 Feb 11 11:08 tcprstat_static-tcprstat.o

-rw-r–r– 1 mysql mysql   16056 Feb 11 11:08 tcprstat-stats-hash.o

-rw-r–r– 1 mysql mysql   27232 Feb 11 11:08 tcprstat-stats.o

-rw-r–r– 1 mysql mysql   18576 Feb 11 11:07 tcprstat-tcprstat.o

普通的yum,rpm方式安装version模块会报错,用如下安装方式解决

yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

yum -y install perl-CPAN

yum install perl-Params-Validate

perl -MCPAN -e ‘install “Module::Build”‘

perl -MCPAN -e ‘install “File::Lockfile”‘

 

执行上面命令后,应该安装好了version, Class-Data-Inheritable, Module-Build, File::Lockfile等模块,可以用脚本查看是否安装成功

$ cat check_module.pl

#!/usr/bin/perl

use ExtUtils::Installed;

my $inst = ExtUtils::Installed->new();

print join “\n”,$inst->modules();

print “\n”;

对于orzdba脚本,在160行修改root密码,才能运行orzdba脚本,修改后样子如下:

my $MYSQL    = qq{mysql -s –skip-column-names -uroot -P$port -pLisx_new_123 };

改成这样后,会出现mysql5.6的明文密码告警:Warning: Using a password on the command line interface can be insecure.我是如下解决的

orzdba1

弄一个免密码的本地可以访问的管理员账户,用这个账户监控?

这个方案也不行,因为每一行都要回车确认

 

我的解决方案,在mysql的根目录新建隐藏文件,权限为400

-bash-4.1$ cat .my.cnf

[client]

password=lisx123

user=dbalisx

 

并且修改orzdba脚本的第160行处

my $MYSQL    = qq{mysql -s –skip-column-names -udbalisx -P$port };

orzdba2

好了,可以痛快的使用orzdba脚本了。