数据同步过程中的数据解析方法、存储介质及设备技术

技术编号:35531744 阅读:14 留言:0更新日期:2022-11-09 14:55
本发明专利技术提供了一种数据同步过程中的数据解析方法、存储介质及设备,数据解析方法包括:对串行记录的源端数据库日志进行顺序解析,获取单个事务操作;将所述事务操作分别存入其所属事务在内存中的存储区域;检测到对所述内存中的事务进行检查的触发事件;对所述内存中所有的事务进行遍历检查;判断是否存在当前生存周期超出预设最大生存周期的长事务,若是,将所述长事务从所述内存中移出;获取所述内存中最早的操作在所述数据库日志的位置,将所述位置更新为解析最低点。本申请的数据解析方法能够避免解析最低点被限制在长事务的开始操作处,从而有助于减少恢复解析时需要重复解析的数据,进而有利于提高数据处理效率。进而有利于提高数据处理效率。进而有利于提高数据处理效率。

【技术实现步骤摘要】
数据同步过程中的数据解析方法、存储介质及设备


[0001]本专利技术涉及数据库
,特别是涉及一种数据同步过程中的数据解析方法、存储介质及设备。

技术介绍

[0002]数据同步软件进行数据实时同步的过程中,需要通过分析数据库日志,获取增量数据。而对于关系型数据库来说,大量的客户端程序会同时连接数据库进行数据的增删改操作。数据库的日志系统会将针对数据库的所有操作串行的记录在数据库日志中。这就导致不同客户端产生的数据库事务,在数据库日志中是相互交叉的。对数据库日志进行解析的过程中,数据同步软件会将解析出的单个操作按照事务在内存中进行存储组装,然后将完整事务上传到目标端。所以,如果解析过程中出现异常,内存中已解析出的尚未上传的事务将会丢失。
[0003]因此,在对数据库日志进行解析的过程中,通常会在数据库日志保留一个解析最低点。解析最低点为尚未上传的事务中的最早的开始操作所在的位置。当数据同步发生异常时,可以从解析最低点所在的数据库日志位置重新进行解析,从而重新获取尚未上传的所有事务。但是,当数据库日志中存在长事务时,会使得解析最低点一直保持在长事务的开始操作处。导致每次恢复解析时,需要对大量数据进行重复解析,影响系统的处理效率。

技术实现思路

