• mysql 案例 ~ pt修复工具的使用


    简介:今天咱们来聊聊PT修复工具pt-table-sync

    注意事项:
       1 表要有主键或者唯一键
       2 针对每一个chunk加的是for update锁
       3 修复过程中不能容忍从库延迟 如果从库延迟太多,pt-table-sync会长期持有对chunk的for update锁,然后等待从库的master_pos_wait执行完毕或超时。从库延迟越大,等待过程就越长,主库加锁的时间就越长,对线上影响就越大
       4 有触发器和主外键约束的情况下要慎用
       5 主从数据不一致需要通过replace into来修复,在主库应用生成binlog,并会应用到所有从库
       6 根据pt-table-checksum的表信息修复的,所以要先校验后修复
       7 pt-table-sync不会同步表结构、索引等,只同步不一致的数据
    用户权限
       GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,SUPER ON db.* TO 'god'@'%' IDENTIFIED BY 'god'//修复的库
    相关参数
       –sync-to-master 指定一个DSN,即从的IP,他会通过show processlist或show slave status 去自动的找主。
       --unique-checks 唯一键检测
       --print 进行打印语句
       --execute 真正执行
    常用命令范式
       pt-table-sync --replicate test.checksums --sync-to-master --unique-checks h=从IP,P=3306,u=god,p=god --print 打印
       pt-table-sync --replicate test.checksums --sync-to-master --unique-checks h=从IP,P=3306,u=god,p=god --execute 执行
    解决思路
      1 先用pt-table-checksum校验一遍,确定不一致的程度:如果不同步的很少,用pt-table-sync直接修复;否则,用备份先替换它,然后用pt-table-sync修复
      2 在用rsync工具修复的时候最好先print再execute或者手工对从库执行sql即可
    补充
      针对主从同步发生一些错误的场景
      1 pt-table-checksum 针对发生的表进行校验,最好采用DSNS
      2 pt-table-sync 根据第一步的信息进行修改,然后执行sql

  • 相关阅读:
    Linux标准C头文件和内核头文件的理解
    linux GCC编译C程序的问题
    C#类型反射、晚期绑定、特性编程的使用背景与分析
    linux下C#开发mongoDB
    C中“指针和数组”引发的探索一
    C#学习记录
    linux下Apache+PHP+mysql+phpMyAdmin源码包安装配置
    基于mongoDB和C#分布式海量文件存储实验
    C中指针和数组引发的探索二
    算法研究学习一(用C和C#实现)
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/9178517.html
Copyright © 2020-2023  润新知