一种数据同步全量数据断点续传的方法和装置制造方法及图纸

技术编号:39434660 阅读:8 留言:0更新日期:2023-11-19 16:18
本发明专利技术属于数据库数据同步领域,涉及一种数据同步全量数据断点续传的方法和装置,包括对待装载表进行分组得到分组信息,将分组信息分别保存至源端和目标端,在源端与目标端之间建立连接,根据分组信息进行分组数据装载,根据所述分组数据装载的结果更新所述分组信息,根据更新后的分组信息来更新所述待装载表的初始装载状态,当分组数据装载过程中发生故障时,根据更新后待装载表的装载状态来确定是否需要续装,如是,再根据需要续装的表中每个分组的装载状态来确定需要进行续装的分组,通过分组以达到减少单次装载的数据量,在故障以后,只需要对装载出错的分组进行续装,分组的数据量则减小了很多,从而降低了故障恢复的代价。价。价。

【技术实现步骤摘要】
一种数据同步全量数据断点续传的方法和装置


[0001]本专利技术属于数据库数据同步领域,更具体地,涉及一种数据同步全量数据断点续传的方法和装置。

技术介绍

[0002]目前基于数据库日志分析的异构数据库复制技术应用广泛,这种技术在源端捕获出数据库的增量数据,然后发送到目的端,在目的端通过通用的数据库访问接口,将增量数据应用到目标数据库,实现数据复制,这种技术因为使用到通用数据库接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且目的端备机数据库系统可读写,是一种“双活”系统。
[0003]在搭建数据同步系统时,目的端数据库往往是个空库,需要把源端数据库中的全量数据同步到目的端数据库后才能开启增量数据的同步,全量数据同步这个过程称为初始化装载,如果源端数据库中的某个表数据量庞大,那该表的全量数据同步时间会相当的长,如果中途发生意外造成同步服务的宕机,或是其它原因导致的同步出错,则需要把目标端数据库中同步出错的表清理掉以后对该表重新进行全量数据的同步,这对整个同步系统的稳定性和可靠性有非常高的要求,如果当前系统本身又是生产系统,常常有不可控的外部环境因素导致初始化装载出错。
[0004]因此,如何降低初始化装载对同步环境稳定性的需求,以较低的代价处理初始化装载中发生的错误,把源端数据库中的全量数据同步到目的端数据库就成为业界亟待解决的重要技术问题。

技术实现思路

