一种数据库迁移系统、方法及计算机可读存储介质技术方案

技术编号:35459847 阅读:19 留言:0更新日期:2022-11-03 12:25
本申请提供一种数据库迁移系统、方法及计算机可读存储介质,可以具有较高效率。系统包括处理器,处理器包括多个线程:多个线程中的任一线程,用于:查询共享表中目标对象的创建标识是否为未创建标识,共享表在共享内存中,未创建标识表征对象未在第二数据库中创建;在查询到目标对象的创建标识为未创建标识时,检测目标对象的创建信息是否包括目标对象与至少一个其它对象的依赖关系;若检测到目标对象的创建信息包括目标对象与至少一个其它对象的依赖关系,则在查询到共享表中每个其它对象的创建标识均为已创建标识后,在第二数据库中创建目标对象,并在共享表中设置目标对象的创建标识为已创建标识,已创建标识表征对象已在第二数据库中创建。第二数据库中创建。第二数据库中创建。

【技术实现步骤摘要】
一种数据库迁移系统、方法及计算机可读存储介质


[0001]本申请涉及数据库
,公开了一种数据库迁移系统、方法及计算机可读存储介质。

技术介绍

[0002]随着数据库的广泛应用,涌现出多种数据库。不同数据库之间的数据迁移需求被提出。目前,不同数据库之间进行迁移时,对象的创建需要解决相互依赖的问题。尤其在数据库中对象数量很多的情况下,现有迁移方法中,将源数据库中的对象全部加载到内存中,然后对全部对象进行排序。并依次序在新数据库中创建对象。这样的迁移方式中占据大量内存,并且迁移效率低下。

技术实现思路

