本公开涉及数据库,具体的涉及数据迁移,更具体地涉及一种数据迁移方法、装置、设备、存储介质和程序产品。
背景技术:
1、在进行数据库迁移的时候,目前支持迁移前后表结构不变,或迁移原表部分字段。对于需要添加字段,且该字段需要关联其他表来取值时,目前的方案一般变更原有系统,将待新增的字段在迁移前先补充完善,待完善后再实施迁移,这样对存量系统引入了变更风险,且在迁移前需要多停一次系统,影响业务连续性。
2、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、鉴于上述问题,本公开提供了一种降低系统业务连续性影响的数据迁移方法、装置、设备、存储介质和程序产品。
2、根据本公开的第一个方面,提供了一种数据迁移方法,所述方法包括:
3、响应于数据迁移指令,将业务字段映射表从主数据库同步至目标数据库;
4、记录启动数据迁移后主数据库表的变更操作,以生成记录变动信息表;
5、将备用数据库的存量数据同步至目标数据库,以生成第一中间表;
6、根据业务字段映射表对所述第一中间表进行表结构重构,以生成第二中间表;以及
7、根据所述记录变动信息表对所述第二中间表进行更新,以完成数据迁移。
8、根据本公开的实施例,所述根据业务字段映射表对所述第一中间表进行表结构重构,以生成第二中间表包括:
9、通过查询业务字段映射表确定目标业务字段;以及
10、将所述目标业务字段插入所述第一中间表以生成所述第二中间表。
11、根据本公开的实施例,所述根据所述记录变动信息表对所述第二中间表进行更新,以完成数据迁移包括:
12、根据所述记录变动信息表确定数据库表变更类型;
13、根据所述数据库表变更类型确定数据库操作语句;以及
14、执行所述数据库操作语句实现对所述第二中间表的更新。
15、根据本公开的实施例,在完成数据迁移后,还包括:
16、在数据迁移完成后,进行数据一致性比较;以及
17、在数据一致性比较通过后,进行全量业务切流。
18、根据本公开的实施例,所述方法还包括:
19、当所述记录变动信息表的待处理数据小于预设阈值时,断开主数据库联机交易。
20、根据本公开的实施例,在将备用数据库的存量数据同步至目标数据库,以生成第一中间表之前,还包括:
21、将主数据库的业务数据同步至备用数据库;以及
22、在备用数据库完成增量同步后,断开主备数据库。
23、本公开的第二方面提供了一种数据迁移装置,所述装置包括:
24、第一数据同步模块,用于响应于数据迁移指令,将业务字段映射表从主数据库同步至目标数据库;
25、生成模块,用于记录启动数据迁移后主数据库表的变更操作,以生成记录变动信息表;
26、第二数据同步模块,用于将备用数据库的存量数据同步至目标数据库,以生成第一中间表;
27、表结构重构模块,用于根据业务字段映射表对所述第一中间表进行表结构重构,以生成第二中间表;以及
28、数据更新模块,用于根据所述记录变动信息表对所述第二中间表进行更新,以完成数据迁移。
29、根据本公开的实施例,所述表结构重构模块包括:第一确定子模块和生成子模块。
30、第一确定子模块,用于通过查询业务字段映射表确定目标业务字段;以及
31、生成子模块,用于将所述目标业务字段插入所述第一中间表以生成所述第二中间表。
32、根据本公开的实施例,所述数据更新模块包括:第二确定子模块、第三确定子模块和更新子模块。
33、第二确定子模块,用于根据所述记录变动信息表确定数据库表变更类型;
34、第三确定子模块,用于根据所述数据库表变更类型确定数据库操作语句;以及
35、更新子模块,用于执行所述数据库操作语句实现对所述第二中间表的更新。
36、根据本公开的实施例,所述装置还包括:数据一致性校验模块和切流模块。
37、数据一致性校验模块,用于在数据迁移完成后,进行数据一致性比较;以及
38、切流模块,用于在数据一致性比较通过后,进行全量业务切流。
39、根据本公开的实施例,所述装置还包括:第三数据同步模块。
40、第三数据同步模块,用于将主数据库的业务数据同步至备用数据库;以及在备用数据库完成增量同步后,断开主备数据库。
41、本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述数据迁移方法。
42、本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述数据迁移方法。
43、本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据迁移方法。
44、通过本公开的实施例提供的一种数据迁移方法,响应于数据迁移指令,为了支持数据库迁移过程中同步添加业务字段,将业务字段映射表从主数据库同步至目标数据库;为了减少系统停机次数和时间,先由主数据库对外提供服务,并记录启动数据迁移后主数据库表的变更操作,以生成记录变动信息表;同时将备用数据库的存量数据同步至目标数据库,以生成第一中间表;在数据迁移过程中,根据业务字段映射表对所述第一中间表进行表结构重构,以生成第二中间表;最后根据所述记录变动信息表对所述第二中间表进行更新,以完成数据迁移。相较于相关技术,本公开实施例提供的数据迁移方法能够在不改动存量系统完成表结构重构,保证了系统对外服务的业务连续性,降低数据迁移对业务的影响,减少系统停机时间和次数。
1.一种数据迁移方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据业务字段映射表对所述第一中间表进行表结构重构,以生成第二中间表包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述记录变动信息表对所述第二中间表进行更新,以完成数据迁移包括:
4.根据权利要求1所述的方法,其特征在于,在完成数据迁移后,还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,在将备用数据库的存量数据同步至目标数据库,以生成第一中间表之前,还包括:
7.一种数据迁移装置,其特征在于,所述装置包括:
8.一种电子设备,包括:
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6中任一项所述的方法。