返回顶部
首页 > 资讯 > 数据库 >如何使用pt工具校验修复主从
  • 146
分享到

如何使用pt工具校验修复主从

2024-04-02 19:04:59 146人浏览 八月长安
摘要

这篇文章主要为大家展示了“如何使用pt工具校验修复主从”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用pt工具校验修复主从”这篇文章吧。使用pt工具校验主

这篇文章主要为大家展示了“如何使用pt工具校验修复主从”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用pt工具校验修复主从”这篇文章吧。

使用pt工具校验主从一致性并修复

【原理说明】  

     pt-table-checksum 是 Percona-Toolkit 的组件之一,用于检测Mysql主、从库的数据是否一致。其原理是在主库执行基于statement的sql语句来生成主库数据块的checksum,把相同的sql语句传递到从库执行,并在从库上计算相同数据块的checksum,最后,比较主从库上相同数据块的checksum值,由此判断主从数据是否一致。检测过程根据唯一索引将表按row切分为块(chunk),以为单位计算,可以避免表。检测时会自动判断复制延迟、 master的负载, 超过阀值后会自动将检测暂停,减小对线上服务的影响。
    pt-table-checksum 默认情况下可以应对绝大部分场景,官方说,即使上千个库、上万亿的行,它依然可以很好的工作,这源自于设计很简单,一次检查一个表,不需要太多的内存和多余的操作;必要时,pt-table-checksum 会根据服务器负载动态改变 chunk 大小,减少从库的延迟。
    为了减少对数据库的干预,pt-table-checksum还会自动侦测并连接到从库,当然如果失败,可以指定--recursion-method选项来告诉从库在哪里。它的易用性还体现在,复制若有延迟,在从库 checksum 会暂停直到赶上主库的计算时间点(也通过选项--设定一个可容忍的延迟最大值,超过这个值也认为不一致)。
    为了保证主数据库服务的安全,该工具实现了许多保护措施:

    1)自动设置 innodb_lock_wait_timeout 为1s,避免引起锁

    2)默认当数据库有25个以上的并发查询时,pt-table-checksum会暂停。可以设置 --max-load 选项来设置这个阀值
    3)当用     Ctrl+C 停止任务后,工具会正常的完成当前 chunk 检测,下次使用 --resume 选项启动可以恢复继续下一个     chunk

【工作过程】

1. 连接到主库:pt工具连接到主库,然后自动发现主库的所有从库。默认采用show slave hosts来查找从库,但是这只有在主从实例端口相同的情况下才有效。

2. 查找主库或者从库是否有复制过滤规则:这是为了安全而默认检查的选项。你可以关闭这个检查,但是这可能导致checksum的sql语句要么不会同步到从库,要么到了从库发现从库没有要被checksum的表,这都会导致从库同步卡库。

3. 开始获取表,一个个的计算。

4. 如果是表的第一个chunk,那么chunk-size一般为1000;如果不是表的第一个chunk,那么采用12步中分析出的结果。

5. 检查表结构,进行数据类型转换等,生成checksum的sql语句。

6. 根据表上的索引和数据的分布,选择最合适的split表的方法。

7. 开始checksum表。

8. 默认在chunk一个表之前,先删除上次这个表相关的计算结果。除非–resume。

9. 根据explain的结果,判断chunk的size是否超过了你定义的chunk-size的上限。如果超过了,为了不影响线上性能,这个chunk将被忽略。

10. 把要checksum的行加上for update锁,并计算。

11. 把计算结果存储到master_crc master_count列中。

12. 调整下一个chunk的大小。

13. 等待从库追上主库。如果没有延迟备份的从库在运行,最好检查所有的从库,如果发现延迟最大的从库延迟超过max-lag秒,pt工具在这里将暂停。

14. 如果发现主库的max-load超过某个阈值,pt工具在这里将暂停。

15. 继续下一个chunk,直到这个table被chunk完毕。