[0005]本专利技术需要解决的技术问题是:如何降低初始化装载对同步环境稳定性的需求,以较低的代价处理初始化装载中发生的错误,把源端数据库中的全量数据同步到目的端数据库。
[0006]本专利技术是通过如下技术方案达到上述目的:
[0007]第一方面,提供了一种数据同步全量数据断点续传的方法,包括:
[0008]在初始化装载时为待装载表设置初始装载状态;
[0009]对所述待装载表进行分组得到分组信息,将所述分组信息分别保存至源端和目标端;
[0010]在所述源端与所述目标端之间建立连接,根据所述分组信息进行分组数据装载;
[0011]根据所述分组数据装载的结果更新所述分组信息,根据更新后的分组信息来更新所述待装载表的初始装载状态;
[0012]当所述分组数据装载过程中发生故障时,根据更新后待装载表的装载状态来确定是否需要续装,如是,再根据需要续装的表中每个分组的装载状态来确定需要进行续装的分组。
[0013]优选的,所述在初始化装载时为待装载表设置初始装载状态,包括:
[0014]通过设置STATE1来表示待装载表的装载状态,当所述待装载表的STATE1值为1时代表装载成功,当所述待装载表的STATE1值为0时代表装载失败,在初始化装载时待装载表的STATE1值均保存为0。
[0015]优选的,所述对所述待装载表进行分组得到分组信息,将所述分组信息分别保存至源端和目标端,包括:
[0016]所述分组信息包括STATE2,所述STATE2表示每个分组的装载状态,当所述STATE2为1时代表装载成功,所述STATE2为0时代表装载失败,初始时每个分组STATE2的值均保存为0;
[0017]创建源端辅助表和目标端辅助表,将所述分组信息分别保存至所述源端辅助表和所述目标端辅助表。
[0018]优选的,所述在所述源端与所述目标端之间建立连接,根据所述分组信息进行分组数据装载,包括:
[0019]所述源端根据所述源端辅助表为每个分组创建一个装载线程,所述装载线程分别与所述目标端的执行线程建立连接;
[0020]所述源端根据所述源端辅助表将整个分组作为单个事务投递到所述目标端的执行线程。
[0021]优选的,所述源端根据所述源端辅助表将整个分组作为单个事务投递到所述目标端的执行线程,包括:
[0022]所述目标端通过所述执行线程对所述单个事务执行入库;
[0023]当装载程序异常时,所述目标端会自动回滚未提交的单个事务;
[0024]在对所述单个事务的成功入库操作提交前,所述目标端会将所述目标端辅助表中该分组信息的所述STATE2的值更新为1,然后提交。
[0025]优选的,所述根据所述分组数据装载的结果更新所述分组信息,根据更新后的分组信息来更新所述待装载表的初始装载状态,包括:
[0026]当所述源端将整个分组投递到所述目标端的执行线程完成后,所述目标端通过检查该分组在所述目标端辅助表中的STATE2的值来判断该分组是否完成入库;
[0027]所述源端接收所述目标端返回的结果,如完成入库,则更新所述源端辅助表中的STATE2为1,如未完成入库,则跳过STATE2为1的分组,再检查未完成入库的分组;
[0028]当一个表的所有分组都入库成功,则将初始化装载时为待装载表设置初始装载状态中的STATE1更新为1,表示该表完成分组数据装载。
[0029]优选的,当所述分组数据装载过程中发生故障时,根据更新后待装载表的装载状态来确定是否需要续装,如是,再根据需要续装的表中每个分组的装载状态来确定需要进行续装的分组,包括:
[0030]根据每个表更新后的初始装载状态,对STATE1值为0即未完成入库的表进行续装;
[0031]在STATE1值为0即未完成入库的表中,对其分组信息中的STATE2值为0的分组进行续装。
[0032]优选的,所述在STATE1值为0即未完成入库的表中,对分组信息中的STATE2值为0的分组进行续装,包括:
[0033]判断所述未完成入库的表在所述源端与所述目标端的分组信息是否一致,如一致,则根据该表的分组信息中STATE2的值进行分类操作;
[0034]如不一致,则需要删除该表在所述源端与所述目标端的分组信息,重新对该表进行分组。
[0035]优选的,所述判断所述未完成入库的表在所述源端与所述目标端的分组信息是否一致,如一致,则根据该表的分组信息中STATE2的值进行分类操作,其中,所述分类操作具体包括:
[0036]当所述STATE2的值为1时,直接跳过,取下一个分组信息;
[0037]当所述STATE2的值为0时,表示该分组装载失败,需要对该分组进行再检查;
[0038]所述源端给所述目标端发送再检查消息,所述目标端再次检查该分组入库情况:已成功入库则返回完成入库给源端,所述源端更新该分组STATE2的值为1后跳过,取下一分组信息,否则返回未完成入库给源端,表明该分组确认为装载失败,需要续装。
[0039]第二方面,提供了一种数据同步全量数据断点续传的装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成数据同步全量数据断点续传的方法。
[0040]本专利技术的有益效果是:本专利技术将一个表的数据拆分为N个分组,每个分组采用独立的连接查询后发送,称之为分组装载,分组就是对一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步全量数据断点续传的方法,其特征在于,包括:在初始化装载时为待装载表设置初始装载状态;对所述待装载表进行分组得到分组信息,将所述分组信息分别保存至源端和目标端;在所述源端与所述目标端之间建立连接,根据所述分组信息进行分组数据装载;根据所述分组数据装载的结果更新所述分组信息,根据更新后的分组信息来更新所述待装载表的初始装载状态;当所述分组数据装载过程中发生故障时,根据更新后待装载表的装载状态来确定是否需要续装,如是,再根据需要续装的表中每个分组的装载状态来确定需要进行续装的分组。2.根据权利要求1所述的数据同步全量数据断点续传的方法,其特征在于,所述在初始化装载时为待装载表设置初始装载状态,包括:通过设置STATE1来表示待装载表的装载状态,当所述待装载表的STATE1值为1时代表装载成功,当所述待装载表的STATE1值为0时代表装载失败,在初始化装载时待装载表的STATE1值均保存为0。3.根据权利要求1所述的数据同步全量数据断点续传的方法,其特征在于,所述对所述待装载表进行分组得到分组信息,将所述分组信息分别保存至源端和目标端,包括:所述分组信息包括STATE2,所述STATE2表示每个分组的装载状态,当所述STATE2为1时代表装载成功,所述STATE2为0时代表装载失败,初始时每个分组STATE2的值均保存为0;创建源端辅助表和目标端辅助表,将所述分组信息分别保存至所述源端辅助表和所述目标端辅助表。4.根据权利要求3所述的数据同步全量数据断点续传的方法,其特征在于,所述在所述源端与所述目标端之间建立连接,根据所述分组信息进行分组数据装载,包括:所述源端根据所述源端辅助表为每个分组创建一个装载线程,所述装载线程分别与所述目标端的执行线程建立连接;所述源端根据所述源端辅助表将整个分组作为单个事务投递到所述目标端的执行线程。5.根据权利要求4所述的数据同步全量数据断点续传的方法,其特征在于,所述源端根据所述源端辅助表将整个分组作为单个事务投递到所述目标端的执行线程,包括:所述目标端通过所述执行线程对所述单个事务执行入库;当装载程序异常时,所述目标端会自动回滚未提交的单个事务;在对所述单个事务的成功入库操作提交前,所述目标端会将所述目标端辅助表中该分组信息的所述STATE2的值更新为1,然后提交。6.根据权利要求5所述的数据同步全量数据断点续传的方法,其特征在于,所述根据所述分组数据装载的结果更新所述分组信息,根据更新后的分组信息来更新所述待装载表的初始装载状态...

【专利技术属性】
技术研发人员:孙峰成征峰刘启春余院兰彭青松
申请(专利权)人:武汉达梦数据库股份有限公司
类型:发明
国别省市:

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

1