一种动态扩缩容的数据迁移方法、设备、系统和介质技术方案

技术编号:35069763 阅读:20 留言:0更新日期:2022-09-28 11:31
本发明专利技术实施例提供一种动态扩缩容的数据迁移方法、设备、系统和介质,该方法包括:确定待迁移分片路由映射表,包括一个或多个待迁移分片;根据待迁移分片路由映射表依次选择各待迁移分片作为当前迁移分片,循环执行封锁操作、迁移操作以及解锁操作,直至待迁移分片路由映射表中不存在等待迁移的待迁移分片;封锁操作包括根据当前迁移分片,封锁执行交易;迁移操作包括在封锁执行交易后,迁移当前迁移分片;解锁操作包括在完成当前迁移分片的数据迁移后,解锁执行交易。该方法通过采用分片路由映射表,多个层面的封锁交易的方式,能够实现对业务系统的应用并同时对数据节点动态扩缩容处理,保证对IT系统客户的业务交易无影响。保证对IT系统客户的业务交易无影响。保证对IT系统客户的业务交易无影响。

【技术实现步骤摘要】
一种动态扩缩容的数据迁移方法、设备、系统和介质


[0001]本专利技术涉及互联网相关
,尤其是涉及一种动态扩缩容的数据迁移方法、设备、系统和介质。

技术介绍

[0002]随着互联网业务范围不断快速扩展,企业所部署的分布式系统的业务访问量、交易量、数据量会随着多种因素不断的波动,这其中包括数据量的陡增以及随着业务变化数据量放缓。因此需要对分布式系统进行动态的扩容或缩容,同时对已存储的数据进行动态迁移。
[0003]为让IT系统能随时让硬件资源投入与活跃业务数据量的变化相匹配,则必须让IT系统具有动态横向扩展或收缩的能力,确保在不停止服务、不影响正常业务的前提下,完成主机节点增减。当前IT业内的数据分片方案完全依赖分布式数据库(如TiDB、GoldenDB),以及相关中间件(Shardingsphere、MyCat)。其在应用过程中普遍存在数据节点扩缩容处理复杂,且扩缩容过程对应用不透明业务不可控,特别是数据涉及范围、处理进度、异常处理等方面,会给运维带来较大的负担。

技术实现思路

