MySQL非主从环境下数据一致性校验

文章探讨了在没有主从关系的MySQL环境中,如何进行数据一致性校验和修复,特别是面对阿里云RDS迁移、字符集转换等场景。pt-table-checksum工具在这种情况下可能不适用,因为它依赖binlog。文章提出了在特殊需求下,如批量数据迁移和字符集变更时,数据一致性校验的挑战以及pt-tool的局限性。
摘要由CSDN通过智能技术生成

GitHub - seanlook/px-table-checksum: MySQL非主从环境下数据一致性校验及修复程序

主从环境下数据一致性校验经常会用 pt-table-checksum 工具,它的原理及实施过程之前写过一篇文章:生产环境使用 pt-table-checksum 检查MySQL数据一致性。但是DBA工作中还会有些针对两个表检查是否一致,而这两个表之间并没有主从关系,pt工具是基于binlog把在主库进行的检查动作,在从库重放一遍,此时就不适用了。

总会有这样特殊的需求,比如从阿里云RDS实例迁移到自建mysql实例,它的数据传输服务实现方式是基于表的批量数据提取,加上binlog订阅,但强制row模式会导致pt-table-checksum没有权限把会话临时改成statement。另一种需求是,整库进行字符集转换:库表定义都是utf8,但应用连接使用了默认的 latin1,要将连接字符集和表字符集统一起来,只能以latin1导出数据,再以utf8导入,这种情况数据一致性校验,且不说binlog解析程序不支持statement(如canal),新旧库本身内容不同,pt-table-checksum 算出的校验值也会不一样,失效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值