一种基于数据库同步的数据校验方法及数据校验系统技术方案

技术编号:24683640 阅读:34 留言:0更新日期:2020-06-27 08:02
本申请提供了一种基于数据库同步的数据校验方法及数据校验系统,适用于数据校验技术领域,该方法包括:利用第三方的校验服务器以固定周期向主备服务器发送校验指令,并由主备服务器基于主备数据库内各条数据的最新修改时间来确定出所需校验的数据,再由校验服务器确定出主备服务器之间对应所需比对的数据并发送对应的查询指令,由主备服务器根据查询指令来确定出所需比对的数据并发送至校验服务器,最后由校验服务器来对所有的数据进行比对,判断实数据同步是否成功。本申请实施例极大地减小了对主服务器的性能影响,均衡了整个校验的处理任务量,提高了校验的效率。

A data verification method and system based on database synchronization

【技术实现步骤摘要】
一种基于数据库同步的数据校验方法及数据校验系统
本申请属于数据校验
,尤其涉及基于数据库同步的数据校验方法及数据校验系统。
技术介绍
MySQL主数据库和备用数据库分别安装于主服务器和备用服务器,在高并发架构中,主备数据库之间的同步是不可或缺的,不过由于网络延迟或者操作错误等原因,经常会出现主备数据库不同步的情况,为了保障主备服务器的正常使用,如何有效地对主备数据库之间的数据进行一致性校验,以判断主备数据库是否同步成功,成为了亟待解决的问题。为了实现对主备数据库的数据一致性校验,相关技术都是根据主备服务器自身记录的同步日志来判断是否需要进行数据一致性校验,并在需要进行校验时,由主服务器和备用服务器对各自数据库储存的数据进行数据校验值计算,再由主服务器对两个数据校验值进行比对判断主备数据库的数据是否一致,这样虽然可以实现对主备数据库的数据一致性校验,但对主数据库的性能影响极大,且效率和可靠性均较低。
技术实现思路
有鉴于此,本申请实施例提供了一种基于数据库同步的数据校验方法及终端设备,可以解决主备数据库数据一致性校验时,校验效率和可靠性较低的问题。本申请实施例的第一方面提供了一种基于数据库同步的数据校验方法,包括:主服务器在主数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;备用服务器在备用数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;校验服务器以第一时间间隔同步向所述主服务器和所述备用服务器发送校验指令;若所述主服务器接收到校验指令,将所述主数据库中第一字段值属于第一时间段的第一数据发送至所述校验服务器;若所述备用服务器接收到校验指令,将所述备用数据库中第一字段值属于所述第一时间段的第二数据发送至所述校验服务器;所述校验服务器,生成所述第一数据对应的第一查询指令并发送至所述备用服务器,生成所述第二数据对应的第二查询指令并发送至所述主服务器;所述备用服务器将所述备用数据库中所述第一查询指令指向的第三数据发送至所述校验服务器;所述主服务器将所述主数据库中所述第二查询指令指向的第四数据发送至所述校验服务器;若所述校验服务器检测出所述第一数据和所述第三数据相同,且所述第二数据和所述第四数据相同,判定所述主数据库和所述备用数据库同步成功。本申请实施例的第一方面提供了一种数据校验系统,包括:主服务器、备用服务器以及校验服务器;所述主服务器用于,当主数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;所述备用服务器用于,当备用数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;所述校验服务器用于,以第一时间间隔同步向所述主服务器和所述备用服务器发送校验指令;所述主服务器还用于,若接收到校验指令,将所述主数据库中第一字段值属于第一时间段的第一数据发送至所述校验服务器;所述备用服务器还用于,若接收到校验指令,将所述备用数据库中第一字段值属于所述第一时间段的第二数据发送至所述校验服务器;所述校验服务器还用于,生成所述第一数据对应的第一查询指令并发送至所述备用服务器,生成所述第二数据对应的第二查询指令并发送至所述主服务器;所述备用服务器还用于,将所述备用数据库中所述第一查询指令指向的第三数据发送至所述校验服务器;所述主服务器还用于,将所述主数据库中所述第二查询指令指向的第四数据发送至所述校验服务器;所述校验服务器还用于,当检测出所述第一数据和所述第三数据相同,且所述第二数据和所述第四数据相同时,判定所述主数据库和所述备用数据库同步成功。本申请实施例与现有技术相比存在的有益效果是:利用第三方的校验服务器以固定周期向主备服务器发送校验指令,并由主备服务器基于主备数据库内各条数据的最新修改时间来确定出所需校验的数据,再由校验服务器确定出主备服务器之间对应所需比对的数据并发送对应的查询指令,由主备服务器根据查询指令来确定出所需比对的数据并发送至校验服务器,最后由校验服务器来对所有的数据进行比对,判断实数据同步是否成功。由于整个校验过程是由校验服务器主动周期发起的,相对主备服务器被动地根据同步日志信息来决定何时进行校验而言更为准确可靠,同时整个校验的过程中,由校验服务器完成具体的数据比对等运算操作,主服务器只需要进行简单的数据更新时刻记录和数据查找输出操作,极大地减小了对主服务器的性能影响,均衡了整个校验的处理任务量,提高了校验的效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例一提供的基于数据库同步的数据校验方法的实现流程示意图;图2是本申请实施例二提供的基于数据库同步的数据校验方法的实现流程示意图;图3是本申请实施例三提供的基于数据库同步的数据校验方法的实现流程示意图;图4是本申请实施例四提供的数据校验系统的系统交互图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。为了便于理解本申请,此处先对本申请实施例进行简要说明,由于相关技术中主备服务器都会本地储存一个同步日志,用于记录对应主备数据库的同步时间,并由主服务器定时检测两个服务器的同步日志是否相同,若相同则认为主备数据库同步成功,若不相同,则需要主备服务器对各自数据库储存的数据进行数据校验值计算,再由主服务器对两个数据校验值进行比对判断主备数据库的数据是否一致,但实际情况中发现,一方面,同步日志都是对历史同步情况的记录,实时性极差,无法真实反映主备数据库的实时同步情况,另一方面,同步日志本身并不能反映实际主备数据库的数据一致性情况,当实际选用的主备数据库同步方法不可靠时,会直接导致后续一致性校验结果的不可靠,因此基于同步日志的一致性校验方法可靠性极低,另外,在同步日志不相同时,主备服务器都需要进行数据校验值的计算,对于高并发的实际应用场景而言,高频率的数据校验值计算,过程耗时长耗费资源多,这无疑会给主服务器带来极大的工作负荷,影响主数据库的性能,因此相关的主备数据库数据一致性校验方法效率和可靠性均较低,且影响主数据库的性能。为了提高主备数据库数据一致性校验方法的效率和可靠,在本申请实施例中,预先会设置一个第三方的校验服务器,负责对主备数据库进行数据一致性校验,判断主备数据库是否同步成功。其中,校验服务器会以固定周期向主备服务器发本文档来自技高网...

