uu快3在线官网_uu快3神彩_总代 - uu快3在线官网,uu快3神彩,总代是新浪网最重要的频道之一,24小时滚动报道国内、国际及社会新闻。每日编发新闻数以万计。

MySQL非主从环境下数据一致性校验及修复程序

  • 时间:
  • 浏览:3

要是 需用保证相同编号的chunk,起点需用相同,要是 想到用队列,存装入 源库跑过的所有校验sql,模拟pt工具在目标库重放。考虑到要任务管理器一起去比较多个表,队列不可能 吃内存过大,于是使用了redis队列。

该python任务管理器基于2.7开发,2.6、3.x上都没人测试。使用前需用安装 MySQLdbhotqueue

里面的配置文件可不能能 认为是用于控制任务管理器的,你你这个 配置文件是指定要校验的源库和目标库信息,以及要检验哪几种表。

项目地址:https://github.com/seanlook/px-table-checksum

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

要是 就要用到分页查询,根据(自增或联合)主键、唯一索引,每次limit 50000后升序取最后第二根,作为下一批的起始。要是 多分析表上的键情形,组合查询条件。目前仅能检查有主键或唯一要是 的表。

主任务管理器,运行python px-table-checksum.py 执行一致性检查,但一定了解下面的配置文件选项。

都没人问题报告 就在于:

整体思路是借鉴pt-table-checksum,从源库批量(即chunk)取出一块数据如50000行,计算CRC32值,同样的的话在目标库运行一遍,结果都存入有俩个库,最后检查对应编号的chunk crc值否有一致。知道不一致还不行,得可不能能 快速方便的修复差异,要是 继续根据哪几种不一致的chunk,去目标库和源库找到不一致的行,是缺失,还是多余,还是被修改了,而且生成修复sql,根据指示否有自动修复。

原文链接地址:http://seanlook.com/2016/11/20/py-mysql-table-checksum-non-replicas/

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

配置选项

但为了尽不可能 减少此类问题报告 (比如主从延迟要是 可能 会),特意设计了多个redis队列,目标库多个检查任务管理器,即比如一起去指定检查8个表,源库检查会有8个任务管理器对应,但可不能能 根据表的写入情形,配置有俩个redis队列(目前是随机入列),10个目标库检查任务管理器,来减少不准确因素。

但站在我的宽度往往来说,不一致的数据会被记录下来,不可能 太满,人工核对一下;不可能 较多,就再跑一遍检查,不可能 两次需用同第二根数据不一致,那需用情形了。

DO_COMPARE: 运行模式

要是 才萌生了参考 pt-table-checksum 个人写了有俩个:px-table-checksum 。

要比较的表和选项,使用全配置化,即不通过命令行的法律法律法律依据指定(原谅命令行参数使用法律法律法律依据会额外增加代码量)。