【技术实现步骤摘要】
一种事务型数据库之间巨大事务增量同步方法
[0001]本专利技术属于OLTP数据库领域同构数据库或异构数据库之间增量同步
,尤其是涉及一种事务型数据库之间巨大事务增量同步方法。
技术介绍
[0002]随着国产数据库市场的发展与成熟,企业在信息化建设过程中交易系统的数据库选择更加丰富,在一个企业中不同的信息化系统往往存在多套不同的数据库。随着企业信息化系统的发展,这些数据库之间的数据逐渐产生相互之间同步需求。OLTP数据库都有逻辑日志,这类数据库的增量同步为了减少对用户应用系统的入侵往往都采用基于解析逻辑日志获取增量的方式实现两个数据库之间的数据的增量同步,逻辑日志中记录的源库发生所有的动作,这里面包含事务开始操作,数据操作,提交/回滚操作,而且源库的操作往往是多个用户并发操作,所以逻辑日志中记录的操作往往也是多个事务的交叉串行记录,解析逻辑日志的过程中,需要还原事务与在源库的所有操作集合以及最终的提交顺序,在遇到源库发生全表更新,或者批量插入,批量更新的的巨大事务的情况,一条简单的批量update或者全表update会被序列化为几十万甚至上千万的记录,这样的事务在同步过程中,解析逻辑日志还原事务的过程中就会耗费非常巨大的内存,即使有足够大的内存向目标库一次性写入也会存在断点续传代价高,效率等问题,本专利技术主要是解决该场景面临的内存和断点续传代价高以及效率问题。
[0003]本专利技术通过一种能够按照设定阈值在内存与外存透明切换的容器设计并且结合事务拆分等技术解决巨大事务同步过程中内存、断点续传代价高及 ...
【技术保护点】
【技术特征摘要】
1.一种事务型数据库之间巨大事务增量同步方法,其特征在于包括以下步骤:S1、日志流式挖掘模块将业务系统数据库中的逻辑日志进行流式解析,得到重做SQL,并将所述重做SQL交给事务还原模块进行事务还原;S2、初始化事务还原模块的事务缓存Map;S3、所述事务还原模块接收到重做SQL后放入到自身所属事务缓存列表容器中进行缓存,同时,需要判断所述事务缓存Map中是否有存在本重做SQL对应的自身所属事务的缓存列表容器,若有,则调用本列表容器的记录接口并存入,若没有,则新建列表容器并放入事务缓存Map后,把本重做SQL存入新建的列表容器;直到事务还原模块接收到丢弃或保存语句后,标识重做SQL的事务还原完毕;S4、设定拆分事务大小阈值,并判断步骤S3中所述事务还原模块中还原的重做SQL的事务是否需要拆分,事务的重做SQL条数或者占用空间大小达到设定阈值后,把重做SQL的事务拆分多个小事务,并对每个小事务进行重新计算,发送给数据投递模块;若未达到阈值则直接发送给数据投递模块;S5、数据投递模块将接收的事务重做SQL至目标数据库,目标数据库每执行每一个事务的重做SQL后,并记在目标库成功执行的事务对应的逻辑日志点,如果是拆分的小事务并记录当前小事务对应逻辑日志点,以及最后一条重做SQL对应的全局唯一的sequence号。2.根据权利要求1所述的一种事务型数据库之间巨大事务增量同步方法,其特征在于:步骤S1中日志流式挖掘模块进行逻辑日志解析时,需要先检查断点续传信息存储模块是否记录了断点续传信息;断点续传信息包括:最后一次成功同步的对应逻辑日志点,以及最后一条重做SQL对应的全局唯一的sequence号;若存储有;使断点续传信息存储模块记录的逻辑日志点作为起始点开始逻辑日志的解析;若存储没有,则从业务系统数据库中逻辑日志的初始位置开始解析日志。3.根据权利要求2所述的一种事务型数据库之间巨大事务增量同步方法,其特征在于:所述步骤S2中事务还原缓存Map为内存与外存透明切换的列表容器;内存与外存透明切换的列表容器的设计方法如下:S21、根据用户设定的内存与外存透明切换的列表容器最大占用内存大小或者记录条数,初始化一个列表容器,并设置当前条数为0,大小为0,并初始化列表内存区域;S22、内存与外存透明切换的列表容器添加记录接口,当添加记录接口被调用时,内存与外存透明切换的列表容器检查本容器内已经存储的元数据条数和占用内存大小是否超过初始化时设定的阈值,如果没有超过阈值则存放在内存中;如果超过了阈值,本条记录按照规定格式存储到外存中;并更新内存与外存透明切换的列表容器缓存的记录条数和占用内存大小;S23、内存与外存透明切换的列表容器获取并记录接口,当获取记录接口被调用时,根据传入的偏移量,先判断改偏移量对应的记录是在内存还是在外存中,如果在内存中则直接返回数据,如果在外存,则把根据偏移量在外存中数据读取对应的记录到内存中,并返回记录;S24、内存与外存透明切换的列表容器具备获取元数据信息方法,本方法可以提供容器总记录条数,占用内存大小;
S25、内存与外存透明切换的列表容器具备容器销毁方法,本方法被调用时,检查被销毁容器是否使用到外部存储,如果使用到,则删除...
【专利技术属性】
技术研发人员:赵伟,田志敏,
申请(专利权)人:天津南大通用数据技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。