【技术保护点】
1.一种基于数据库同步的数据校验方法,其特征在于,包括:/n主服务器在主数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;/n备用服务器在备用数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;/n校验服务器以第一时间间隔同步向所述主服务器和所述备用服务器发送校验指令;/n若所述主服务器接收到校验指令,将所述主数据库中第一字段值属于第一时间段的第一数据发送至所述校验服务器;/n若所述备用服务器接收到校验指令,将所述备用数据库中第一字段值属于所述第一时间段的第二数据发送至所述校验服务器;/n所述校验服务器,生成所述第一数据对应的第一查询指令并发送至所述备用服务器,生成所述第二数据对应的第二查询指令并发送至所述主服务器;/n所述备用服务器将所述备用数据库中所述第一查询指令指向的第三数据发送至所述校验服务器;/n所述主服务器将所述主数据库中所述第二查询指令指向的第四数据发送至所述校验服务器;/n若所述校验服务器检测出所述第一数据和所述第三数据相同,且所述第二数据和所述第四数据相同,判定所述主数据库和所述备用数据库同步成功。/n

【技术特征摘要】
1.一种基于数据库同步的数据校验方法,其特征在于,包括:
主服务器在主数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;
备用服务器在备用数据库内的数据发生变化时,将数据的第一字段值更新为数据变化的时刻;
校验服务器以第一时间间隔同步向所述主服务器和所述备用服务器发送校验指令;
若所述主服务器接收到校验指令,将所述主数据库中第一字段值属于第一时间段的第一数据发送至所述校验服务器;
若所述备用服务器接收到校验指令,将所述备用数据库中第一字段值属于所述第一时间段的第二数据发送至所述校验服务器;
所述校验服务器,生成所述第一数据对应的第一查询指令并发送至所述备用服务器,生成所述第二数据对应的第二查询指令并发送至所述主服务器;
所述备用服务器将所述备用数据库中所述第一查询指令指向的第三数据发送至所述校验服务器;
所述主服务器将所述主数据库中所述第二查询指令指向的第四数据发送至所述校验服务器;
若所述校验服务器检测出所述第一数据和所述第三数据相同,且所述第二数据和所述第四数据相同,判定所述主数据库和所述备用数据库同步成功。


2.如权利要求1所述的基于数据库同步的数据校验方法,其特征在于,校验指令中包含自身的指令发送时刻数据,所述第一时间段的起始时刻为所述主服务器上一次接收到的校验指令中的指令发送时刻,终止时刻为所述主服务器此次接收到的校验指令中的指令发送时刻。


3.如权利要求所述的基于数据库同步的数据校验方法,其特征在于,所述主服务器在将数据的第一字段值更新为数据变化的时刻之前,还包括:
所述主服务器在所述主数据库内的每个数据表中插入一列第一字段;
所述备用服务器在将数据的第一字段值更新为数据变化的时刻之前,还包括:
所述备用服务器在所述备用数据库内的每个数据表中插入一列第一字段。


4.如权利要求1至3任意一项所述的基于数据库同步的数据校验方法,其特征在于,还包括:
若所述主服务器接收到对所述主数据库内数据的第一删除请求,对所述第一删除请求对应的数据添加删除标识,并判定所述第一删除请求对应的数据发生了变化;
若所述备用服务器接收到对所述备用数据库内数据的第二删除请求,对所述第二删除请求对应的数据添加删除标识,并判定所述第二删除请求对应的数据发生了变化。


5.如权利要求1至3任意一项所述的基于数据库同步的数据校验方法,其特征在于,还包括:
所述主服务器统计第二时间段内所述主数据库的数据变化量,并获取第一时刻对应的调整系数,其中,所述第一时刻为开始统计所述数据变化量的时刻,所述第二时间段的终止时刻为所述第一时刻;
所述主服务器根据所述调整系数对所述数据变化量进行处理,得到第三时间段对应的数据变化预测量,所述第三时间段的起始时刻为所述第一时刻或者晚于所述第一时刻;
所述主服务器获取所述数据变化预测量和所述第三时间段对应的校验间隔时长,并将所述校验间隔时长发送至所述校验服务器;
所述校验服务器在接收到所述校验间隔时长时,将所述第一时间间隔的值更新为所述校验间隔时长。


6.如权利要求5所述的基于数据库同步的数据校验方法,其特征在于,还包括:
所述主服务器获取所述第三时间段对应的用户活...

【专利技术属性】
技术研发人员:姬文燕
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:广东;44

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

1