一种异构数据库海量数据快速在线迁移方法及系统技术方案

技术编号:37387270 阅读:9 留言:0更新日期:2023-04-27 07:26
本发明专利技术涉及一种异构数据库海量数据快速在线迁移方法及系统,该方法包括:S1.选择迁出端数据库和迁入端数据库;S2.加载相应的数据库驱动程序,并与迁出端数据库和迁入端数据库建立连接;S3.从迁出端数据库中选择需要迁移的数据表,并将选择的数据表字段信息与迁入端数据库对应的数据表字段进行匹配比较;若不匹配,则执行S4.添加或舍弃相应的字段,或者设置字段类型转换,之后再次执行S3中的匹配比较,若匹配,则执行S5.输入每张数据表迁移所需开启的线程数及每批次数据条数;S6.根据配置信息对迁出端数据库和迁入端数据库的在线迁移。数据迁移时间大幅减少,并可持续保持在线状态,保证了数据的完整性及不影响业务端的使用。用。用。

【技术实现步骤摘要】
一种异构数据库海量数据快速在线迁移方法及系统


[0001]本专利技术属于数据库迁移
,尤其涉及一种异构数据库海量数据快速在线迁移方法及系统。

技术介绍

[0002]随着科学技术的不断发展,各种不同架构的数据库越来越多,各类业务系统应用的数据库种类也越来越多。但申请人发现:随着业务发展,在异构数据库之间进行海量数据迁移需求也随之越来越多;然而,目前市面上的数据迁移工具都存在着各种各样的缺点,例如:在数据迁移时,需要保持数据库离线状态,需要占用巨大的磁盘空间存储迁移中间数据、迁移速度过慢、无法支持异构数据库间数据表不同结构字段数据的传输等。这些缺点严重影响着异构数据库之间迁移数据库的效率,同时也掣肘了各项业务系统的性能。
[0003]因此,研发一种异构数据库海量数据快速在线迁移方法对于提升数据迁移传输效率及满足各类业务系统对于不同数据库的快速切换应用从而提升其性能有着显著意义。

技术实现思路

