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

本文主要向您展示如何使用pt工具来验证和修复主从。内容简单易懂,条理清晰,希望能帮你解开疑惑。让边肖带领大家学习《如何使用pt工具验证修复主从》一文。 00-1010 使用pt工具校验主从一致性并修复

pt-table-校验和是Percona-Toolkit。 用于检测MySQL主从库的数据是否一致。原理是在主库中执行基于语句的sql语句,生成主库中数据块的校验和,将相同的sql语句转移到从库中执行,计算从库中相同数据块的校验和。最后,比较主从库中相同数据块的校验和值,判断主从数据是否一致。在检测过程中,根据唯一索引将表分成组块,以单位计算,可以避免锁定表。测试时会自动确定复制延迟, Master的负载,超过阈值后,会自动暂停检测,减少对在线服务的影响。 默认情况下,Pt-table-checksum可以处理大多数情况。官方表示,即使有数千个库和数万亿行,它仍然可以很好地工作。这是因为设计简单,一次检查一个表不需要太多内存和冗余操作。必要时,pt-table-checksum将根据服务器负载动态改变块大小,从而减少来自库的延迟。 为了减少对数据库的干预,pt-table-checksum也会自动检测并连接到从库。当然,如果失败了,您可以指定-recurse-method选项来告诉从库在哪里。它的易用性还体现在这样一个事实上,如果复制有延迟,它将从库中复制。 校验和将被暂停,直到它赶上主库的计算时间点(也通过选项-设置最大容许延迟值,这被认为是不一致的)。 为了确保主数据库服务的安全性,该工具实施了许多保护措施: 1)自动将innodb_lock_wait_timeout设置为1s,以避免引起锁定。 2)默认情况下,当数据库中并发查询超过25个时,pt-table-checksum将被挂起。您可以设置- max-load选项来设置此阈值。 3)使用时。 在Ctrl停止任务后,该工具通常会完成当前的块检测,下次您开始使用- resume选项时,您可以恢复下一个。 矮胖的人或物 【工作过程】 连接到主库:pt工具连接到主库,然后自动发现主库的所有从库。默认情况下,显示从属主机用于查找从属库,但这仅在主实例和从属实例的端口相同时有效。 了解主库或从库是否有复制筛选规则:默认情况下,为安全起见,此选项处于选中状态。您可以关闭此检查,但这可能会导致校验和的sql语句不与从库同步,或者从库会发现从库中没有要检查的表,这将导致从库同步卡库。 3.开始获取表格,并逐一计算。 如果它是表的第一个块,那么块大小一般是1000;如果它不是表的第一个块,则采用在12个步骤中分离的结果。 5.检查表结构,执行数据类型转换等。并生成校验和的sql语句。 6.根据表上的索引和数据分布,选择最适合的拆分表的方法。 7.启动校验和表。 8.默认情况下,在分块一个表之前,删除上次与该表相关的计算结果。除非-继续。 根据解释的结果,判断组块的大小是否超过你定义的组块大小上限。如果超过,将忽略该区块,以免影响在线性能。 10.为要校验和的行添加更新锁,并计算。 11.将计算结果存储在master_crc master_count列中。 12.调整下一个块的大小。 等待从库赶上主库。如果没有延迟备份的从库在运行,最好检查所有从库。如果发现延迟最大的从库的延迟超过最大延迟秒,pt工具将在此暂停。 14.如果发现主库的最大负载超过某个阈值,pt工具将在此暂停。 15.继续下一个块,直到表被分块。 16.等待校验和的执行 如果pt工具使用不当,会影响业务的正常使用,甚至死亡。

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

锁情况,下面结合生产经验,使用如下参数进行校验

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