[0004]针对上述问题,本专利技术实施例的一个目的是提供一种动态扩缩容的数据迁移方法、设备、系统和介质,以结合实际业务需求,实现对应用以及数据节点作横向扩缩容的目标。
[0005]为达上述目的,第一方面,本专利技术实施例提供了一种动态扩缩容的数据迁移方法,包括:确定待迁移分片路由映射表,所述待迁移分片路由映射表包括一个或多个待迁移分片;根据所述待迁移分片路由映射表依次选择各待迁移分片作为当前迁移分片,循环执行封锁操作、迁移操作以及解锁操作,直至所述待迁移分片路由映射表中不存在等待迁移的待迁移分片;其中,所述封锁操作包括:根据当前迁移分片,封锁执行交易;所述迁移操作包括:在封锁执行交易后,迁移当前迁移分片;所述解锁操作包括:在完成当前迁移分片的数据迁移后,解锁执行交易。
[0006]进一步地,确定待迁移分片路由映射表,包括:根据当前活动分区的当前分片容器和各当前分片容器包含的分片,确定当前分片路由映射表;根据当前分片路由映射表和计划活动分区的目标分片容器,确定目标分片路由映射表;根据当前分片路由映射表和目标分片路由映射表,确定待迁移分片路由映射表。
[0007]进一步地,根据当前分片路由映射表和目标分片容器,确定目标分片路由映射表,具体包括:根据当前分片路由映射表,确定当前分片容器包含的分片个数的平均值;将当前分片容器按照各分片容器包含的分片个数依次排序;根据扩缩容任务以及分片个数的平均值,依次根据当前分片容器的排序确定当前分片容器中的分片与目标分片容器对应的迁移方向,并确定目标分片路由映射表。
[0008]进一步地,根据当前迁移分片,封锁执行交易,包括:根据当前迁移分片,执行第一阶段交易封锁,第一阶段交易封锁包括:封锁与当前迁移分片相关的对外交易入口,并且延迟N秒等待正在执行中的交易处理完毕;在成功执行第一阶段交易封锁后,执行第二阶段交易封锁,第二阶段交易封锁包括:分别封锁程序接口和数据库中与当前迁移分片相关的数据处理。
[0009]进一步地,对外交易入口包括内部网关和外部网关;封锁与当前迁移分片相关的对外交易入口,包括:对于当前迁移分片相关的内部网关和外部网关,封锁所有新发起的与分片数据修改相关的交易请求。
[0010]进一步地,对外交易入口还包括对外消息队列和批处理任务;封锁与当前迁移分片相关的对外交易入口,还包括:对于对外消息队列,在消息生产端通过所述待迁移分片路由映射表来封锁交易;对于当前正在执行的批处理任务,通过在批处理方法切面中作封锁处理,并封锁新的批处理任务。
[0011]进一步地,在封锁所述执行交易后,迁移所述当前迁移分片,具体包括:根据数据库表复制程序对当前迁移分片的分片数据执行库到库的数据复制,完成分片数据从当前分片容器到目标分片容器的复制,若复制成功,则清除当前分片容器中的当前迁移分片的分片数据;若复制失败,则终止当前操作,自动清除已迁移至新容器的数据。
[0012]进一步地,在完成当前迁移分片的数据迁移后,解锁执行交易,包括:完成当前迁移分片的数据迁移后,执行第一阶段交易解锁,所述第一阶段交易解锁包括:首先解除对数据库的封锁,并删除当前迁移分片对应的所有数据记录;然后再解除对程序接口的封锁,从待迁移分片路由映射表中移除当前迁移分片,并且开放当前迁移分片的当前分片因子所对应交易的管制;在成功执行第一阶段交易解锁后,执行第二阶段交易解锁,第二阶段交易解锁包括:解除对对外交易入口的封锁,并更新迁移处理状态。
[0013]进一步地,在每一次执行依次选择各待迁移分片作为当前迁移分片之前还包括:判断当前执行状态是否满足迁移条件;若满足迁移条件,则执行依次选择各待迁移分片作为当前迁移分片;若不满足迁移条件,则自动暂停迁移处理,保存执行状态后挂起当前迁移任务,等到下一个迁移周期再返回执行判断当前执行状态是否满足迁移条件的步骤。
[0014]进一步地,判断当前执行状态是否满足迁移条件,包括:判断当日剩余的迁移时间窗口是否充足;
和/或,判断当前迁移过程是否无异常。
[0015]第二方面,本专利技术实施例提供了一种动态扩缩容的数据迁移系统,包括:分片路由确定模块,用于确定待迁移分片路由映射表,待迁移分片路由映射表包括一个或多个待迁移分片;以及,分片迁移处理模块,用于根据待迁移分片路由映射表依次选择各待迁移分片作为当前迁移分片;依次控制封锁子模块、迁移子模块以及解锁子模块循环执行,直至待迁移分片路由映射表中不存在等待迁移的待迁移分片;封锁子模块,用于根据当前迁移分片,封锁执行交易;迁移子模块,用于在封锁执行交易后,迁移当前迁移分片;解锁子模块,用于在完成当前迁移分片的数据迁移后,解锁执行交易。
[0016]进一步地,分片路由确定模块,具体用于:根据当前活动分区的当前分片容器和各所述当前分片容器包含的分片,确定当前分片路由映射表;根据所述当前分片路由映射表和计划活动分区的目标分片容器,确定目标分片路由映射表;根据所述当前分片路由映射表和所述目标分片路由映射表,确定待迁移分片路由映射表。
[0017]进一步地,封锁子模块,具体用于:根据所述当前迁移分片,执行第一阶段交易封锁,第一阶段交易封锁包括:封锁与当前迁移分片相关的对外交易入口,并且延迟 N 秒等待正在执行中的交易处理完毕;在成功执行第一阶段交易封锁后,执行第二阶段交易封锁,第二阶段交易封锁包括:分别封锁程序接口和数据库中与当前迁移分片相关的数据处理。
[0018]第三方面,本专利技术实施例提供了一种计算机设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述所述的动态扩缩容的数据迁移方法。
[0019]第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的任意一种动态扩缩容的数据迁移方法。
[0020]本专利技术实施例提供的动态扩缩本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态扩缩容的数据迁移方法,其特征在于,所述方法包括:确定待迁移分片路由映射表,所述待迁移分片路由映射表包括一个或多个待迁移分片;根据所述待迁移分片路由映射表依次选择各待迁移分片作为当前迁移分片,循环执行封锁操作、迁移操作以及解锁操作,直至所述待迁移分片路由映射表中不存在等待迁移的待迁移分片;其中,所述封锁操作包括:根据所述当前迁移分片,封锁执行交易;所述迁移操作包括:在封锁所述执行交易后,迁移所述当前迁移分片;所述解锁操作包括:在完成所述当前迁移分片的数据迁移后,解锁所述执行交易。2.根据权利要求1所述的动态扩缩容的数据迁移方法,其特征在于,所述确定待迁移分片路由映射表,包括:根据当前活动分区的当前分片容器和各所述当前分片容器包含的分片,确定当前分片路由映射表;根据所述当前分片路由映射表和计划活动分区的目标分片容器,确定目标分片路由映射表;根据所述当前分片路由映射表和所述目标分片路由映射表,确定所述待迁移分片路由映射表。3.根据权利要求2所述的动态扩缩容的数据迁移方法,其特征在于,所述根据所述当前分片路由映射表和计划活动分区的目标分片容器,确定目标分片路由映射表,具体包括:根据所述当前分片路由映射表,确定所述当前分片容器包含的分片个数的平均值;将所述当前分片容器按照各所述分片容器包含的分片个数依次排序;根据扩缩容任务以及所述分片个数的平均值,依次根据所述当前分片容器的排序确定所述当前分片容器中的分片与所述目标分片容器对应的迁移方向,并确定所述目标分片路由映射表。4.根据权利要求1所述的动态扩缩容的数据迁移方法,其特征在于,所述根据所述当前迁移分片,封锁执行交易,包括:根据所述当前迁移分片,执行第一阶段交易封锁,所述第一阶段交易封锁包括:封锁与所述当前迁移分片相关的对外交易入口,并且延迟N秒等待正在执行中的交易处理完毕;在成功执行所述第一阶段交易封锁后,执行第二阶段交易封锁,所述第二阶段交易封锁包括:分别封锁程序接口和数据库中与所述当前迁移分片相关的数据处理。5.根据权利要求4所述的动态扩缩容的数据迁移方法,其特征在于,所述对外交易入口包括内部网关和外部网关;所述封锁与所述当前迁移分片相关的对外交易入口,包括:对于所述当前迁移分片相关的所述内部网关和所述外部网关,封锁所有新发起的与分片数据修改相关的交易请求。6.根据权利要求5所述的动态扩缩容的数据迁移方法,其特征在于,所述对外交易入口还包括对外消息队列和批处理任务;所述封锁与所述当前迁移分片相关的对外交易入口,还包括:对于所述对外消息队列,在消息生产端通过所述待迁移分片路由映射表来封锁交易;
对于当前正在执行的批处理任务,通过在批处理方法切面中作封锁处理,并封锁新的批处理任务。7.根据权利要求1所述的动态扩缩容的数据迁移方法,其特征在于,所述在封锁所述执行交易后,迁移所述当前迁移分片,具体包括:根据数据库表复制程序对所述当前迁移分片的分片数据执行库到库的数据复制,完成所述分片数据从当前分片容器到目标分片容器的复制;若复制成功,则清除所述当前分片容器中的所述当前迁移分片的分片数据;若复制失败,则终止当前操作,自动清除已迁移至新容器的数据。8.根据权利要求4所述的动态扩缩容...

【专利技术属性】
技术研发人员:刘明
申请(专利权)人:杭州宇信数字科技有限公司
类型:发明
国别省市:

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

1