16. 等待从库执行完checksum,便于生成汇总的统计结果。每个表汇总并统计一次。

17. 循环每个表,直到结束。


【校验脚本】


pt工具如果使用不当,会影响业务正常使用,甚至出现死锁情况,下面结合生产经验,使用如下参数进行校验

  • TS :完成检查的时间戳。

  • ERRORS     :检查时候发生错误和警告的数量。

  • DIFFS :不一致的chunk数量。当指定 --no-replicate-check 即检查完但不立即输出结果时,会一直为0;当指定 --replicate-check-only 即不检查只从checksums表中计算crc32,且只显示不一致的信息(毕竟输出的大部分应该是一致的,容易造成干扰)。

  • ROWS :比对的表行数。

  • CHUNKS :被划分到表中的块的数目。

  • SKIPPED     :由于错误或警告或过大,则跳过块的数目。

  • TIME :执行的时间。

  • TABLE :被检查的表名

【修复脚本】

点击(此处)折叠或打开

  1. user=""

  2. passWord=""

  3. charset="utf8mb4"

  4. replicate="pt.checksum"

  5. chunk_size="1500"

  6. pid="/data/script/mysql/pt-table-sync.pid"

  7. sync_to_master="h=10.9.129.33,P=3306"

  8. tables="kuaikan.device_push_info"


  9. /usr/bin/pt-table-sync  \

  10. --user=${user} \

  11. --password=${password} \

  12. --pid=${pid}  \

  13. --bin-log \

  14. --tables="${tables}" \

  15. --buffer-in-mysql  \

  16. --no-buffer-to-client \

  17. --charset=${charset} \

  18. --no-check-child-tables \

  19. --no-foreign-key-checks  \

  20. --check-master \

  21. --replicate=${replicate} \

  22. --sync-to-master  ${sync_to_master} \

  23. --check-slave \

  24. --check-triggers \

  25. --chunk-size=${chunk_size} \

  26. --print \

  27. --transaction \

  28. --verbose

【修复脚本参数说明】


1)print只是打印需要执行的命令,确认无误后把参数—print改成—execute
2)sync_to_master此处填写从库的地址,只需要填写从库地址,会自动从从库show slave status获取主库的信息,不需要再写主库的地址,写了从库地址后,会根据从库差异对这个从库进行更改,无论如何都是在master端执行。并不会对其他从库的差异进行修复。
3)no-buffer-to-client如果禁用该选项的话,MySQL会一次性发送所有的rows,针对大表
4)lock参数如果 使用—replicate 或者 –sync-to-master 参数时,slave端 是不会锁表的。锁表的时候使用的是 lock tables ,但是如果使用 --transaction 的话,就是在事务开始到提交这一段,开始锁表

以上是“如何使用pt工具校验修复主从”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 如何使用pt工具校验修复主从

