一种数据库全量同步断点续传方法、系统及存储介质技术方案

技术编号:37374200 阅读:31 留言:0更新日期:2023-04-27 07:18
本发明专利技术涉及信息技术领域,具体涉及一种数据库全量同步断点续传方法、系统及存储介质,所述方法包括以下步骤:选定数据库的每个表的切分字段,切分为若干个批次,将批次排序;记录起始值和结束值,持久化存储到外部存储;建立子任务线程池和与子任务线程的数量匹配的发送窗口;当出现断点恢复时,从外部存储读取对应批次的切分字段的起始值和结束值;构建查询条件,从数据库对应表中查询满足切分字段的起始值和结束值的全部数据,作为恢复的批次,将恢复的批次提交给子任务线程进行同步。本发明专利技术的有益技术效果包括:能够合理地控制重传的粒度,达到重传数据量和并发量之间的平衡;断点恢复时速度快,易于实践。易于实践。易于实践。

【技术实现步骤摘要】
一种数据库全量同步断点续传方法、系统及存储介质


[0001]本专利技术涉及信息
,具体涉及一种数据库全量同步断点续传方法、系统及存储介质。

技术介绍

[0002]当下主流的数据库全量同步技术无法实现断点续传或者不能很好地控制断点续传的粒度,不能够在并发度与重传数据量之间达到均衡。传统的数据库全量同步方法当出现部分数据入库失败时通过重试的方式进行再入库,对程序进程奔溃、机器重启等场景无能为力,无法实现断点续传。虽然存在公开技术实现数据库全量同步断点续传的其中一种方式是在同步过程中实时标记同步进度,恢复时从标记的断点处继续传输。但此种方式存在多线程并发同步场景难以实施,单线程同步场景效率低下的问题。为此需要研究能够提高数据同步效率的数据库同步技术。
[0003]现有技术公开了一种基于HTTP协议高速度、高稳定以及断点续传的数据同步方法,包括中心系统数据同步模块和子节点数据同步模块。中心系统的数据录入管理模块用于对更新的业务数据进行处理,处理存储后调用中心系统的数据更新通知模块,通知模块通过消息队列链路向子节点的数据更新监听模块发送通知本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据库全量同步断点续传方法,其特征在于,包括以下步骤:选定所述数据库的每个表的切分字段,依据切分字段将表数据切分为若干个批次,将所述批次排序;记录每个所述批次对应切分字段的起始值和结束值,将批次的排序序号及对应的表名、起始值和结束值持久化存储到外部存储;建立子任务线程池和与子任务线程的数量匹配的发送窗口,将处于所述发送窗口内的批次提交子任务线程进行同步,所述批次同步完成后更新发送窗口的位置;当出现断点恢复时,从外部存储读取对应批次的切分字段的起始值和结束值;构建查询条件,从所述数据库对应表中查询满足所述切分字段的起始值和结束值的全部数据,作为恢复的批次,将恢复的所述批次提交给子任务线程进行同步。2.根据权利要求1所述的一种数据库全量同步断点续传方法,其特征在于,选定切分字段的方法包括:若数据库的表为单主键表,则选定所述表的切分字段为所述主键;若数据库的表为联合主键,则选择区分度最高的字段作为所述表的切分字段。3.根据权利要求2所述的一种数据库全量同步断点续传方法,其特征在于,计算字段的区分度的方法为:区分度=count(distinct 字段名)/count(字段名),count(distinct 字段名)指将表中字段值去重后的表的条目数量,count(字段名)指表的条目数量。4.根据权利要求1至3任一项所述的一种数据库全量同步断点续传方法,其特征在于,依据切分字段将表数据切分为若干个批次的方法包括:设定划分批次数量为n,读取切分字段的最小数值变化步长m;计算划分步长step,step=max(count(切分字段)/n,m);按照划分步长step将切分字段的取值划分为若干个区间,每个区间对应的表的条目作为一个批次。5.根据权利要求1至3任一项所述的一种数据库全量同步断点续传方法,其特征在于,建立发送窗口的方法包括:设置所述发送窗口的大小等于所述子任务线程的数量;将所述发送窗口的起始位置设置在第一个批次,建立ack指针指向所述发送窗口的起始位置,所述ack指针持久化存储在外部存储。6.根据权利要求5所述的一种数据库全量同步断点续传方法,其特征在于,所述外部存储还存储由批次的同步状态,所述同步状态初始值为等待调度,建立子任务线程池后,将提交给子任务线程的批次的同步状态设置为发送中,所述批次同步完成后,更新对应批次的同步状态为成功,所述批次同步中断,则立即重试同步直至同步完成,更新所述发送窗口的位置的方法为:当所述发送窗口起始位置的批次同步成功后,将ack指针自增1,直至所述发送窗口的结束位置到达最后一个批次。7.根据权利要求5所述的一种数据库全量同步断点续传方法,其特征在于,当出现断点恢复时,根据所述ack指针恢复所述发送窗口的位置,根据恢复的所述发送窗口的位置确定当前需要恢复的批次,将恢复的所述批次提交给子任务线程进行同步。
8.一种数据库全量同步断点续传系统,用于执行如权利要求1至7任一项所述的一种数据库全量同步断点续传方法,其特征在于,包括管理节点集群、协调器集群...

【专利技术属性】
技术研发人员:林佩航
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1