Percona-Toolkit命令集合工具,Mysql不可或缺的必备利器之一

来源:互联网 发布:管家婆软件怎样做库存 编辑:程序博客网 时间:2024/06/05 10:21

Percona Toolkit for MySQL is a collection of advanced command-line tools used by Percona MySQL support staff to perform a variety of MySQL server and system tasks that are too difficult or complex to perform manually, including:

1.对主从复制数据的一致性校验;

2.有效的对相关的行数据进行归档操作;

3.查到相关的重复的索引;

4.归总大批量Mysql服务的维护运维工作;

5.问题发生时收集重要的系统信息;

官网项目地址;

http://www.percona.com/software/percona-toolkit/ 

相关配置如下:

[root@Slave02 local]# wget percona.com/get/percona-toolkit.tar.gz--2013-04-01 13:20:06--  http://percona.com/get/percona-toolkit.tar.gzResolving percona.com... 74.121.199.234Connecting to percona.com|74.121.199.234|:80... connected.HTTP request sent, awaiting response... 302 FoundLocation: http://www.percona.com/get/percona-toolkit.tar.gz [following]--2013-04-01 13:20:07--  http://www.percona.com/get/percona-toolkit.tar.gzResolving www.percona.com... 74.121.199.234Reusing existing connection to percona.com:80.HTTP request sent, awaiting response... 302 FoundLocation: http://www.percona.com/downloads/percona-toolkit/2.2.1/percona-toolkit-2.2.1.tar.gz [following]--2013-04-01 13:20:08--  http://www.percona.com/downloads/percona-toolkit/2.2.1/percona-toolkit-2.2.1.tar.gzReusing existing connection to percona.com:80.HTTP request sent, awaiting response... 200 OKLength: 1343968 (1.3M) [application/x-gzip]Saving to: `percona-toolkit-2.2.1.tar.gz'100%[======================================>] 1,343,968   26.9K/s   in 76s     2013-04-01 13:21:24 (17.3 KB/s) - `percona-toolkit-2.2.1.tar.gz' saved [1343968/1343968][root@Slave02 local]# lsbin                   mysqlcmake-2.8.5           mysqlsla-2.03doc                   mysqlsla-2.03.tar.gzetc                   percona-toolkit-2.2.1.tar.gzgames                 puppetlabs-release-6-1.noarch.rpminclude               sbininnotop-1.8.1         shareinnotop-1.8.1.tar.gz  softwarelib                   srclibexec               xtrabackup-1.6.2man                   xtrabackup-1.6.2.tar.gz[root@Slave02 local]#

然后进行相关的perl配置包文件,如下:

进入cpan对其进行安装
#perl -MCPAN -e shell
cpan>install DBI
cpan>install DBD::mysql
cpan>install CGI

