Percona-tookit学习笔记(四)

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云服务器ECS,u1 2核4GB 1个月
简介:

pt-upgrade

作用:

    查看慢查询中对应的查询SQL在两个服务器上运行的结果

 

示例:

1
     # pt-upgrade-uroot -proot h='192.168.2.11' h='192.168.2.12' /data/mysql/node1-slow.log   比较2个节点的日志情况

如下图:

【注意:下图是因为我故意将2个节点的慢查询日志弄改的不一样,正常的话应该全是0】

wKiom1cyyubCYaxSAAAYYAnjihk492.png


查看某sql文件在两个节点执行的结果:

1
     # pt-upgrade-uroot -proot h='192.168.2.11' h='192.168.2.12' /root/a.sql

其它的功能暂时不会使用,待后续复习补充。




pt-index-usage

作用:

    从log文件中读取插叙语句,并用explain分析他们是如何利用索引。完成分析之后会生成一份关于索引没有被查询使用过的报告。

    工具连接到MySQL数据库服务器,通读查询日志,使用EXPLAIN 命令去问MySQL如何执行每一个QUERY操作的。当这些完成,它会打印没有使用索引的报告出来。

 

例子:

从慢查询中的SQL查看索引的使用情况

1
#pt-index-usage /data/mysql/88-slow.log -uroot -proot -h localhost
1
或者pt-index-usage  /data/mysql/88-slow .log  -uroot -proot -h localhost --quiet > index.log  # 将结果写入文件,不输出到屏幕

结果如下:

ALTER TABLE `b2b`.`ecs_nav` DROPKEY `ifshow`, DROP KEY `type`; -- type:non-unique

ALTER TABLE `b2b`.`ecs_order_action`DROP KEY `order_id`; -- type:non-unique

ALTER TABLE`b2b`.`ecs_order_goods` DROP KEY `goods_id`, DROP KEY `order_id`; --type:non-unique

ALTER TABLE `b2b`.`ecs_order_info`DROP KEY `agency_id`, DROP KEY `extension_code`, DROP KEY `order_status`, DROPKEY `pay_id`, DROP KEY `pay_status`, DROP KEY `rebate`, DROP KEY `shipping_id`,DROP KEY `shipping_status`, DROP KEY `supplier_id`, DROP KEY `user_id`; --type:non-unique

ALTER TABLE `b2b`.`ecs_region`DROP KEY `agency_id`, DROP KEY `parent_id`, DROP KEY `region_type`; --type:non-unique

ALTER TABLE `b2b`.`ecs_role` DROPKEY `user_name`; -- type:non-unique

ALTER TABLE `b2b`.`ecs_sessions`DROP KEY `expiry`; -- type:non-unique

ALTER TABLE`b2b`.`ecs_sessions_data` DROP KEY `expiry`; -- type:non-unique

......省略部分结果......

 

说明:

    1、可以看到很多-- type:non-unique 非唯一索引

    2、在读取完日志里面所有的事件之后,对于每一个没有用到的索引,工具打印出DROP语句。忽略了被日志里面任意查询访问的表索引,避免不必要的结果。


手册上说可以将结果保存到数据库中,如:

pt-index-usage/data/dbdata/localhost-slow.log --host=localhost --user=root --password=root  --no-report --create-save-results-database

我实验测试未成功,不知什么回事。希望您解决了给我留言。



pt-pmp

作用:

    为查询程序执行聚合的GDB堆栈跟踪,先进性堆栈跟踪,然后将跟踪信息汇总。

 

pt-visual-explain

格式:

    pt-visual-explain<file_containing_explain_output>

    pt-visual-explain-c <file_containing_query>

    mysql-e "explain select * from mysql.user" | pt-visual-explain

 

例如:

1
2
     # mysql-uroot -proot -e 'explain select * from b2b.ecs_goods' > a.sql
     # pt-visual-explain/root/a.sql

    或者通过管道一步处理:

1
     # mysql-uroot -proot -e 'explain select * from b2b.ecs_goods'|pt-visual-explain

 


pt-config-diff

说明:

    比较MySQL节点间配置文件的区别。

    pt-config-diff diffs MySQL configuration files and server variables. CONFIG canbe a filename or a DSN.  At least twoCONFIG sources must be given.  Likestandard Unix diff, there is no output if there are no differences.

 

示例:

比较本地与远程的192.168.2.12上的my.cnf有何不同

1
# pt-config-diff h='192.168.2.11'h='192.168.2.12' -uroot -proot  【这个更详细】

wKiom1cyy2bCxz_DAAB5uJHL-p0355.png



比较本地的/etc/my.cnf与远程的192.168.2.12上的my.cnf有何不同

1
# pt-config-diff /etc/my.cnf  h='192.168.2.12' -uroot -proot  【这个很简略】

wKioL1cyzFbh3GLSAAAmqJoyKCc208.png











本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1772176,如需转载请自行联系原作者
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 负载均衡 前端开发
pgpool-II 4.3 中文手册 - 入门教程
pgpool-II 4.3 中文手册 - 入门教程
578 0
pgpool-II 4.3 中文手册 - 入门教程
|
监控 关系型数据库 MySQL
|
关系型数据库 MySQL Unix
MySQL中的Percona-toolkit工具由来漫谈
首先问一个问题,你听说过下面这两个工具吗? Maatkit 和Aspersa 如果听过,可能就暴露年龄了,你如果现在去查Aspersa相关的文章,会发现下载链接之类的都不可用了。
1680 0
|
监控 MySQL 关系型数据库
|
监控 关系型数据库 MySQL
|
关系型数据库 数据库 索引
|
SQL 关系型数据库 MySQL
|
关系型数据库 MySQL 数据库
|
Perl
percona-toolkit-3.0.4安装
percona-toolkit
1463 0