数据库的一致性校验方法、装置、电子设备和存储介质制造方法及图纸

技术编号:38717890 阅读:12 留言:0更新日期:2023-09-08 15:00
本公开提供了一种数据库的一致性校验方法、装置、电子设备和计算机可读存储介质,涉及数据库领域。其中,数据库的一致性校验方法包括:响应于校验指令,基于校验和算法对第一备库和第二备库分别执行校验操作,其中,对第一备库基于校验操作生成参照码,对第二备库基于校验操作生成校验码;基于参照码与校验码的比较结果确定第一备库与第二备库之间的一致性;基于第一备库与第二备库之间的一致性确定主库与备库之间的一致性。通过本公开的技术方案,能够在保证主库业务正常运行的情况下进行一致性校验,有利于降低对数据库的侵入的概率,进而保证了数据库的高可用性和强一致性。进而保证了数据库的高可用性和强一致性。进而保证了数据库的高可用性和强一致性。

【技术实现步骤摘要】
数据库的一致性校验方法、装置、电子设备和存储介质


[0001]本公开涉及数据库
,尤其涉及一种数据库的一致性校验方法、装置、电子设备和计算机可读存储介质。

技术介绍

[0002]目前平台MySQL数据库实例间数据同步都采用了逻辑复制,而基于逻辑SQL语句或逻辑行的复制无法保证主库、备库间数据完全一致,比如在产生人为误操作时或者服务器故障后恢复之后,都可能出现主库、备库之间数据不一致。因此需要定期的检查主备数据,及时发现不一致的问题并第一时间修复。
[0003]相关技术中,采用pt

table

checksum作为校验主从一致性的工具,pt

table