[0004]为解决现有技术中存在的上述问题,本专利技术提供了一种异构数据库海量数据快速在线迁移方法及系统。
[0005]为解决上述技术问题,本专利技术采用如下技术方案:
[0006]第一方面,本专利技术提供了一种异构数据库海量数据快速在线迁移方法,包括:
[0007]S1.选择不同的迁出端数据库和迁入端数据库;
[0008]S2.根据S1选择的数据库类型加载相应的数据库驱动程序,并与迁出端数据库和迁入端数据库建立连接;
[0009]S3.在S2成功建立连接后,从迁出端数据库中选择需要迁移的数据表,并将所选择的数据表字段信息与迁入端数据库对应的数据表字段进行匹配比较;若不匹配,则执行S4,若匹配,则执行S5;
[0010]S4.添加或舍弃相应的字段,或者设置字段类型转换,完成设置后再次执行S3中的匹配比较;
[0011]S5.输入每张数据表迁移所需开启的线程数及每批次数据条数;
[0012]S6.根据S1~S5的配置信息对迁出端数据库和迁入端数据库的在线迁移;
[0013]S7.完成迁移后进行迁移动作结束清理。。
[0014]进一步地,S6具体为:根据S1~S5的配置信息使用多线程方式为每张所需迁移的数据表由线程池开启相应线程数,每批数据分配一个线程,使用数据库驱动程序根据数据表的主键索引从迁出端数据库按所设置的每批次数量分批次取出所有数据,再使用数据库驱动程序分批次以事务形式插入至迁入端数据库;其中若配置信息中包含设置字段类型转换,则在对应线程中根据设置字段类型转换将取出的数据转换成所预设的格式,之后再使用数据库驱动程序分批次以事务形式插入至迁入端数据库。
[0015]进一步地,该方法还包括:在S6的迁移数据整个过程中,若失去与数据库的连接,则将所有已开启的线程的数据动作暂停,并生成提示信息告知操作人员,之后每隔一段递增的时间后重试与迁出端数据库或迁入端数据库的连接,直至连接成功。
[0016]进一步地,该方法还包括:在S6的迁入数据过程中发生当前批次数据中有任一条数据插入失败时,则当前批次已插入数据会从迁入端数据库删除,以避免重复数据;若数据插入失败原因为重复数据插入,则阻塞当前线程的数据其它操作,并生成提示信息告知操作人员,之后每隔一段递增的时间后重试插入数据,直至插入成功。
[0017]第二方面,本专利技术还提供了一种异构数据库海量数据快速在线迁移系统,包括:
[0018]异构数据库数据选择及配置预输入模块:用于选择不同的迁出端数据库和迁入端数据库,然后根据选择的数据库类型加载相应的数据库驱动程序,并与迁出端数据库和迁入端数据库建立连接,然后在成功建立连接后,从迁出端数据库中选择需要迁移的数据表,并将所选择的数据表字段信息与迁入端数据库对应的数据表字段进行匹配比较,若不匹配,添加或舍弃相应的字段,或者设置字段类型转换,完成设置后再次进行匹配比较,若匹配,则输入每张数据表迁移所需开启的线程数及每批次数据条数;最后将前述设置的配置信息传递给异构数据库迁出模块、异构数据库数据处理模块及异构数据库迁入模块;
[0019]异构数据库迁出模块:用于根据异构数据库数据选择及配置预输入模块所传递的配置信息使用多线程方式为每张所需迁移的数据表由线程池开启相应线程数,每批数据分配一个线程,再使用数据库驱动程序根据数据表的主键索引从迁出端数据库按所设置的每批次数量分批次取出数据传递给异构数据库数据处理模块,直至取出所有数据;
[0020]异构数据库数据处理模块:用于将异构数据库迁出模块传输过来的迁移数据在其对应线程中根据异构数据库数据选择及配置预输入模块传递的配置信息中设置字段类型转换将取出的数据转换成所预设的格式,之后将转换完成的迁移数据传输给异构数据库迁入模块进行迁移;
[0021]异构数据库迁入模块:用于将异构数据库数据处理模块传递而来的已处理过的迁移数据在其对应线程中根据异构数据库数据选择及配置预输入模块传递的迁入配置信息,使用数据库驱动程序分批次以事务形式插入至迁入端数据库中;
[0022]以及,异构数据库迁移动作结束清理模块:用于完成迁移后进行迁移动作结束清理。
[0023]进一步地,该系统还包括异构数据库异常处理模块;
[0024]所述异构数据库迁出模块、异构数据库数据处理模块和异构数据库迁入模块还用于在迁移数据整个过程中若失去与数据库的连接时,将异常信息传递给异构数据库异常处理模块,相应地,所述异构数据库异常处理模块用于将所有已开启的线程的数据动作暂停,并生成提示信息告知操作人员,之后每隔一段递增的时间后重试与迁出端数据库或迁入端数据库的连接,直至连接成功。
[0025]进一步地,该系统还包括异构数据库异常处理模块;
[0026]所述异构数据库迁入模块用于在当前批次数据中有任一条数据插入失败时,将当前批次数据插入失败的信息告知异构数据库异常处理模块;相应地,异构数据库异常处理模块用于在迁入数据过程中发生当前批次数据中有任一条数据插入失败时,则将当前批次已插入数据会从迁入端数据库删除,以避免重复数据;若数据插入失败原因为重复数据插
入,则将阻塞当前线程的数据其它操作,并生成提示信息告知操作人员,之后每隔一段递增的时间后重试插入数据,直至插入成功。
[0027]上述第二方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
[0028]图1是本专利技术所述异构数据库海量数据快速在线迁移方法的流程示意图;
[0029]图2是本专利技术所述异构数据库海量数据快速在线迁移系统的结构示意框图。
具体实施方式
[0030]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0031]如图1中所示,本专利技术所述的一种异构数据库海量数据快本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异构数据库海量数据快速在线迁移方法,其特征在于,包括:S1.选择不同的迁出端数据库和迁入端数据库;S2.根据S1选择的数据库类型加载相应的数据库驱动程序,并与迁出端数据库和迁入端数据库建立连接;S3.在S2成功建立连接后,从迁出端数据库中选择需要迁移的数据表,并将所选择的数据表字段信息与迁入端数据库对应的数据表字段进行匹配比较;若不匹配,则执行S4,若匹配,则执行S5;S4.添加或舍弃相应的字段,或者设置字段类型转换,完成设置后再次执行S3中的匹配比较;S5.输入每张数据表迁移所需开启的线程数及每批次数据条数;S6.根据S1~S5的配置信息对迁出端数据库和迁入端数据库的在线迁移;S7.完成迁移后进行迁移动作结束清理。2.根据权利要求1所述的方法,其特征在于,S6具体为:根据S1~S5的配置信息使用多线程方式为每张所需迁移的数据表由线程池开启相应线程数,每批数据分配一个线程,使用数据库驱动程序根据数据表的主键索引从迁出端数据库按所设置的每批次数量分批次取出所有数据,再使用数据库驱动程序分批次以事务形式插入至迁入端数据库;其中若配置信息中包含设置字段类型转换,则在对应线程中根据设置字段类型转换将取出的数据转换成所预设的格式,之后再使用数据库驱动程序分批次以事务形式插入至迁入端数据库。3.根据权利要求2所述的方法,其特征在于,该方法还包括:在S6的迁移数据整个过程中,若失去与数据库的连接,则将所有已开启的线程的数据动作暂停,并生成提示信息告知操作人员,之后每隔一段递增的时间后重试与迁出端数据库或迁入端数据库的连接,直至连接成功。4.根据权利要求2所述的方法,其特征在于,该方法还包括:在S6的迁入数据过程中发生当前批次数据中有任一条数据插入失败时,则当前批次已插入数据会从迁入端数据库删除,以避免重复数据;若数据插入失败原因为重复数据插入,则阻塞当前线程的数据其它操作,并生成提示信息告知操作人员,之后每隔一段递增的时间后重试插入数据,直至插入成功。5.一种异构数据库海量数据快速在线迁移系统,其特征在于,包括:异构数据库数据选择及配置预输入模块(100):用于选择不同的迁出端数据库和迁入端数据库,然后根据选择的数据库类型加载相应的数据库驱动程序,并与迁出端数据库和迁入端数据库建立连接,然后在成功建立连接后,从迁出端数据库中选择需要迁移的数据表,并将所选择的数据表字段信息与迁入端数据库对应的数据表字段进行匹配比较,若不匹配,添加或舍弃相应的字段,或者设置字段类型转换,完成设置后再次进行匹配比较,若匹...

【专利技术属性】
技术研发人员:梁前姜子琳姚鹏朱志伟邵海马梦雪何奇瑞刘要锋
申请(专利权)人:珠海万力达电气自动化有限公司
类型:发明
国别省市:

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

1