[0004]本专利技术的一个目的是要提供一种能够解决上述任一问题的数据同步过程中的数据解析方法、存储介质及设备。
[0005]本专利技术一个进一步的目的是要使得保证解析最低点更新的及时性,同时。
[0006]特别地,本专利技术提供了一种数据同步过程中的数据解析方法,包括:
[0007]对串行记录的源端数据库日志进行顺序解析,获取单个事务操作;
[0008]将所述事务操作分别存入其所属事务在内存中的存储区域;
[0009]检测到对所述内存中的事务进行检查的触发事件;
[0010]对所述内存中所有的事务进行遍历检查;
[0011]判断是否存在当前生存周期超出预设最大生存周期的长事务,若是,将所述长事务从所述内存中移出;
[0012]获取所述内存中最早的操作在所述数据库日志的位置,将所述位置更新为解析最低点。
[0013]可选地,所述获取事务的当前生存周期的步骤包括:
[0014]获取所述事务的开始操作在所述数据库日志中的生成时间,记为第一时间;
[0015]获取所述数据库日志在检测到所述触发事件时的解析位置的生成时间,记为第二时间;
[0016]将所述第一时间到所述第二时间的时间长度作为所述当前生存周期。
[0017]可选地,所述触发事件包括:
[0018]所述内存中有完整事务传输至目标端。
[0019]可选地,获取单个事务操作的步骤包括:
[0020]获取所述单个事务操作的事务号信息;
[0021]根据所述事务号信息确定所述单个事务操作所属的事务。
[0022]可选地,将所述长事务从所述内存中移出的步骤包括:
[0023]将所述长事务移至外存当中。
[0024]可选地,所述将所述长事务移至外存当中的步骤之后,包括:
[0025]在后续从所述数据库日志获取到单个事务操作之后,
[0026]判断所述单个事务操作是否属于存储在所述外存中的所述长事务,若是,将所述单个事务操作存储至所述外存中的相应存储位置;若否,将所述单个事务操作存储至所述内存中的相应存储位置。
[0027]可选地,在数据同步发生异常,重新恢复对所述数据库日志的解析之前,包括:
[0028]扫描所述外存;
[0029]判断所述外存中是否存储有长事务,若是,将所述长事务的事务号信息记录到所述内存中。
[0030]可选地,检测到对所述内存中的事务进行检查的触发事件的步骤之后包括:
[0031]将所述数据库日志在检测到所述触发事件时的解析位置作为提交最低点。
[0032]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现上述任一项中的数据同步过程中的数据解析方法。
[0033]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现上述任一项中的数据同步过程中的数据解析方法。
[0034]本专利技术的数据解析方法检测到对内存中的事务进行检查的触发事件;对所述内存中所有的事务进行遍历检查;判断是否存在当前生存周期超出预设最大生存周期的长事务,若是,将所述长事务从内存中移出;获取内存中最早的操作在数据库日志的位置,将该位置更新为解析最低点。通过对内存中的事务进行检查,而后将当前生存周期超出预设最大生存周期的事务从内存中移出。也就是说,能够将长事务先移至内存以外的存储位置进行存储,使得发生数据同步异常时,长事务不会随内存中的其他事务一样丢失。所以,使得恢复解析时不需要对长事务进行重新解析,从而使得数据库日志的解析最低点可以上移。因此,能够避免解析最低点被限制在长事务的开始操作处,从而有助于减少恢复解析时需要重复解析的数据,进而有利于提高数据处理效率。并且,长事务存储在其他存储位置,在数据库日志被清理时,有助于避免长事务前部操作的丢失。
[0035]进一步地,本专利技术的数据解析方法中的触发事件包括内存中有完整事务上传的事件。通过将内存中有完整事务上传作为触发事件,使得对内存进行检查的工作更具有随机性。避免对内存过于频繁地进行检查而影响解析效率,也有助于保证解析最低点更新的及时性。
[0036]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明
了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0037]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0038]图1是一个数据库日志解析最低点随解析变化的示意图;
[0039]图2是一个具有长事务的数据库日志的示意图;
[0040]图3是根据本专利技术一个实施例的数据解析方法的示意性流程图;
[0041]图4是根据本专利技术一个实施例的数据解析方法中获取单个事务操作步骤的示意性流程图;
[0042]图5是根据本专利技术一个实施例的数据解析方法中获取事务的当前生存周期步骤的示意性流程图;
[0043]图6是根据本专利技术一个实施例的数据解析方法中长事务移至外存当中后对数据库日志进行解析的步骤的示意性流程图;
[0044]图7是根据本专利技术一个实施例的数据解析方法中同步过程出现异常后恢复解析的步骤的示意性流程图;
[0045]图8是根据本专利技术另一个实施例的数据解析方法的示意性流程图;
[0046]图9是根据本专利技术一个实施例的机器可读存储介质的示意图;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步过程中的数据解析方法,包括:对串行记录的源端数据库日志进行顺序解析,获取单个事务操作;将所述事务操作分别存入其所属事务在内存中的存储区域;检测到对所述内存中的事务进行检查的触发事件;对所述内存中所有的事务进行遍历检查;判断是否存在当前生存周期超出预设最大生存周期的长事务,若是,将所述长事务从所述内存中移出;获取所述内存中最早的操作在所述数据库日志的位置,将所述位置更新为解析最低点。2.根据权利要求1所述的数据同步过程中的数据解析方法,其中,所述获取事务的当前生存周期的步骤包括:获取所述事务的开始操作在所述数据库日志中的生成时间,记为第一时间;获取所述数据库日志在检测到所述触发事件时的解析位置的生成时间,记为第二时间;将所述第一时间到所述第二时间的时间长度作为所述当前生存周期。3.根据权利要求1所述的数据同步过程中的数据解析方法,其中,所述触发事件包括:所述内存中有完整事务传输至目标端。4.根据权利要求1所述的数据同步过程中的数据解析方法,其中,获取单个事务操作的步骤包括:获取所述单个事务操作的事务号信息;根据所述事务号信息确定所述单个事务操作所属的事务。5.根据权利要求1所述的数据同步过程中的数据解析方法,其中,将所述长事务从所述内存中移出的步骤包括:将所述长事务移至外...

【专利技术属性】
技术研发人员:王凯龙
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1