cpan[3]> install CGI                                                            Running install for module 'CGI'Running make for M/MA/MARKSTOS/CGI.pm-3.63.tar.gzFetching with LWP:http://mirrors.sohu.com/CPAN/authors/id/M/MA/MARKSTOS/CGI.pm-3.63.tar.gzFetching with LWP:http://mirrors.sohu.com/CPAN/authors/id/M/MA/MARKSTOS/CHECKSUMSChecksum for /root/.cpan/sources/authors/id/M/MA/MARKSTOS/CGI.pm-3.63.tar.gz ok  CPAN.pm: Building M/MA/MARKSTOS/CGI.pm-3.63.tar.gzChecking if your kit is complete...Looks goodWarning: prerequisite FCGI 0.67 not found.Writing Makefile for CGIWriting MYMETA.yml and MYMETA.json---- Unsatisfied dependencies detected during --------        MARKSTOS/CGI.pm-3.63.tar.gz       ----    FCGI [requires]Shall I follow them and prepend them to the queueof modules we are processing right now? [yes] yesRunning make test  Delayed until after prerequisitesRunning make install  Delayed until after prerequisitesRunning install for module 'FCGI'Running make for F/FL/FLORA/FCGI-0.74.tar.gzFetching with LWP:http://mirrors.sohu.com/CPAN/authors/id/F/FL/FLORA/FCGI-0.74.tar.gzFetching with LWP:http://mirrors.sohu.com/CPAN/authors/id/F/FL/FLORA/CHECKSUMSChecksum for /root/.cpan/sources/authors/id/F/FL/FLORA/FCGI-0.74.tar.gz ok  CPAN.pm: Building F/FL/FLORA/FCGI-0.74.tar.gzChecking if your kit is complete...Looks goodWriting Makefile for FCGIWriting MYMETA.yml and MYMETA.jsonRunning ./configure for youPlease read configure.readme for information on how to run it yourselfchecking for gcc... gccchecking whether the C compiler works... yeschecking for C compiler default output file name... a.outchecking for suffix of executables... checking whether we are cross compiling... nochecking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether gcc accepts -g... yeschecking for gcc option to accept ISO C89... none neededchecking how to run the C preprocessor... gcc -Echecking for grep that handles long lines and -e... /bin/grepchecking for egrep... /bin/grep -Echecking for ANSI C header files... yeschecking for sys/types.h... yeschecking for sys/stat.h... yeschecking for stdlib.h... yeschecking for string.h... yeschecking for memory.h... yeschecking for strings.h... yeschecking for inttypes.h... yeschecking for stdint.h... yeschecking for unistd.h... yeschecking for ssize_t... yeschecking for sun_len in sys/un.h... nochecking for fpos_t in stdio.h... yeschecking sys/socket.h usability... yeschecking sys/socket.h presence... yeschecking for sys/socket.h... yeschecking netdb.h usability... yeschecking netdb.h presence... yeschecking for netdb.h... yeschecking netinet/in.h usability... yeschecking netinet/in.h presence... yeschecking for netinet/in.h... yeschecking arpa/inet.h usability... yeschecking arpa/inet.h presence... yeschecking for arpa/inet.h... yeschecking sys/time.h usability... yeschecking sys/time.h presence... yeschecking for sys/time.h... yeschecking limits.h usability... yeschecking limits.h presence... yeschecking for limits.h... yeschecking sys/param.h usability... yeschecking sys/param.h presence... yeschecking for sys/param.h... yeschecking for unistd.h... (cached) yeschecking for a fileno() prototype in stdio.h... yeschecking whether cross-process locking is required by accept()... nochecking whether va_arg(arg, long double) crashes the compiler... nochecking for an ANSI C-conforming const... yesconfigure: creating ./config.statusconfig.status: creating fcgi_config.h/usr/bin/perl FCGI.PL FCGI.pmGenerating FCGI.pmcp FCGI.pm blib/arch/FCGI.pm/usr/bin/perl "-Iblib/arch" "-Iblib/lib" FCGI.XL FCGI.xsGenerating FCGI.xs for Perl version 5.008008/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap FCGI.xs > FCGI.xsc && mv FCGI.xsc FCGI.cgcc -c  -I. -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"0.74\" -DXS_VERSION=\"0.74\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE"   FCGI.cFCGI.xs: In function 釬CGI_Finish?FCGI.xs:187: warning: suggest parentheses around assignment used as truth valueFCGI.c: In function 釾S_FCGI__Stream_WRITE?FCGI.c:674: warning: unused variable 鈚arg?FCGI.c:673: warning: unused variable 釸ETVAL?FCGI.c: In function 釾S_FCGI__Stream_GETC?FCGI.c:775: warning: unused variable 釸ETVAL?gcc -c  -I. -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"0.74\" -DXS_VERSION=\"0.74\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE"   fcgiapp.cgcc -c  -I. -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"0.74\" -DXS_VERSION=\"0.74\" -fPIC "-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE"   os_unix.cos_unix.c: In function 釵S_Accept?os_unix.c:1169: warning: pointer targets in passing argument 3 of 鈇ccept?differ in signednessos_unix.c: In function 釵S_IsFcgi?os_unix.c:1269: warning: pointer targets in passing argument 3 of 鈍etpeername?differ in signednessRunning Mkbootstrap for FCGI ()chmod 644 FCGI.bsrm -f blib/arch/auto/FCGI/FCGI.sogcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib FCGI.o fcgiapp.o os_unix.o  -o blib/arch/auto/FCGI/FCGI.so       \                \          chmod 755 blib/arch/auto/FCGI/FCGI.socp FCGI.bs blib/arch/auto/FCGI/FCGI.bschmod 644 blib/arch/auto/FCGI/FCGI.bsManifying blib/man3/FCGI.3pmFCGI.pm:306: Unknown command paragraph "=HEAD1 LIMITATIONS"/usr/bin/perl "-Iblib/arch" "-Iblib/lib" echo.PL echo.fpl/usr/bin/perl "-Iblib/arch" "-Iblib/lib" remote.PL remote.fpl/usr/bin/perl "-Iblib/arch" "-Iblib/lib" threaded.PL threaded.fpl  FLORA/FCGI-0.74.tar.gz  /usr/bin/make -- OKRunning make testPERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl1..1# Running under perl version 5.008008 for linux# Current time local: Mon Apr  1 13:40:50 2013# Current time GMT:   Mon Apr  1 05:40:50 2013# Using Test.pm version 1.25ok 1  FLORA/FCGI-0.74.tar.gz  /usr/bin/make test -- OKRunning make installFiles found in blib/arch: installing files in blib/lib into architecture dependent library treeInstalling /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/FCGI.pmInstalling /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/FCGI/FCGI.bsInstalling /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/FCGI/FCGI.soInstalling /usr/share/man/man3/FCGI.3pmAppending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod  FLORA/FCGI-0.74.tar.gz  /usr/bin/make install  -- OKRunning make for M/MA/MARKSTOS/CGI.pm-3.63.tar.gz  Has already been unwrapped into directory /root/.cpan/build/CGI.pm-3.63-dl05L8  CPAN.pm: Building M/MA/MARKSTOS/CGI.pm-3.63.tar.gzcp lib/CGI/Switch.pm blib/lib/CGI/Switch.pmcp lib/CGI/Cookie.pm blib/lib/CGI/Cookie.pmcp lib/CGI/Pretty.pm blib/lib/CGI/Pretty.pmcp lib/CGI.pm blib/lib/CGI.pmcp lib/CGI/Carp.pm blib/lib/CGI/Carp.pmcp lib/CGI/Apache.pm blib/lib/CGI/Apache.pmcp lib/CGI/Util.pm blib/lib/CGI/Util.pmcp lib/CGI/Push.pm blib/lib/CGI/Push.pmcp lib/CGI/Fast.pm blib/lib/CGI/Fast.pmManifying blib/man3/CGI::Switch.3pmManifying blib/man3/CGI::Cookie.3pmManifying blib/man3/CGI::Pretty.3pmManifying blib/man3/CGI.3pmManifying blib/man3/CGI::Carp.3pmManifying blib/man3/CGI::Apache.3pmManifying blib/man3/CGI::Util.3pmManifying blib/man3/CGI::Push.3pmManifying blib/man3/CGI::Fast.3pm  MARKSTOS/CGI.pm-3.63.tar.gz  /usr/bin/make -- OKRunning make testPERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/headers/*.tt/apache.t ............... ok   t/autoescape.t ........... ok     t/can.t .................. ok   t/carp.t ................. ok     t/charset.t .............. ok   t/checkbox_group.t ....... ok   t/cookie.t ............... ok     t/delete.t ............... ok    t/Dump.t ................. ok   t/end_form.t ............. ok   t/fast.t ................. ok   t/form.t ................. ok    t/function.t ............. ok     t/headers.t .............. ok    t/hidden.t ............... ok   t/html.t ................. ok     t/http.t ................. ok   t/init.t ................. ok   t/multipart_init.t ....... ok   t/no_tabindex.t .......... ok     t/param_fetch.t .......... ok   t/popup_menu.t ........... ok   t/pretty.t ............... ok     t/push.t ................. ok     t/query_string.t ......... ok   t/request.t .............. ok     t/rt-52469.t ............. ok   t/save_read_roundtrip.t .. ok   t/start_end_asterisk.t ... ok     t/start_end_end.t ........ ok     t/start_end_start.t ...... ok     t/switch.t ............... ok   t/tmpdir.t ............... skipped: Root can write to 'unwritable files', so many of these tests don't make sense for root.t/unescapeHTML.t ......... ok   t/upload.t ............... ok    t/uploadInfo.t ........... ok   t/url.t .................. 1/? Use of uninitialized value in scalar assignment at t/url.t line 28.Use of uninitialized value in scalar assignment at t/url.t line 29.Use of uninitialized value in scalar assignment at t/url.t line 30.Use of uninitialized value in scalar assignment at t/url.t line 31.t/url.t .................. ok   t/user_agent.t ........... ok   t/utf8.t ................. ok   t/util-58.t .............. ok   t/util.t ................. ok     All tests successful.Files=41, Tests=700,  2 wallclock secs ( 0.15 usr  0.02 sys +  1.20 cusr  0.13 csys =  1.50 CPU)Result: PASS  MARKSTOS/CGI.pm-3.63.tar.gz  /usr/bin/make test -- OKRunning make installInstalling /usr/lib/perl5/5.8.8/CGI.pmInstalling /usr/lib/perl5/5.8.8/CGI/Switch.pmInstalling /usr/lib/perl5/5.8.8/CGI/Push.pmInstalling /usr/lib/perl5/5.8.8/CGI/Apache.pmInstalling /usr/lib/perl5/5.8.8/CGI/Fast.pmInstalling /usr/lib/perl5/5.8.8/CGI/Pretty.pmInstalling /usr/lib/perl5/5.8.8/CGI/Util.pmInstalling /usr/lib/perl5/5.8.8/CGI/Carp.pmInstalling /usr/lib/perl5/5.8.8/CGI/Cookie.pmInstalling /usr/share/man/man3/CGI::Apache.3pmInstalling /usr/share/man/man3/CGI::Cookie.3pmInstalling /usr/share/man/man3/CGI::Fast.3pmInstalling /usr/share/man/man3/CGI::Push.3pmInstalling /usr/share/man/man3/CGI::Util.3pmInstalling /usr/share/man/man3/CGI::Pretty.3pmInstalling /usr/share/man/man3/CGI.3pmInstalling /usr/share/man/man3/CGI::Switch.3pmInstalling /usr/share/man/man3/CGI::Carp.3pmAppending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod  MARKSTOS/CGI.pm-3.63.tar.gz  /usr/bin/make install  -- OKcpan[4]>  
然后开始编译相关的percona-toolkit工具;

