percona系列 ~ pt校验工具介绍

简介:今天咱们来聊聊PT校验工具pt-table-checksum

注意事项:
    1、 根据测试,需要一个即能登录主库,也能登录从库的账号;
    2、 只能指定一个host,必须为主库的IP;
    3、 在检查时会向表加S锁;
    4、 如果master和slave的binlog日志不是STATEMENT格式,要用--no-check-binlog-format选项
    5、 运行之前需要从库的同步IO和SQL进程是YES状态。
    6、 表要有主键索引或唯一键索引
用户权限

    GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'god'@'%' IDENTIFIED BY 'god';//需要检验的表
    GRANT ALL PRIVILEGES ON test.* TO 'god'@'10.255.%' IDENTIFIED BY 'god';//对checksum表的生成
相关问题
   1 对于相关从库发现的方法
      如果要对所有从库做校验并且从库端口都是3306直接采用processlist即可
      否则采用dsns方法
     1 建立相关表
         CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) );
      2 插入从库信息
         INSERT INTO dsns (parent_id,dsn) values(1, "h=从库IP,u=root,p=XX,P=3306");依次类推
      3 生成语句指定
         -recursion-method=dsn=h=IP,D=test,t=dsns
 2 相关报错
   Waiting for the --replicate table to replicate to 表示从库延迟严重,没有相关checksums表
   connect not to 表示连接不到从库,可能是从库端口有问题,按照上述方式解决
   Pausing because Threads_running 表示主库负载太高,可以调大load值或者等待负载降低
 3 正则匹配
   --databases-regex=d_ts.* \ 匹配d_ts的表
 4 对线上的影响
  这个是很多人都关心的问题,首先它对表增加的是S锁 其次它是按照chunk为单位检测的 最后pt工具一些针对主库负载都有警告限制,如果超过这个阈值,就会暂停任务
常用命令范式
  1 pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksums --recursion-method=dsn=h=主库IP,D=test,t=dsns --databases=db --tables=table h=主库IP,u=god,p=god,P=3306
  2 pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksums --recursion-method=processlist --databases=db --tables=table h=主库IP,u=god,p=god,P=3306

posted @ 2018-06-13 14:31  开心的蛋黄派  阅读(280)  评论(0编辑  收藏  举报