pt mysql_pt(Percona Toolkit)工具介绍

例子:[root@node1 ~]# pt-show-grants --user=root --password='abc123'实际意义不大,主要是比较mysql权限以及进行版本控制5.在多台服务器上执行查询,并比较有什么不同pt-upgrade这在升级服务器的时候非常有用,可以先安装并导数据到新的服务器上,然后使用这个工具跑一下sql看看有什么不同,可以找出不同版本之间的差异。6.用explain分析sql如何利用索引并生成报告pt-index-usage可以直接从慢查询中获取sql,FILE文件中的sql格式必须和慢查询中个是一致,如果不是一直需要用pt-query-digest转换一下。也可以不生成报告直接保存到数据库中7.查询程序执行聚合的GDB堆栈跟踪并汇总pt-pmp看起来很复杂,其实属于底层程序行为效率跟踪8.格式化explain出来的执行计划按照tree方式输出pt-visual-explain没有实际意义,只是方便阅读9.比较mysql配置文件和服务器参数pt-config-diff最少必须指定两个配置文件源,就像unix下面的diff命令一样,如果配置完全一样就不会输出任何东西,有时候用来排除配置差异造成的问题.10.对mysql的配置和sataus信息进行汇总pt-mysql-summary连接mysql后查询出status和配置信息保存到临时目录中,然后用awk和其他的脚本工具进行格式化11.分析mysql的参数变量并给出建议pt-variable-advisor实际意义有限,还是按自己需求来配置最实际,特别是多实例场景,这个建议毫无意义.12.汇总mysql死锁的相关信息pt-deadlock-logger收集和保存mysql上最近的死锁信息,可以直接打印死锁信息和存储死锁信息到数据库中,死锁信息包括发生死锁的服务器、最近发生死锁的时间、死锁线程id、死锁的事务id、发生死锁时事务执行了多长时间等等非常多的信息,对于频繁出现死锁的情况,建议开一段时间来收集信息.13.汇总mysql外键错误信息pt-fk-error-logger通过SHOW INNODB STATUS提取和保存mysql数据库最近发生的外键错误信息。可以通过参数控制直接打印错误信息或者将错误信息存储到数据库的表中.然而现在很少用外键了,也不建议用外键.14.查看SHOW GLOBAL STATUS的多个样本的信息pt-mext实际意义不大,手动执行然后分析其实也不难.15.分析sql日志并生成报告,最后给出建议pt-query-digest很出名的工具,多用来分析统计慢查询,也可以统计一般sql日志,运行速度快,信息清晰.它可以分析binlog、General log、slowlog,也可以通过SHOW PROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。16.按时间统计sql日志并生成报告pt-trend实际意义不大,例如:读取本地慢查询日志并输出统计信息.17.监控mysql复制延迟pt-heartbeat会生成一个数据表,记录延时时间,不过功能做得不是太好,如果没有数据库完全控制权或者网络问题,还是慎用,容易造成数据不一致.18.设置从服务器落后于主服务器指定时间pt-slave-delay建议不用,功能做得不好,容易搞挂主从结构,到时不得不重做主从就麻烦了.19.查找和打印mysql所有从服务器复制层级关系pt-slave-find连接mysql主服务器并查找其所有的从,然后打印出所有从服务器的层级关系。20.监视mysql复制错误,并尝试重启mysql复制pt-slave-restart监视一个或者多个mysql复制错误,当从停止的时候尝试重新启动复制。属于监控相关21.检查mysql复制一致性pt-table-checksum很出名的工具,只需要在master上执行即可,通常总是和pt-table-sync协作。工作原理:pt-table-checksum在主上执行检查语句在线检查mysql复制的一致性,然后通过复制传递到从,再通过update更新master_src的值。通过检测从上this_src和master_src的值从而判断复制是否一致。最后把检查报告写到某个位置,等待pt-table-sync调用。根据原理来说,它对于binlog_format要求是Statement和Mixed才能正常使用,对于row模式来说,则会报错不能使用。所以使用前要注意进行更改配置,set global binlog_format=STATEMENT来使用,不然就使用不了,运行完改回去就可以了。也要注意需要一定权限,最好用root.22.同步mysql主从库差异表的数据pt-table-sync很出名的工具,主从复制本身存在一些缺陷,在极端情况下会出现从库多了数据,或者少了数据的情况,这个时候就需要人为修复,这个工具可以帮到我们。原理:通过pt-table-checksum得到的数据,列出或直接执行修改复制的差异数据,使其重新同步。总是在主上执行数据的更改,再同步到从上,不会直接更改成从的数据,在主上执行更改是基于主上现在的数据,不会更改主上的数据。注意使用之前先备份你的数据,避免造成数据的丢失.执行execute之前最好先换成--print或--dry-run查看一下会变更哪些数据。23.磁盘io监控工具pt-diskstats和iostat有点像,但是这个工具是交互式并且比iostat更详细。也可以分析从远程机器收集的数据。24.模拟切割文件并通过管道传递给先入先出队列pt-fifo-split实际用的不多,通过读取大文件中的数据并打印到fifo文件,每次达到指定行数就往fifo文件中打印一个EOF字符,读取完成以后,关闭掉fifo文件并移走,然后重建fifo文件,打印更多的行。这样可以保证你每次读取的时候都能读取到制定的行数直到读取完成。注意此工具只能工作在类unix操作系统。这个程序对大文件的数据导入数据库非常有用,25.显示系统信息概况pt-summary此工具会运行和多命令去收集系统状态和配置信息,先保存到临时目录的文件中去,然后运行一些unix命令对这些结果做格式化,最好是用root用户或者有权限的用户运行此命令。26.收集mysql的用于诊断的数据pt-stalk遇到一些疑难杂症的时候,可以拿来测试并获取问题数据.原理:pt-stalk等待触发条件触发,然后收集数据帮助错误诊断,它被设计成使用root权限运行的守护进程,因此你可以诊断那些你不能直接观察的间歇性问题。默认的诊断触发条件为SHOW GLOBAL STATUS。也可以指定processlist为诊断触发条件 ,使用--function参数指定。27.将mysql数据库中表的记录归档到另外一个表或者文件pt-archiver这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将数据插入另外一台服务器的其他表中,也可以写入到一个文件中,方便使用load data infile命令导入数据。另外你还可以用它来执行delete操作。这个工具默认的会删除源中的数据。使用的时候请注意。28.查找mysql表并执行指定的命令,和find命令类似。pt-find库少的话用途不大,当你的库很多,表也很多的时候,而又忘记了自己要查的表名的时候,还是挺有用的.29.Kill掉符合指定条件mysql语句pt-kill加入没有指定文件的话pt-kill连接到mysql并通过SHOW PROCESSLIST找到指定的语句,反之pt-kill从包含SHOW PROCESSLIST结果的文件中读取mysql语句.例如:删除运行超过60秒的连接.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值