[root@Slave02 local]# tar zxvf percona-toolkit-2.2.1.tar.gz percona-toolkit-2.2.1/percona-toolkit-2.2.1/READMEpercona-toolkit-2.2.1/COPYINGpercona-toolkit-2.2.1/Makefile.PLpercona-toolkit-2.2.1/lib/percona-toolkit-2.2.1/MANIFESTpercona-toolkit-2.2.1/INSTALLpercona-toolkit-2.2.1/bin/percona-toolkit-2.2.1/bin/pt-query-digestpercona-toolkit-2.2.1/bin/pt-archiverpercona-toolkit-2.2.1/bin/pt-index-usagepercona-toolkit-2.2.1/bin/pt-mysql-summarypercona-toolkit-2.2.1/bin/pt-table-checksumpercona-toolkit-2.2.1/bin/pt-visual-explainpercona-toolkit-2.2.1/bin/pt-show-grantspercona-toolkit-2.2.1/bin/pt-ioprofilepercona-toolkit-2.2.1/bin/pt-fifo-splitpercona-toolkit-2.2.1/bin/pt-killpercona-toolkit-2.2.1/bin/pt-alignpercona-toolkit-2.2.1/bin/pt-slave-restartpercona-toolkit-2.2.1/bin/pt-slave-findpercona-toolkit-2.2.1/bin/pt-table-usagepercona-toolkit-2.2.1/bin/pt-fk-error-loggerpercona-toolkit-2.2.1/bin/pt-online-schema-changepercona-toolkit-2.2.1/bin/pt-upgradepercona-toolkit-2.2.1/bin/pt-heartbeatpercona-toolkit-2.2.1/bin/pt-config-diffpercona-toolkit-2.2.1/bin/pt-slave-delaypercona-toolkit-2.2.1/bin/pt-duplicate-key-checkerpercona-toolkit-2.2.1/bin/pt-findpercona-toolkit-2.2.1/bin/pt-siftpercona-toolkit-2.2.1/bin/pt-pmppercona-toolkit-2.2.1/bin/pt-deadlock-loggerpercona-toolkit-2.2.1/bin/pt-variable-advisorpercona-toolkit-2.2.1/bin/pt-stalkpercona-toolkit-2.2.1/bin/pt-fingerprintpercona-toolkit-2.2.1/bin/pt-summarypercona-toolkit-2.2.1/bin/pt-table-syncpercona-toolkit-2.2.1/bin/pt-mextpercona-toolkit-2.2.1/bin/pt-diskstatspercona-toolkit-2.2.1/Changelogpercona-toolkit-2.2.1/docs/percona-toolkit-2.2.1/docs/percona-toolkit.pod[root@Slave02 local]# cd percona-toolkit-2.2.1[root@Slave02 percona-toolkit-2.2.1]# perl Makefile.PL Checking if your kit is complete...Looks goodWriting Makefile for percona-toolkitWriting MYMETA.yml and MYMETA.json[root@Slave02 percona-toolkit-2.2.1]# makecp bin/pt-mysql-summary blib/script/pt-mysql-summary/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-mysql-summarycp bin/pt-pmp blib/script/pt-pmp/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-pmpcp bin/pt-kill blib/script/pt-kill/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-killcp 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-changecp bin/pt-align blib/script/pt-align/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-aligncp bin/pt-heartbeat blib/script/pt-heartbeat/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-heartbeatcp bin/pt-table-sync blib/script/pt-table-sync/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-table-synccp bin/pt-upgrade blib/script/pt-upgrade/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-upgradecp bin/pt-table-usage blib/script/pt-table-usage/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-table-usagecp bin/pt-slave-delay blib/script/pt-slave-delay/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-slave-delaycp bin/pt-sift blib/script/pt-sift/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-siftcp bin/pt-fifo-split blib/script/pt-fifo-split/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-fifo-splitcp bin/pt-slave-find blib/script/pt-slave-find/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-slave-findcp bin/pt-ioprofile blib/script/pt-ioprofile/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-ioprofilecp bin/pt-diskstats blib/script/pt-diskstats/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-diskstatscp bin/pt-find blib/script/pt-find/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-findcp bin/pt-archiver blib/script/pt-archiver/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-archivercp bin/pt-deadlock-logger blib/script/pt-deadlock-logger/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-deadlock-loggercp bin/pt-fingerprint blib/script/pt-fingerprint/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-fingerprintcp bin/pt-visual-explain blib/script/pt-visual-explain/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-visual-explaincp bin/pt-variable-advisor blib/script/pt-variable-advisor/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-variable-advisorcp bin/pt-mext blib/script/pt-mext/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-mextcp bin/pt-index-usage blib/script/pt-index-usage/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-index-usagecp bin/pt-slave-restart blib/script/pt-slave-restart/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-slave-restartcp bin/pt-summary blib/script/pt-summary/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-summarycp 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-checkercp 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-loggercp bin/pt-table-checksum blib/script/pt-table-checksum/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-table-checksumcp bin/pt-query-digest blib/script/pt-query-digest/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-query-digestcp bin/pt-show-grants blib/script/pt-show-grants/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-show-grantscp bin/pt-config-diff blib/script/pt-config-diff/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-config-diffcp bin/pt-stalk blib/script/pt-stalk/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/pt-stalkManifying blib/man1/pt-mysql-summary.1pManifying blib/man1/pt-kill.1pManifying blib/man1/pt-online-schema-change.1pManifying blib/man1/pt-table-sync.1pManifying blib/man1/pt-upgrade.1pManifying blib/man1/pt-table-usage.1pManifying blib/man1/pt-fifo-split.1pManifying blib/man1/pt-slave-find.1pManifying blib/man1/pt-ioprofile.1pManifying blib/man1/pt-find.1pManifying blib/man1/pt-archiver.1pManifying blib/man1/pt-deadlock-logger.1pManifying blib/man1/pt-fingerprint.1pManifying blib/man1/pt-mext.1pManifying blib/man1/pt-slave-restart.1pManifying blib/man1/pt-summary.1pManifying blib/man1/pt-fk-error-logger.1pManifying blib/man1/pt-table-checksum.1pManifying blib/man1/pt-query-digest.1pManifying blib/man1/pt-show-grants.1pManifying blib/man1/percona-toolkit.1pManifying blib/man1/pt-pmp.1pManifying blib/man1/pt-align.1pManifying blib/man1/pt-heartbeat.1pManifying blib/man1/pt-slave-delay.1pManifying blib/man1/pt-sift.1pManifying blib/man1/pt-diskstats.1pManifying blib/man1/pt-visual-explain.1pManifying blib/man1/pt-variable-advisor.1pManifying blib/man1/pt-index-usage.1pManifying blib/man1/pt-duplicate-key-checker.1pManifying blib/man1/pt-config-diff.1pManifying blib/man1/pt-stalk.1p[root@Slave02 percona-toolkit-2.2.1]#
[root@Slave02 percona-toolkit-2.2.1]# make installInstalling /usr/share/man/man1/pt-pmp.1pInstalling /usr/share/man/man1/pt-upgrade.1pInstalling /usr/share/man/man1/pt-fk-error-logger.1pInstalling /usr/share/man/man1/pt-visual-explain.1pInstalling /usr/share/man/man1/pt-ioprofile.1pInstalling /usr/share/man/man1/pt-fifo-split.1pInstalling /usr/share/man/man1/pt-heartbeat.1pInstalling /usr/share/man/man1/pt-table-sync.1pInstalling /usr/share/man/man1/pt-slave-restart.1pInstalling /usr/share/man/man1/pt-align.1pInstalling /usr/share/man/man1/pt-find.1pInstalling /usr/share/man/man1/pt-summary.1pInstalling /usr/share/man/man1/pt-slave-find.1pInstalling /usr/share/man/man1/pt-fingerprint.1pInstalling /usr/share/man/man1/pt-show-grants.1pInstalling /usr/share/man/man1/pt-duplicate-key-checker.1pInstalling /usr/share/man/man1/pt-config-diff.1pInstalling /usr/share/man/man1/pt-variable-advisor.1pInstalling /usr/share/man/man1/pt-kill.1pInstalling /usr/share/man/man1/pt-sift.1pInstalling /usr/share/man/man1/pt-diskstats.1pInstalling /usr/share/man/man1/pt-online-schema-change.1pInstalling /usr/share/man/man1/pt-stalk.1pInstalling /usr/share/man/man1/pt-slave-delay.1pInstalling /usr/share/man/man1/pt-table-checksum.1pInstalling /usr/share/man/man1/pt-deadlock-logger.1pInstalling /usr/share/man/man1/pt-index-usage.1pInstalling /usr/share/man/man1/pt-mext.1pInstalling /usr/share/man/man1/pt-table-usage.1pInstalling /usr/share/man/man1/percona-toolkit.1pInstalling /usr/share/man/man1/pt-archiver.1pInstalling /usr/share/man/man1/pt-mysql-summary.1pInstalling /usr/share/man/man1/pt-query-digest.1pInstalling /usr/bin/pt-online-schema-changeInstalling /usr/bin/pt-table-usageInstalling /usr/bin/pt-siftInstalling /usr/bin/pt-archiverInstalling /usr/bin/pt-visual-explainInstalling /usr/bin/pt-heartbeatInstalling /usr/bin/pt-query-digestInstalling /usr/bin/pt-findInstalling /usr/bin/pt-config-diffInstalling /usr/bin/pt-table-syncInstalling /usr/bin/pt-fk-error-loggerInstalling /usr/bin/pt-mextInstalling /usr/bin/pt-mysql-summaryInstalling /usr/bin/pt-duplicate-key-checkerInstalling /usr/bin/pt-table-checksumInstalling /usr/bin/pt-stalkInstalling /usr/bin/pt-show-grantsInstalling /usr/bin/pt-ioprofileInstalling /usr/bin/pt-diskstatsInstalling /usr/bin/pt-variable-advisorInstalling /usr/bin/pt-summaryInstalling /usr/bin/pt-index-usageInstalling /usr/bin/pt-slave-findInstalling /usr/bin/pt-slave-restartInstalling /usr/bin/pt-killInstalling /usr/bin/pt-upgradeInstalling /usr/bin/pt-deadlock-loggerInstalling /usr/bin/pt-slave-delayInstalling /usr/bin/pt-fifo-splitInstalling /usr/bin/pt-alignInstalling /usr/bin/pt-pmpInstalling /usr/bin/pt-fingerprintAppending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod[root@Slave02 percona-toolkit-2.2.1]# 
然后就可以使用各种包里的相关命令集合了,呵呵,比如:

pt-duplicate-key-checker,pt-online-schema-change,pt-query-advisor,pt-show-grants,pt-upgrade等等各种命令!

[root@Slave02 percona-toolkit-2.2.1]# pt-duplicate-key-checker --host=localhost --user=root --password=root --databases=prod# ######################################################################### prod.customers                                                          # ######################################################################### customer_name_i is a duplicate of sss# Key definitions:#   KEY `customer_name_i` (`CUSTOMER_NAME`),#   KEY `sss` (`CUSTOMER_NAME`)# Column types:#         `customer_name` varchar(40) not null# To remove this duplicate index, execute:ALTER TABLE `prod`.`customers` DROP INDEX `customer_name_i`;# ######################################################################### Summary of indexes                                                      # ######################################################################### Size Duplicate Indexes   4238388# Total Duplicate Indexes  1# Total Indexes            15[root@Slave02 percona-toolkit-2.2.1]# pt-duplicate-key-checker --host=localhost --user=root --password=root --databases=book# ######################################################################### book.artist                                                             # ######################################################################### type is a left-prefix of type_2# Key definitions:#   KEY `type` (`type`),#   KEY `type_2` (`type`,`gender`,`country_id`),# Column types:#         `type` enum('band','person','unknown','combination') not null#         `gender` enum('male','female') default null#         `country_id` smallint(5) unsigned default null# To remove this duplicate index, execute:ALTER TABLE `book`.`artist` DROP INDEX `type`;# ######################################################################### Summary of indexes                                                      # ######################################################################### Size Duplicate Indexes   582368# Total Duplicate Indexes  1# Total Indexes            7[root@Slave02 percona-toolkit-2.2.1]#



原创粉丝点击