本文链接: https://lsjlt.com/news/62723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用pt工具校验修复主从
    这篇文章主要为大家展示了“如何使用pt工具校验修复主从”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用pt工具校验修复主从”这篇文章吧。使用pt工具校验主...
    99+
    2024-04-02
  • 使用pt-table-checksum工具对主从数据的一致性进行校验
    本文主要给大家简单讲讲使用pt-table-checksum工具对主从数据的一致性进行校验,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望使用pt-table...
    99+
    2024-04-02
  • 如何使用pt工具检测MySQL主从延迟
    小编给大家分享一下如何使用pt工具检测MySQL主从延迟,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   ...
    99+
    2024-04-02
  • 一次主从复制出错解决与pt-slave-restart工具使用
    缘由:测试环境中,主库执行了DDL语句增加一个字段的长度后,从库报无法修改这个字段长的的问题,且这个字段的长度已经介于原来的长度和目标长度中间了环境5.7.19 GTID双主复制解决步骤:1.尝试手工修改字...
    99+
    2024-04-02
  • 【Mysql】主从不同的端口使用pt-table-checksum校验一致性
    背景 主:10.32.7.113 3306 从:10.32.7.112 3307 ...
    99+
    2024-04-02
  • 如何使用pt-query-digest工具
    这篇文章将为大家详细讲解有关如何使用pt-query-digest工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 slow log 分析...
    99+
    2024-04-02
  • 使用BitSet位集合,一个重复校验工具
    目录BitSet位集合,一个重复校验工具BitSet的基本用法概念基本操作题目BitSet位集合,一个重复校验工具 BitSet,位集合,用于判断一个int数字是否存在与bitSet...
    99+
    2022-11-13
    BitSet位集合 重复校验工具 校验工具
  • mysql中如何使用percona的pt-archiver工具
    这篇文章给大家分享的是有关mysql中如何使用percona的pt-archiver工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。DBA或者运维人员经常需定期对数据进行归档和...
    99+
    2024-04-02
  • ps如何使用修复画笔工具
    这篇文章将为大家详细讲解有关ps如何使用修复画笔工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 修复画笔工具可以从图像中取样或用图案填充图像,修补图像的瑕疵,修复画...
    99+
    2024-04-02
  • 如何使用percona-toolkit工具检查及修复MySQL数据库的主从不一致
    下文主要给大家带来如何使用percona-toolkit工具检查及修复MySQL数据库的主从不一致,希望这些内容能够带给大家实际用处,这也是我如何使用percona-toolkit工具检查及修复MySQL数...
    99+
    2024-04-02
  • 修复工具DBVERIFY的使用
    http://blog.csdn.net/leshami/article/details/6530890 DBVERIFY 工具的使用 Oracle 数据库运行过程中由于硬件故障或操作系统故障导致导致O...
    99+
    2024-04-02
  • ps如何使用污点修复画笔工具
    这篇文章主要为大家展示了“ps如何使用污点修复画笔工具”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ps如何使用污点修复画笔工具”这篇文章吧。 污点修复画笔工...
    99+
    2024-04-02
  • 教你win7蓝屏修复工具如何使用
    一名网友报告称在使用Windows 7电脑时遇到了蓝屏问题,并且不清楚造成这种情况的原因是什么。我们可以使用win7蓝屏修复工具来分析和解决win7蓝屏问题。下面小编将教大家如何使用win7蓝屏修复工具。请告诉我你需要的帮助。具体步骤如下:...
    99+
    2023-07-14
  • javaScript如何实现手机号码校验工具类PhoneUtils
    这篇文章主要介绍javaScript如何实现手机号码校验工具类PhoneUtils,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下//PhoneUtils命名空间 ...
    99+
    2024-04-02
  • win10修复引导工具如何用
    本篇内容介绍了“win10修复引导工具如何用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win10修复引导工具怎么用步骤引导修复的命令是:...
    99+
    2023-07-01
  • ps如何使用修补工具
    这篇文章给大家分享的是有关ps如何使用修补工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 修补工具可以用其他区域或图案中的像素,来修复选中的区域,修补工具是较为精确的修复工...
    99+
    2024-04-02
  • ps修补工具如何使用
    这篇文章主要介绍“ps修补工具如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ps修补工具如何使用”文章能帮助大家解决问题。首先打开ps,打开想要修补的图片。 在电脑里找到它,点击“打开” 打...
    99+
    2023-07-02
  • linux如何校验内存使用
    ...
    99+
    2024-04-02
  • MySQL主从复制断开如何修复
    本篇文章为大家展示了MySQL主从复制断开如何修复,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。      主从复制关系断裂,有各种各样的原因。有些时候,我们没有时间去...
    99+
    2023-06-14
  • 如何使用Redis的主从复制?
    与mysql一样,redis也支持主从复制、读写分离,且配置比mysql要简单很多。下面我们来一起看看redis的主从复制。建立复制默认情况下,Redis都是主节点。现在,我来演示下如何开启主从复制。首先,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作