安装和使用percona-toolkit来辅助操作MySQL的基本教程 |
一、percona-toolkit简介
percona-toolkit源自Maatkit 和Aspersa工具,这两个工具是管理mysql的最有名的工具,现在Maatkit工具已经不维护了,请大家还是使用percona-toolkit吧!这些工具主要包括开发、性能、配置、监控、复制、系统、实用六大类,作为一个优秀的DBA,里面有的工具非常有用,如果能掌握并加以灵活应用,将能极大的提高工作效率 。 二、percona-toolkit工具包安装 wget percona.com/get/percona-toolkit.tar.gz wget percona.com/get/percona-toolkit.rpm 我这里选择直接从网站上找到最新版本下载: wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1-1.noarch.rpm wget http://www.percona.com/redir/downloads/percona-toolkit/2.1.1/percona-toolkit-2.1.1.tar.gz 从http://pkgs.repoforge.org/perl-TermReadKey/下载最新的TermReadKey包 wget http://pkgs.repoforge.org/perl-TermReadKey/perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm rpm -ivh perl-TermReadKey-2.30-1.el5.rf.x86_64.rpm rpm -ivh percona-toolkit-2.1.1-1.noarch.rpm 注意:需要安装Term::ReadKey 包,否则会报perl(Term::ReadKey) >= 2.10 is needed by percona-toolkit-2.1.1-1.noarch错误 三、常用功能 pt-duplicate-key-checker --host=localhost --user=root --password=zhang@123 --databases=test pt-online-schema-change --user=root --password=zhang@123 --host=localhost --lock-wait-time=120 --alter="ENGINE=InnoDB" D=test,t=oss_pvinfo2 --execute 从下面的日志中可以看出它的执行过程: Altering `test`.`oss_pvinfo2`... Creating new table... Created new table test._oss_pvinfo2_new OK. Altering new table... Altered `test`.`_oss_pvinfo2_new` OK. Creating triggers... Created triggers OK. Copying approximately 995696 rows... Copied rows OK. Swapping tables... Swapped original and new tables OK. Dropping old table... Dropped old table `test`.`_oss_pvinfo2_old` OK. Dropping triggers... Dropped triggers OK. Successfully altered `test`.`oss_pvinfo2`. 在来一个范例,大表添加字段的,语句如下: pt-online-schema-change --user=root --password=zhang@123 --host=localhost --lock-wait-time=120 --alter="ADD COLUMN domain_id INT" D=test,t=oss_pvinfo2 --execute 3. pt-query-advisor pt-query-advisor /path/to/slow-query.log pt-query-advisor --type genlog mysql.log pt-query-digest --type tcpdump.txt --print --no-report | pt-query-advisor pt-query-advisor --query "select * from aaa" 分析general log中的查询语句的例子: pt-query-advisor /data/dbdata/general.log 分析慢查询中的查询语句的例子: pt-query-advisor /data/dbdata/localhost-slow.log pt-show-grants --host=localhost --user=root --password=zhang@123 查看执行数据库的权限: pt-show-grants --host=localhost --user=root --password=zhang@123 --database=hostsops 查看每个用户权限生成revoke收回权限的语句: pt-show-grants --host=localhost --user=root --password=zhang@123 --revoke pt-upgrade h=localhost h=192.168.3.92 --user=root --password=zhang@123 --query="select * from user_data.collect_data limit 5" 查看文件中的对应sql在两个服务器的运行结果范例: pt-upgrade h=localhost h=192.168.3.92 --user=root --password=zhang@123 aaa.sql 查看慢查询中的对应的查询SQL在两个服务器的运行结果范例: pt-upgrade h=localhost h=192.168.3.92 --user=root --password=zhang@123 slow.log 此外还可以执行compare的类型,主要包含三个query_times,results,warnings,比如下面的例子,只比较sql的执行时间 pt-upgrade h=192.168.3.91 h=192.168.3.92 --user=root --password=zhang@123 --query="select * from user_data.collect_data" --compare query_times |