数据迁移方法、系统、设备及存储介质技术方案

技术编号:38752812 阅读:15 留言:0更新日期:2023-09-09 11:19
本说明书一个或多个实施例提供一种数据迁移方法、数据库系统、电子设备及计算机可读存储介质。在源数据库和目标数据库之间建立有用于运行第一迁移任务的迁移链路,第一迁移任务用于将源数据库中的至少一个数据表迁移到目标数据库中。所述方法包括:在第一迁移任务运行过程中,响应于表新增指令,确定源数据库中新增迁移的目标数据表;创建第二迁移任务,以至少实现目标数据表的增量迁移;在迁移链路中并行运行第一迁移任务和第二迁移任务的过程中,轮询检测第一迁移任务中增量迁移的时间位点和第二迁移任务中增量迁移的时间位点之间的同步情况;若两者同步,将第二迁移任务合并到第一迁移任务中。实现在原有迁移链路基础上新增迁移目标数据表。上新增迁移目标数据表。上新增迁移目标数据表。

【技术实现步骤摘要】
数据迁移方法、系统、设备及存储介质


[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]对于任意一个第一分区对应的第一子任务和第二子任务,轮询检查所述第一子任务中增量迁移的时间位点与当前时间之间的第一延迟时长、以及所述第二子任务中增量迁移的时间位点与当前时间之间的第二延迟时长,直到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据迁移方法,在源数据库和目标数据库之间建立有用于运行第一迁移任务的迁移链路,所述第一迁移任务用于将源数据库中的至少一个数据表迁移到目标数据库中;所述方法包括:在所述第一迁移任务运行过程中,响应于表新增指令,确定所述源数据库中新增迁移的目标数据表;创建第二迁移任务,以至少实现所述目标数据表的增量迁移;在所述迁移链路中并行运行第一迁移任务和第二迁移任务的过程中,轮询检测第一迁移任务中增量迁移的时间位点和第二迁移任务中增量迁移的时间位点之间的同步情况;若两者同步,将所述第二迁移任务合并到所述第一迁移任务中,以使得合并后的第一迁移任务能够基于同步的时间位点实现所述至少一个数据表和所述目标数据表的增量迁移。2.根据权利要求1所述的方法,所述轮询检测所述第一迁移任务中增量迁移的时间位点和所述第二迁移任务中增量迁移的时间位点之间的同步情况,包括:轮询检测所述第一迁移任务中增量迁移的时间位点与当前时间之间的第一延迟时长、以及所述第二迁移任务中增量迁移的时间位点与当前时间之间的第二延迟时长,直到两者均小于第一阈值;或者,轮询检测所述第一迁移任务中增量迁移的时间位点和第二迁移任务中增量迁移的时间位点,直到两者之间的差异小于第二阈值。3.根据权利要求1所述的方法,所述若两者同步,将所述第二迁移任务合并到所述第一迁移任务中,以使得合并后的第一迁移任务能够实现所述至少一个数据表和所述目标数据表的增量迁移,包括:若两者同步,结束所述第二迁移任务,在所述第一迁移任务的任务信息中新增迁移所述目标数据表,并重启所述第一迁移任务;其中,重启后的第一迁移任务能够基于重启前记录的增量迁移的时间位点来进行修改后的任务信息指示的所有数据表的增量迁移。4.根据权利要求1所述的方法,还包括:在所述第一迁移任务运行过程中,响应于表修改指令,根据所述表修改指令携带的修改信息修改所述第一迁移任务的任务信息,并重启所述第一迁移任务;其中,所述修改信息用于指示以下至少一种修改事件:删除数据表、修改数据表名称、修改数据表中的列的名称、向数据表中增加列、以及修改数据类型。5.根据权利要求1至4任意一项所述的方法,还包括:在接收到表新增指令或表修改指令的情况下,检测所述第一迁移任务是否为正常执行状态;若是,将所述第一迁移任务从正常执行状态修改为同步对象修改状态,所述同步对象修改状态指示在接收到的表新增指令或表修改指令执行完成之前,不再响应其他的表新增指令和/或其他的表修改指令;以及在重启所述第一迁移任务之后,将所述第一迁移任务从同步对象修改状态修改为正常执行状态;若否,不响应接收到的表新增指令或表修改指令,并输出无法修改同步对象的提示信息。6.根据权利要求3或4所述的方法,还包括:
在重启所述第一迁移任务之后,将重启前记录的增量迁移的时间位点回退预设时长,得到目标时间位点;基于所述目标时间位点来进行修改后的任务信息中所有数据表的增量迁移。7.根据权利要求1至4任意一项所述的方法,所述源数据库包括分布式数据库;所述第一迁移任务包括第一父任务和第一子任务,所述第一子任务的数量根据所述第一迁移任务中的数据表对应的分区数量确定;其中,所述第一父任务至少用于实现源数据库和目标数据库之间的全局预检查;不同第一子任务至少用于实现源数据库和目标数据库之间的分区预检查、以及所述第一迁移任务中的数据表在不同分区中的分表的增量迁移;所述第二迁移任务包括第二父任务和第二子任务,所述第二子任务的数量根据所述目标数据表对应的分区数量确定;其中,所述第二父任务至少用于实现源数据库和目标数据库之间的全...

【专利技术属性】
技术研发人员:吴沛林郭寿敏付大超
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1