随笔分类 - MySQL Percona Toolkit
摘要:pt-align的功能很简单,将其它工具的输出按列对其。 用法: pt-align [FILES] 如果没有指定文件,则默认读取标准输入的内容。 如,常用的vmstat的输出,阅读体验就不够人性化。 在这种情况下,就可以使用pt-align进行处理
阅读全文
摘要:pt-online-schema-change用于MySQL的在线DDL。 下面结合官方文档和general log来分析其实现原理。 测试表 该表中只有1列,id,自增主键。 其中,表中已经存在一部分数据 利用pt-online-schema-change对该表新增一列 # pt-online-s
阅读全文
摘要:pt-table-checksum是percona公司提供的一个用于在线比对主从数据一致性的工具。 实现原理 将一张大表分成多个chunk,每次针对一个chunk进行校验,同时将校验的结果通过REPLACE INTO语句写入到percona.checksums表中,然后该语句通过主从复制,在SLAV
阅读全文
摘要:pt-mext实现的功能比较简单,就是将mysqladmin输出的多次迭代的相同status变量值放到同一行输出。 参数很少,除了--help和--version外,只有一个--relative参数 支持两种用法: 1. 直接对输出进行聚合 pt-mext -r -- mysqladmin ext
阅读全文
摘要:pt-ioprofile是用来观察特定进程的IO信息的。 该脚本是用shell写的,有两方面的作用: 因实际依赖的是strace命令,该命令会对进程的性能造成较大的影响。所以,在负载较重的系统中,慎用。 使用方法: 直接执行pt-ioprofile即可,默认的是mysqld进程。 # pt-iopr
阅读全文
摘要:pt-pmp有两方面的作用:一是获取进程的堆栈信息,二是对这些堆栈信息进行汇总。 进程的堆栈信息是利用gdb获取的,所以在获取的过程中,会对mysql服务端的性能有一定的影响。 用官方的话说: pt-pmp脚本本身是用shell写的,用法也比较简单,唯一的要求是服务器上已安装gdb包。 不然会报如下
阅读全文
摘要:pt-online-schema-change在对表进行表结构变更时,会创建三个触发器。 如下文测试案例中的t2表,表结构如下: 只有一个自增列字段id。 创建的触发器如下: DELETE触发器和INSERT触发器逻辑上没有任何问题。 但对于UPDATE触发器来说,如果某条记录已经拷贝到中间表中,此
阅读全文
摘要:最近同事反映,在使用pt-heartbeat监控主从复制延迟的过程中,如果master down掉了,则pt-heartbeat则会连接失败,但会不断重试。 重试本无可厚非,毕竟从使用者的角度来说,希望pt-heartbeat能不断重试,直到重新连接上数据库。但是,他们发现,不断的重试会带来内存的缓
阅读全文
摘要:pt-heartbeat是用来监测主从延迟的情况的,众所周知,传统的通过show slave status\G命令中的Seconds_Behind_Master值来判断主从延迟并不靠谱。 pt-heartbeat的思路比较巧妙,它在master中插入一条带有当前时间(MySQL中的now()函数)的
阅读全文