checksum运行在主库上,使用crc32算法来进行数据库的一致性校验,依赖statement接口得出主从是否一致的结果,以及需要将校验配置信息与核对结果写入生产数据库,该方案目前存在以下缺陷:
[0004]statement接口的调用以及数据的写入均对数据库具有侵入性,另外,如果主库与备库之间复制异常,校验工具也无法正常运行。
[0005]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0006]本公开的目的在于提供一种数据库的一致性校验方法、数据库的一致性校验装置、电子设备和计算机可读存储介质,至少在一定程度上克服相关技术中的校验方式存在对数据库的侵入性的问题。
[0007]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0008]根据本公开的一个方面,提供一种数据库的一致性校验方法,所述数据库包括主库与所述主库的备库,所述备库包括第一备库与第二备库,包括:响应于校验指令,基于校验和算法对所述第一备库和所述第二备库分别执行校验操作,其中,对所述第一备库基于所述校验操作生成参照码,对所述第二备库基于所述校验操作生成校验码;基于所述参照码与所述校验码的比较结果确定所述第一备库与所述第二备库之间的一致性;基于所述第一备库与所述第二备库之间的一致性确定所述主库与所述备库之间的一致性。
[0009]在一个实施例中,所述校验操作包括首次校验操作,所述基于校验和算法对所述第一备库和所述第二备库分别执行校验操作,具体包括:在对所述第一备库执行所述首次校验操作时,遍历所述第一备库中的所有第一数据表,并计算所述第一备库中的所有第一数据表的校验总和,作为初始参照码;在对所述第二备库执行所述首次校验操作时,遍历所述第二备库中的所有第二数据表,并计算所述第二备库中的所有第二数据表的校验总和,作为初始校验码。
[0010]在一个实施例中,所述校验操作还包括再次校验操作,所述基于校验和算法对所述第一备库和所述第二备库分别执行校验操作,具体还包括:在检测到所述初始参照码与所述初始校验码不一致时,基于所述比较结果查询所述初始参照码与所述初始校验码中不一致的比特值字段;基于所述不一致的比特值字段确定所有所述第一数据表中需要再次验证的参照数据表,以及所有所述第二数据表中需要再次验证的验证数据表;对所述参照数据表和所述验证数据表执行所述再次校验操作。
[0011]在一个实施例中,所述对所述参照数据表和所述验证数据表执行所述再次校验操作,具体包括:基于预设更新频率更新所述参照数据表的校验总和,作为更新参照码;以及基于所述更新频率更新所述验证数据表的校验总和,作为更新校验码;所述基于所述参照码与所述校验码的比较结果确定所述第一备库与所述第二备库之间的一致性,具体包括:在每次更新完毕后,比较所述更新参照码与所述更新校验码;在更新次数小于第一次数阈值,检测到所述更新参照码与所述更新校验码一致时,确定所述第一备库与所述第二备库一致;在检测到所述更新次数大于或等于所述第一次数阈值,并小于或等于第二次数阈值时,所述更新参照码与所述更新校验码仍不一致,确定所述第一备库与所述第二备库不一致,所述第二次数阈值大于或等于所述第一次数阈值。
[0012]在一个实施例中,在基于校验和算法对所述第一备库和所述第二备库分别执行校验操作之前,还包括:检测所述第一备库和所述第二备库的状态是否正常;在检测到所述第一备库和/或所述第二备库的状态异常时,不执行所述校验操作,并生成异常信息。
[0013]在一个实施例中,在基于校验和算法对所述第一备库和所述第二备库分别执行校验操作之前,还包括:在检测到所述备库运行对所述主库进行复制操作的复制线程时,统计所述复制线程的运行频次;在检测到所述运行频次高于或等于频次阈值时,暂停所述备库的复制线程,以使所述第一备库和所述第二备库的数据在执行所述校验操作的过程中保持静态。
[0014]在一个实施例中,所述在基于校验和算法对所述第一备库和所述第二备库分别执行校验操作之前,还包括:获取所述数据库的元数据;基于所述元数据生成所述数据库的配置表;基于所述配置表从所述备库中确定所述第一备库和所述第二备库,以对所述第一备库基于所述校验操作生成所述参照码,对所述第二备库基于所述校验操作生成所述校验码。
[0015]根据本公开的另一个方面,提供一种数据库的一致性校验装置,用于实现上述任意一项实施例所述的数据库的一致性校验方法。
[0016]根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的数据库的一致性校验方法。
[0017]根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项的数据库的一致性校验方法。
[0018]本公开的实施例所提供的数据库的一致性校验方案,通过向第一备库与第二备库发送校验指令,以触发第一备库与第二备库执行校验和计算,并得到第一备库对应的参照码,以及第二备库的校验码,以通过比较参照码与校验码是否一致来确定第一备库与第二备库的一致性,进而根据第一备库与第二备库的一致性确定主备库之间的一致性,通过校
验和计算的方式生成备库之间的比较对象,能够降低对数据库的侵入性,进而降低数据库异常运行的概率,并且通过定期进行一致性校验,及时发现MySQL逻辑复制场景数据不一致的情况,以尽快处理,能够保证数据库的高可用性和强一致性。
[0019]另外,采用两个备库进行一致性的比较的方式,一方面,保证了主库的正常运行,另一方面,在实现主备库之间的一致性校验的同时,也实现了多个备库之间的一致性校验,因此灵活性更高,再一方面,在主库与备库之间复制出现异常时,仍能够保证校验操作的正常执行,从而保证了校验操作的可靠性。
[0020]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0021]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的一致性校验方法,其特征在于,所述数据库包括主库与所述主库的备库,所述备库包括第一备库与至少一个第二备库,所述方法包括:响应于校验指令,基于校验和算法对所述第一备库和所述第二备库分别执行校验操作,其中,对所述第一备库基于所述校验操作生成参照码,对所述第二备库基于所述校验操作生成校验码;基于所述参照码与所述校验码的比较结果确定所述第一备库与所述第二备库之间的一致性;基于所述第一备库与所述第二备库之间的一致性确定所述主库与所述备库之间的一致性。2.根据权利要求1所述的数据库的一致性校验方法,其特征在于,所述校验操作包括首次校验操作,所述基于校验和算法对所述第一备库和所述第二备库分别执行校验操作,具体包括:在对所述第一备库执行所述首次校验操作时,遍历所述第一备库中的所有第一数据表,并计算所述第一备库中的所有第一数据表的校验总和,作为初始参照码;在对所述第二备库执行所述首次校验操作时,遍历所述第二备库中的所有第二数据表,并计算所述第二备库中的所有第二数据表的校验总和,作为初始校验码。3.根据权利要求2所述的数据库的一致性校验方法,其特征在于,所述校验操作还包括再次校验操作,所述基于校验和算法对所述第一备库和所述第二备库分别执行校验操作,具体还包括:在检测到所述初始参照码与所述初始校验码不一致时,基于所述比较结果查询所述初始参照码与所述初始校验码中不一致的比特值字段;基于所述不一致的比特值字段确定所有所述第一数据表中需要再次验证的参照数据表,以及所有所述第二数据表中需要再次验证的验证数据表;对所述参照数据表和所述验证数据表执行所述再次校验操作。4.根据权利要求3所述的数据库的一致性校验方法,其特征在于,所述对所述参照数据表和所述验证数据表执行所述再次校验操作,具体包括:基于预设更新频率更新所述参照数据表的校验总和,作为更新参照码;以及基于所述更新频率更新所述验证数据表的校验总和,作为更新校验码;所述基于所述参照码与所述校验码的比较结果确定所述第一备库与所述第二备库之间的一致性,具体包括:在每次更新完毕后,比较所述更新参照码与所述更新校验码...

【专利技术属性】
技术研发人员:余星董俊峰强群力刘超千赵彤张文凌周欢王鹏韦鹏程朱绍辉陈飞姚文龙高超蒋旭徐国强
申请(专利权)人:网联清算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1