[发明专利]主从数据库一致性的动态校验方法和装置有效
申请号: | 201310263694.3 | 申请日: | 2013-06-27 |
公开(公告)号: | CN104252481B | 公开(公告)日: | 2018-10-19 |
发明(设计)人: | 叶晖俊 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/00 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;张永明 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 主从 数据库 一致性 动态 校验 方法 装置 | ||
本申请公开了主从数据库一致性的动态校验方法和装置,其中,该方法包括:重复执行以下步骤N次,其中,N为预先设定的自然数:从主数据库中检索与差异主键列表中的主键对应的数据库记录,以得到主数据库记录集;从从数据库中检索与差异主键列表中的主键对应的数据库记录,以得到从数据库记录集;获取主数据库记录集与从数据库记录集中存在差异的数据库记录所对应的主键,将差异主键列表中的主键更新为存在差异的数据库记录所对应的主键;执行完N次步骤之后,若差异主键列表中仍有主键,则判断出主数据库与从数据库不一致,否则,则判断出主数据库与从数据库一致。本申请解决了相关技术中因为同步延迟而导致的一致性校验的结果不准确的技术问题。
技术领域
本申请涉及互联网领域,具体而言,涉及一种主从数据库一致性的动态校验方法和装置。
背景技术
MySQL是互联网行业内广泛使用的开源数据库软件。很多大型网站都在使用MySQL数据库,随着业务规模不断的增长,一台MySQL数据库已经很难支撑庞大的数据访问量。
目前,一个较为有效的解决方案就是建立MySQL主从集群,其中,从数据库(又称为备用数据库或者是备库)是主数据库(又称为主库)的完全镜像。对于写请求仅在主库上进行,读请求会均衡分布到所有的数据库上,这样就使得整个数据库集群可以提供更大容量的读写服务。如果MySQL主库接收到新增或者是变更数据,就通过同步工具,将这些新增或者是变更的数据实时同步到备库。
虽然MySQL主从同步的工具有很多种,然而由于生产环境的日益复杂,数据库故障偶有发生,MySQL Binlog也存在一些已知的Bug,不可避免的会出现主从之间数据不一致的情况。主从库的数据不一致,会大大降低整个数据库集群的可用性,同时可能会造成严重的生产故障。因此,检查主从数据的数据一致性,查找主从数据库中不一致的数据并对其进行修复就变得尤为重要。另外,在研发各类数据库主从同步工具时,快速进行数据一致性校验,查找并输出不一致数据,是数据库同步工具研发、测试中不可或缺的。
大型的互联网企业都是7*24小时不停的在线服务,对于生产线上的数据库机器,要求较为严苛。也就对主从数据库动态一致性校验提出了以下几方面的要求:
1)校验工具一般不允许在主库、从库中写入数据;
2)生产环境数据库不能停止对外服务,每秒钟都有数百数千条数据变更,甚至不能短暂的停止对外服务,即不能锁住全表;
3)生产环境流量压力大,校验工具的流量负载需要是可控的;
4)如果发现数据不一致,需要能即时进行修正,或者输出修正的数据,再转由人工操作对数据进行修复。
目前常有的数据库一致性校验工具主要有:利用Check Sum SQL语句进行静态的校验的mk-table-checksum;或利用特殊的同步方式,例如进行快照式的动态校验的Statement模式的Binlog同步。实际应用中使用较多的一般是ROW模式的Binlog,然而这些开源的数据库一致性校验工具无法定位具体是哪条数据的哪个字段不一致,更加无法完成数据修复工作。从而使得这样的开源工具无法应用于实际的生产环境,也无法应用于测试环境中定位和查找数据库同步BUG造成的数据错误。
现有技术中一般对数据的校验都是将在同一时间的主数据库和备用数据库进行比对以确定两个数据库之间的数据是否已实现同步,然而,因数据的同步一般是在主数据库发生数据更新后,主数据库再将更新的数据同步到备用数据库中,这样就导致数据同步的过程中会存在一定的延时,如果以同一时间点两个数据库之间的数据进行比对的话,往往会因为时延问题导致本该判定为一致的数据被判为不一致。例如,数据库同步的时延为1ms,然后就在这1ms内进行了一致性校验,这样就使得在这1ms内主数据库向备用数据库同步的数据未被检测到,从而会产生一个错误的判断结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310263694.3/2.html,转载请声明来源钻瓜专利网。