[MySQL 工具]percona-toolkit使用(1)源码安装
微生承业
2023-12-01
1、percona-toolkit简介
percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:
l 检查master和slave数据的一致性
l 有效地对记录进行归档
l 查找重复的索引
l 对服务器信息进行汇总
l 分析来自日志和tcpdump的查询
l 当系统出问题的时候收集重要的系统信息
percona-toolkit源自Maatkit 和Aspersa工具,这两个工具是管理mysql的最有名的工具,现在Maatkit工具已经不维护了,请大家还是使用percona-toolkit吧!这些工具主要包括开发、性能、配置、监控、复制、系统、实用六大类,作为一个优秀的DBA,里面有的工具非常有用,如果能掌握并加以灵活应用,将能极大的提高工作效率。
2、下载
Download address:
http://www.percona.com/redir/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.5.tar.gz
[root@472322 ~]# cd down/
[root@472322 down]# wget http://www.percona.com/redir/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.5.tar.gz
--2013-10-30 23:27:56-- http://www.percona.com/redir/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.5.tar.gz
Resolving www.percona.com... 74.121.199.234
Connecting to www.percona.com|74.121.199.234|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: /downloads/percona-toolkit/LATEST/percona-toolkit-2.2.5.tar.gz [following]
--2013-10-30 23:27:56-- http://www.percona.com/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.5.tar.gz
Reusing existing connection to www.percona.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 1447292 (1.4M) [application/x-gzip]
Saving to: 鈥減ercona-toolkit-2.2.5.tar.gz鈥
100%[=============================================================================================================================>] 1,447,292 874K/s in 1.6s
2013-10-30 23:27:57 (874 KB/s) - 鈥減ercona-toolkit-2.2.5.tar.gz鈥saved [1447292/1447292]
下载完毕。
3、安装
[root@472322 percona-toolkit-2.2.5]# tar -xvf percona-toolkit-2.2.5.tar.gz
[root@472322 percona-toolkit-2.2.5]# cd percona-toolkit-2.2.5
3.1 perl Makefile.PL
[root@472322 percona-toolkit-2.2.5]# perl Makefile.PL
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1.
BEGIN failed--compilation aborted at Makefile.PL line 1.
可能是perl,make没有安装吧,yum安装下perl以及make试试:
[root@472322 percona-toolkit-2.2.5]# yum install perl
Loaded plugins: dellsysid, fastestmirror, presto
Determining fastest mirrors
epel/metalink | 16 kB 00:00
* base: mirror.rackspace.com
* dell-community: linux.dell.com
* epel: fedora-epel.mirror.lstn.net
* extras: mirrordenver.fdcservers.net
* updates: centos.mirror.lstn.net
............................... 此处省略..............................
Updated:
perl.x86_64 4:5.10.1-131.el6_4
Dependency Updated:
perl-Compress-Raw-Zlib.x86_64 1:2.020-131.el6_4 perl-Compress-Zlib.x86_64 0:2.020-131.el6_4 perl-IO-Compress-Base.x86_64 0:2.020-131.el6_4
perl-IO-Compress-Zlib.x86_64 0:2.020-131.el6_4 perl-Module-Pluggable.x86_64 1:3.90-131.el6_4 perl-Pod-Escapes.x86_64 1:1.04-131.el6_4
perl-Pod-Simple.x86_64 1:3.13-131.el6_4 perl-libs.x86_64 4:5.10.1-131.el6_4 perl-version.x86_64 3:0.77-131.el6_4
Complete!
[root@472322 percona-toolkit-2.2.5]# make
make: *** No targets specified and no makefile found. Stop.
[root@472322 percona-toolkit-2.2.5]# yum install -y make
Loaded plugins: dellsysid, fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: mirror.rackspace.com
* dell-community: linux.dell.com
* epel: fedora-epel.mirror.lstn.net
* extras: mirrordenver.fdcservers.net
* updates: centos.mirror.lstn.net
Setting up Install Process
Package 1:make-3.81-20.el6.x86_64 already installed and latest version
Nothing to do
[root@472322 percona-toolkit-2.2.5]#
[root@472322 percona-toolkit-2.2.5]# perl Makefile.PL
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1.
BEGIN failed--compilation aborted at Makefile.PL line 1.
google,找到需要安装一些perl组件:
[root@472322 percona-toolkit-2.2.5]# yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
Loaded plugins: dellsysid, fastestmirror, presto
Loading mirror speeds from cached hostfile
* base: mirror.rackspace.com
* dell-community: linux.dell.com
* epel: fedora-epel.mirror.lstn.net
* extras: mirrordenver.fdcservers.net
* updates: centos.mirror.lstn.net
Setting up Install Process
............................... 此处省略..............................
Dependency Installed:
perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-131.el6_4 perl-Test-Harness.x86_64 0:3.17-131.el6_4 perl-devel.x86_64 4:5.10.1-131.el6_4
Complete!
OK,再试下:
[root@472322 percona-toolkit-2.2.5]# perl Makefile.PL
Checking if your kit is complete...
Warning: the following files are missing in your kit:
bin/pt-agent.~1~
bin/pt-agent.~2~
bin/pt-align.~1~
bin/pt-align.~2~
bin/pt-archiver.~1~
bin/pt-archiver.~2~
bin/pt-config-diff.~1~
bin/pt-config-diff.~2~
bin/pt-deadlock-logger.~1~
bin/pt-deadlock-logger.~2~
bin/pt-diskstats.~1~
bin/pt-diskstats.~2~
bin/pt-duplicate-key-checker.~1~
bin/pt-duplicate-key-checker.~2~
bin/pt-fifo-split.~1~
bin/pt-fifo-split.~2~
bin/pt-find.~1~
bin/pt-find.~2~
bin/pt-fingerprint.~1~
bin/pt-fingerprint.~2~
bin/pt-fk-error-logger.~1~
bin/pt-fk-error-logger.~2~
bin/pt-heartbeat.~1~
bin/pt-heartbeat.~2~
bin/pt-index-usage.~1~
bin/pt-index-usage.~2~
bin/pt-ioprofile.~1~
bin/pt-ioprofile.~2~
bin/pt-kill.~1~
bin/pt-kill.~2~
bin/pt-mext.~1~
bin/pt-mext.~2~
bin/pt-mysql-summary.~1~
bin/pt-mysql-summary.~2~
bin/pt-online-schema-change.~1~
bin/pt-online-schema-change.~2~
bin/pt-pmp.~1~
bin/pt-pmp.~2~
bin/pt-query-digest.~1~
bin/pt-query-digest.~2~
bin/pt-show-grants.~1~
bin/pt-show-grants.~2~
bin/pt-sift.~1~
bin/pt-sift.~2~
bin/pt-slave-delay.~1~
bin/pt-slave-delay.~2~
bin/pt-slave-find.~1~
bin/pt-slave-find.~2~
bin/pt-slave-restart.~1~
bin/pt-slave-restart.~2~
bin/pt-stalk.~1~
bin/pt-stalk.~2~
bin/pt-summary.~1~
bin/pt-summary.~2~
bin/pt-table-checksum.~1~
bin/pt-table-checksum.~2~
bin/pt-table-sync.~1~
bin/pt-table-sync.~2~
bin/pt-table-usage.~1~
bin/pt-table-usage.~2~
bin/pt-upgrade.~1~
bin/pt-upgrade.~2~
bin/pt-variable-advisor.~1~
bin/pt-variable-advisor.~2~
bin/pt-visual-explain.~1~
bin/pt-visual-explain.~2~
Changelog.~1~
Changelog.~2~
Makefile.PL.~1~
Makefile.PL.~2~
MANIFEST.~1~
Please inform the author.
Warning: prerequisite DBD::mysql 3 not found.
Warning: prerequisite DBI 1.46 not found.
Writing Makefile for percona-toolkit
3.2 make
[root@472322 percona-toolkit-2.2.5]# make
cp bin/pt-mysql-summary blib/script/pt-mysql-summary
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-mysql-summary
cp bin/pt-kill blib/script/pt-kill
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-kill
cp bin/pt-online-schema-change blib/script/pt-online-schema-change
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-online-schema-change
cp bin/pt-table-sync blib/script/pt-table-sync
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-table-sync
cp bin/pt-upgrade blib/script/pt-upgrade
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-upgrade
cp bin/pt-table-usage blib/script/pt-table-usage
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-table-usage
cp bin/pt-fifo-split blib/script/pt-fifo-split
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-fifo-split
cp bin/pt-slave-find blib/script/pt-slave-find
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-slave-find
cp bin/pt-agent blib/script/pt-agent
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-agent
cp bin/pt-ioprofile blib/script/pt-ioprofile
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-ioprofile
cp bin/pt-find blib/script/pt-find
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-find
cp bin/pt-archiver blib/script/pt-archiver
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-archiver
cp bin/pt-deadlock-logger blib/script/pt-deadlock-logger
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-deadlock-logger
cp bin/pt-fingerprint blib/script/pt-fingerprint
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-fingerprint
cp bin/pt-mext blib/script/pt-mext
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-mext
cp bin/pt-slave-restart blib/script/pt-slave-restart
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-slave-restart
cp bin/pt-summary blib/script/pt-summary
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-summary
cp bin/pt-fk-error-logger blib/script/pt-fk-error-logger
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-fk-error-logger
cp bin/pt-table-checksum blib/script/pt-table-checksum
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-table-checksum
cp bin/pt-query-digest blib/script/pt-query-digest
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-query-digest
cp bin/pt-show-grants blib/script/pt-show-grants
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-show-grants
cp bin/pt-pmp blib/script/pt-pmp
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-pmp
cp bin/pt-align blib/script/pt-align
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-align
cp bin/pt-heartbeat blib/script/pt-heartbeat
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-heartbeat
cp bin/pt-slave-delay blib/script/pt-slave-delay
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-slave-delay
cp bin/pt-sift blib/script/pt-sift
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-sift
cp bin/pt-diskstats blib/script/pt-diskstats
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-diskstats
cp bin/pt-visual-explain blib/script/pt-visual-explain
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-visual-explain
cp bin/pt-variable-advisor blib/script/pt-variable-advisor
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-variable-advisor
cp bin/pt-index-usage blib/script/pt-index-usage
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-index-usage
cp bin/pt-duplicate-key-checker blib/script/pt-duplicate-key-checker
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-duplicate-key-checker
cp bin/pt-config-diff blib/script/pt-config-diff
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-config-diff
cp bin/pt-stalk blib/script/pt-stalk
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-stalk
Manifying blib/man1/pt-mysql-summary.1p
Manifying blib/man1/pt-kill.1p
Manifying blib/man1/pt-online-schema-change.1p
Manifying blib/man1/pt-table-sync.1p
Manifying blib/man1/pt-upgrade.1p
Manifying blib/man1/pt-table-usage.1p
Manifying blib/man1/pt-fifo-split.1p
Manifying blib/man1/pt-slave-find.1p
Manifying blib/man1/pt-agent.1p
Manifying blib/man1/pt-ioprofile.1p
Manifying blib/man1/pt-find.1p
Manifying blib/man1/pt-archiver.1p
Manifying blib/man1/pt-deadlock-logger.1p
Manifying blib/man1/pt-fingerprint.1p
Manifying blib/man1/pt-mext.1p
Manifying blib/man1/pt-slave-restart.1p
Manifying blib/man1/pt-summary.1p
Manifying blib/man1/pt-fk-error-logger.1p
Manifying blib/man1/pt-table-checksum.1p
Manifying blib/man1/pt-query-digest.1p
Manifying blib/man1/pt-show-grants.1p
Manifying blib/man1/percona-toolkit.1p
Manifying blib/man1/pt-pmp.1p
Manifying blib/man1/pt-align.1p
Manifying blib/man1/pt-heartbeat.1p
Manifying blib/man1/pt-slave-delay.1p
Manifying blib/man1/pt-sift.1p
Manifying blib/man1/pt-diskstats.1p
Manifying blib/man1/pt-visual-explain.1p
Manifying blib/man1/pt-variable-advisor.1p
Manifying blib/man1/pt-index-usage.1p
Manifying blib/man1/pt-duplicate-key-checker.1p
Manifying blib/man1/pt-config-diff.1p
Manifying blib/man1/pt-stalk.1p
3.3 make install
[root@472322 percona-toolkit-2.2.5]# make install
Installing /usr/local/share/man/man1/pt-ioprofile.1p
Installing /usr/local/share/man/man1/pt-sift.1p
Installing /usr/local/share/man/man1/pt-query-digest.1p
Installing /usr/local/share/man/man1/pt-table-sync.1p
Installing /usr/local/share/man/man1/pt-summary.1p
Installing /usr/local/share/man/man1/pt-duplicate-key-checker.1p
Installing /usr/local/share/man/man1/pt-online-schema-change.1p
Installing /usr/local/share/man/man1/pt-pmp.1p
Installing /usr/local/share/man/man1/pt-mext.1p
Installing /usr/local/share/man/man1/pt-kill.1p
Installing /usr/local/share/man/man1/pt-config-diff.1p
Installing /usr/local/share/man/man1/pt-slave-restart.1p
Installing /usr/local/share/man/man1/pt-deadlock-logger.1p
Installing /usr/local/share/man/man1/pt-variable-advisor.1p
Installing /usr/local/share/man/man1/pt-index-usage.1p
Installing /usr/local/share/man/man1/pt-fk-error-logger.1p
Installing /usr/local/share/man/man1/pt-find.1p
Installing /usr/local/share/man/man1/pt-upgrade.1p
Installing /usr/local/share/man/man1/pt-fingerprint.1p
Installing /usr/local/share/man/man1/pt-show-grants.1p
Installing /usr/local/share/man/man1/pt-archiver.1p
Installing /usr/local/share/man/man1/pt-visual-explain.1p
Installing /usr/local/share/man/man1/pt-stalk.1p
Installing /usr/local/share/man/man1/pt-slave-delay.1p
Installing /usr/local/share/man/man1/pt-diskstats.1p
Installing /usr/local/share/man/man1/pt-heartbeat.1p
Installing /usr/local/share/man/man1/pt-table-checksum.1p
Installing /usr/local/share/man/man1/pt-agent.1p
Installing /usr/local/share/man/man1/percona-toolkit.1p
Installing /usr/local/share/man/man1/pt-fifo-split.1p
Installing /usr/local/share/man/man1/pt-align.1p
Installing /usr/local/share/man/man1/pt-table-usage.1p
Installing /usr/local/share/man/man1/pt-slave-find.1p
Installing /usr/local/share/man/man1/pt-mysql-summary.1p
Installing /usr/local/bin/pt-table-usage
Installing /usr/local/bin/pt-find
Installing /usr/local/bin/pt-kill
Installing /usr/local/bin/pt-ioprofile
Installing /usr/local/bin/pt-stalk
Installing /usr/local/bin/pt-agent
Installing /usr/local/bin/pt-deadlock-logger
Installing /usr/local/bin/pt-sift
Installing /usr/local/bin/pt-pmp
Installing /usr/local/bin/pt-fingerprint
Installing /usr/local/bin/pt-heartbeat
Installing /usr/local/bin/pt-summary
Installing /usr/local/bin/pt-diskstats
Installing /usr/local/bin/pt-slave-restart
Installing /usr/local/bin/pt-index-usage
Installing /usr/local/bin/pt-variable-advisor
Installing /usr/local/bin/pt-archiver
Installing /usr/local/bin/pt-duplicate-key-checker
Installing /usr/local/bin/pt-slave-find
Installing /usr/local/bin/pt-visual-explain
Installing /usr/local/bin/pt-align
Installing /usr/local/bin/pt-table-checksum
Installing /usr/local/bin/pt-mysql-summary
Installing /usr/local/bin/pt-fifo-split
Installing /usr/local/bin/pt-show-grants
Installing /usr/local/bin/pt-query-digest
Installing /usr/local/bin/pt-upgrade
Installing /usr/local/bin/pt-slave-delay
Installing /usr/local/bin/pt-online-schema-change
Installing /usr/local/bin/pt-fk-error-logger
Installing /usr/local/bin/pt-mext
Installing /usr/local/bin/pt-table-sync
Installing /usr/local/bin/pt-config-diff
Appending installation info to /usr/lib64/perl5/perllocal.pod
此致,percona-toolkit安装完毕。
4、后话
percona-toolkit的rpm安装方式,google得到的,杉树自己没有安装过。
rpm -ivh perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm
rpm -ivh percona-toolkit-2.1.1-1.noarch.rpm