[0003]本申请提供了一种数据库迁移系统、方法及计算机可读存储介质,可以具有较高迁移效率。
[0004]第一方面,本申请实施例提供一种数据库迁移系统,包括处理器,所述处理器包括多个线程:所述多个线程中的任一线程,用于:获取第一分块,所述第一分块包括第一数据库中至少一个对象的创建信息,所述第一分块为所述第一数据库所包括全部对象的创建信息分块处理后的一个分块;查询共享表中目标对象的创建标识是否为未创建标识,所述共享表在共享内存中,所述目标对象为所述至少一个对象中的任一对象,所述未创建标识表征对象未在第二数据库中创建;在查询到所述目标对象的创建标识为所述未创建标识时,检测所述目标对象的创建信息是否包括所述目标对象与至少一个其它对象的依赖关系;若检测到所述目标对象的创建信息包括所述目标对象与至少一个其它对象的依赖关系,则在查询到所述共享表中每个所述其它对象的创建标识均为已创建标识后,在所述第二数据库中创建所述目标对象,并在所述共享表中设置所述目标对象的创建标识为已创建标识,所述已创建标识表征对象已在所述第二数据库中创建。
[0005]一种可能的实施方式中,所述任一线程还用于:在检测到所述目标对象的创建信息包括所述目标对象与至少一个其它对象的依赖关系后,在所述共享表中查询每个所述其它对象的创建标识是否为所述未创建标识;若查询到所述至少一个其它对象中的第一对象的创建标识为所述未创建标识,则获取所述第一对象的创建信息,并检测所述第一对象的创建信息是否包括所述第一对象与任一对象的依赖关系;若检测到所述第一对象的创建信息不包括所述第一对象与任一对象的依赖关系,则创建所述第一对象,并在所述共享表中设置所述第一对象的创建标识为所述已创建标识;若所述第一对象的创建信息包括所述第一对象与至少一个第二对象的依赖关系,则在查询到所述共享表中每个所述第二对象的创建标识均为所述已创建标识后,在所述第二数据库中创建所述第一对象,并在所述共享表中设置所述第一对象的创建标识为所述已创建标识。
[0006]一种可能的实施方式中,所述任一线程还用于:若检测到所述目标对象的创建信
息不包括所述目标对象与任一对象的依赖关系,则在所述第二数据库中创建所述目标对象,并在所述共享表中设置所述目标对象的创建标识为已创建标识。
[0007]一种可能的实施方式中,所述系统还包括数据分发器;所述数据分发器,用于:对所述全部对象的创建信息进行分块处理后得到多个分块,以及将所述多个分块分别发送给所述多个线程。
[0008]一种可能的实施方式中,所述系统还包括采集模块;所述采集模块,用于:从所述第一数据库中采集所述全部对象的创建信息;将所述全部对象的创建信息保存到磁盘。
[0009]一种可能的实施方式中,所述任一线程在获取所述第一对象的创建信息时,具体用于:从所述第一分块中获取所述第一对象的创建信息;或者,从所述磁盘中获取所述第一对象的创建信息。
[0010]第二方面,本申请实施例提供一种数据库迁移方法,包括:
[0011]获取第一分块,所述第一分块包括第一数据库中至少一个对象的创建信息,所述第一分块为所述第一数据库所包括全部对象的创建信息分块处理后的一个分块;查询共享表中目标对象的创建标识是否为未创建标识,所述共享表在共享内存中,所述目标对象为所述至少一个对象中的任一对象,所述未创建标识表征对象未在第二数据库中创建;在查询到所述目标对象的创建标识为所述未创建标识时,检测所述目标对象的创建信息是否包括所述目标对象与至少一个其它对象的依赖关系;若检测到所述目标对象的创建信息包括所述目标对象与至少一个其它对象的依赖关系,则在查询到所述共享表中每个所述其它对象的创建标识均为已创建标识后,在所述第二数据库中创建所述目标对象,并在所述共享表中设置所述目标对象的创建标识为已创建标识,所述已创建标识表征对象已在所述第二数据库中创建。
[0012]一种可能的实施方式中,在本申请实施例提供的数据库迁移方法中,在检测到所述目标对象的创建信息包括所述目标对象与至少一个其它对象的依赖关系后,在所述第二数据库中创建所述目标对象之前,所述方法还包括:在所述共享表中查询每个所述其它对象的创建标识是否为所述未创建标识;若查询到所述至少一个其它对象中的第一对象的创建标识为所述未创建标识,则获取所述第一对象的创建信息,并检测所述第一对象的创建信息是否包括所述第一对象与任一对象的依赖关系;若检测到所述第一对象的创建信息不包括所述第一对象与任一对象的依赖关系,则创建所述第一对象,并在所述共享表中设置所述第一对象的创建标识为所述已创建标识;若所述第一对象的创建信息包括所述第一对象与至少一个第二对象的依赖关系,则在查询到所述共享表中每个所述第二对象的创建标识均为所述已创建标识后,在所述第二数据库中创建所述第一对象,并在所述共享表中设置所述第一对象的创建标识为所述已创建标识。
[0013]一种可能的实施方式中,在本申请实施例提供的数据库迁移方法中,所述方法还包括:若检测到所述目标对象的创建信息不包括所述目标对象与任一对象的依赖关系,则在所述第二数据库中创建所述目标对象,并在所述共享表中设置所述目标对象的创建标识为已创建标识。
[0014]第三方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行数据库迁移方法。
[0015]第四方面,本申请提供一种计算机程序产品,包含计算机程序,所述计算机程序被
计算机执行时实现上述数据库迁移方法的步骤。
[0016]本申请实施例的有益效果如下:
[0017]本申请提供一种数据库迁移系统、方法及计算机可读存储介质,多个线程可以分别基于共享内存中共享表,在第二数据库中创建各分块中的对象,或者与该对象具有依赖关系的对象,实现将对象迁移到第二数据库中,多个线程实现全部对象迁移,可以提高迁移效率,并且共享表中可以记录各对象的创建标识情况占用少的内存空间,可以避免将第一数据库所包括的全部对象的信息全部加载到内存中进行排序。
[0018]本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0019]为了更清楚地说明本申请实施例中的技术方案本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库迁移系统,其特征在于,包括处理器,所述处理器包括多个线程:所述多个线程中的任一线程,用于:获取第一分块,所述第一分块包括第一数据库中至少一个对象的创建信息,所述第一分块为所述第一数据库所包括全部对象的创建信息分块处理后的一个分块;查询共享表中目标对象的创建标识是否为未创建标识,所述共享表在共享内存中,所述目标对象为所述至少一个对象中的任一对象,所述未创建标识表征对象未在第二数据库中创建;在查询到所述目标对象的创建标识为所述未创建标识时,检测所述目标对象的创建信息是否包括所述目标对象与至少一个其它对象的依赖关系;若检测到所述目标对象的创建信息包括所述目标对象与至少一个其它对象的依赖关系,则在查询到所述共享表中每个所述其它对象的创建标识均为已创建标识后,在所述第二数据库中创建所述目标对象,并在所述共享表中设置所述目标对象的创建标识为已创建标识,所述已创建标识表征对象已在所述第二数据库中创建。2.如权利要求1所述的系统,其特征在于,所述任一线程还用于:在检测到所述目标对象的创建信息包括所述目标对象与至少一个其它对象的依赖关系后,在所述共享表中查询每个所述其它对象的创建标识是否为所述未创建标识;若查询到所述至少一个其它对象中的第一对象的创建标识为所述未创建标识,则获取所述第一对象的创建信息,并检测所述第一对象的创建信息是否包括所述第一对象与任一对象的依赖关系;若检测到所述第一对象的创建信息不包括所述第一对象与任一对象的依赖关系,则创建所述第一对象,并在所述共享表中设置所述第一对象的创建标识为所述已创建标识;若所述第一对象的创建信息包括所述第一对象与至少一个第二对象的依赖关系,则在查询到所述共享表中每个所述第二对象的创建标识均为所述已创建标识后,在所述第二数据库中创建所述第一对象,并在所述共享表中设置所述第一对象的创建标识为所述已创建标识。3.如权利要求1或2所述的系统,其特征在于,所述任一线程还用于:若检测到所述目标对象的创建信息不包括所述目标对象与任一对象的依赖关系,则在所述第二数据库中创建所述目标对象,并在所述共享表中设置所述目标对象的创建标识为已创建标识。4.如权利要求1或2所述的系统,其特征在于,所述系统还包括数据分发器;所述数据分发器,用于:对所述全部对象的创建信息进行分块处理后得到多个分块,以及将所述多个分块分别发送给所述多个线程。5.如权利要求4所述的系统,其特征在于,所述系统还包括采集模块;所述采集模块,用于:从所述第一数据库中采集所述全部对象的创建信息;将所述全部对象的创建信息保存到磁盘。6.如权利要求5所述的系统,其特征在...

【专利技术属性】
技术研发人员:肖俊叶智伟李耀宗石方波
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1