一种跨数据库的数据迁移方法和装置与流程

专利2022-06-29  74


本发明涉及数据库领域,更具体地,特别是指一种跨数据库的数据迁移方法和装置。



背景技术:

在云计算时代,云管平台需要升级的频率越来越高,要保证老系统到新系统的无缝切换,必须要保证数据的正确性,而将老系统中数据迁移到新系统。因此对其他老平台的用户数据和历史数据需要迁移到云管平台,跨数据库平台进行数据迁移就是一个需要面临解决的问题。虽然许多数据库厂商都提供数据抽取工具,如informix的infomover、microsoftsqlserver的dts和0raele的oraclewarehousebuilder等,但这些工具的适用范围有限,且对于数据迁移而言易导致数据库出现不可预期的错误,安全性稳定性差。

针对现有技术中数据迁移安全性稳定性差的问题,目前尚无有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种跨数据库的数据迁移方法和装置,能够提高迁移后数据库工作的安全性和稳定性,同时还提高迁移效率。

基于上述目的,本发明实施例的第一方面提供了一种跨数据库的数据迁移方法,包括执行以下步骤:

基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;

基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;

基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;

使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息。

在一些实施方式中,待迁移数据包括多组待迁移数据;

生成目标数据库可执行的目标数据库语句集包括:为每组待迁移数据分别生成相应的目标数据库语句集,并且在上一组待迁移数据已经被迁移到目标数据库中之后才为下一组待迁移数据生成目标数据库语句集;或一次性为所有待迁移数据生成唯一的目标数据库语句集。

在一些实施方式中,基于源数据库信息配置生成指向源数据库的源连接句柄包括:从源数据库信息配置中提取源数据库登录信息,并基于源数据库登录信息而连接到源数据库;

基于目标数据库信息配置生成指向目标数据库的目标连接句柄包括:从目标数据库信息配置中提取目标数据库登录信息,并基于目标数据库登录信息而连接到目标数据库。

在一些实施方式中,基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集包括:从跨数据库字段映射配置获取记载有源数据库和目标数据库之间的字段映射关系,并所使用字段映射关系来正向映射待迁移数据以获得目标数据库格式数据,并基于目标数据库格式数据和目标数据库格式数据将插入的目标数据库位置而生成目标数据库结构语句和数据插入语句,并将目标数据库结构语句和数据插入语句按照预期顺序组合为目标数据库语句集。

在一些实施方式中,还包括:在执行上述每一步骤时都生成和输出记载上述步骤执行情况的迁移日志。

本发明实施例的第二方面提供了一种跨数据库的数据迁移装置,包括:

处理器;和

存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:

基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;

基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;

基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;

使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息。

在一些实施方式中,待迁移数据包括多组待迁移数据;

生成目标数据库可执行的目标数据库语句集包括:为每组待迁移数据分别生成相应的目标数据库语句集,并且在上一组待迁移数据已经被迁移到目标数据库中之后才为下一组待迁移数据生成目标数据库语句集;或一次性为所有待迁移数据生成唯一的目标数据库语句集。

在一些实施方式中,基于源数据库信息配置生成指向源数据库的源连接句柄包括:从源数据库信息配置中提取源数据库登录信息,并基于源数据库登录信息而连接到源数据库;

基于目标数据库信息配置生成指向目标数据库的目标连接句柄包括:从目标数据库信息配置中提取目标数据库登录信息,并基于目标数据库登录信息而连接到目标数据库。

在一些实施方式中,基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集包括:从跨数据库字段映射配置获取记载有源数据库和目标数据库之间的字段映射关系,并所使用字段映射关系来正向映射待迁移数据以获得目标数据库格式数据,并基于目标数据库格式数据和目标数据库格式数据将插入的目标数据库位置而生成目标数据库结构语句和数据插入语句,并将目标数据库结构语句和数据插入语句按照预期顺序组合为目标数据库语句集。

在一些实施方式中,步骤还包括:在执行上述每一步骤时都生成和输出记载上述步骤执行情况的迁移日志。

本发明具有以下有益技术效果:本发明实施例提供的跨数据库的数据迁移方法和装置,通过基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息的技术方案,能够提高迁移后数据库工作的安全性和稳定性,同时还提高迁移效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的跨数据库的数据迁移方法的流程示意图;

图2为本发明提供的跨数据库的数据迁移方法的实施例的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了一种能够提高迁移后数据库工作的安全性和稳定性的跨数据库的数据迁移方法的一个实施例。图1示出的是本发明提供的跨数据库的数据迁移方法的流程示意图。

所述的跨数据库的数据迁移方法,如图1所示,包括执行以下步骤:

步骤s101:基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;

步骤s103:基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;

步骤s105:基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;

步骤s107:使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息。

本发明提出一种在线数据迁移的方法,使用python迁移脚本并基于获取源数据库信息配置、目标数据库配置、源数据与目标数据字段映射配置。本发明采用python语言的数据库连接技术,通过源数据库信息配置建立与源数据库的连接,利用连接句柄读取源数据库中的数据。根据配置的源数据与目标数据字段映射配置,将读取出的源数据转换成目标数据所需要的数据库结构sql语句和数据插入sql语句。本发明还通过目标数据库信息配置建立与目标数据库的连接来执行生成的sql语句,在目标数据库中建立目标数据库表和数据插入操作。上述操作都会打印出日志记录,可以实现实时日志显示功能,保证迁移的准确性和正确性,防止数据丢失。本发明支持相同数据库厂商之间进行迁移,如oracle到oracle,mysql到mysql等数据库内数据的迁移;也可以实现不同数据库厂商之间进行迁移,如oracle到mysql,mysql到informix等数据库之间进行数据的迁移。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

在一些实施方式中,待迁移数据包括多组待迁移数据。生成目标数据库可执行的目标数据库语句集包括:为每组待迁移数据分别生成相应的目标数据库语句集,并且在上一组待迁移数据已经被迁移到目标数据库中之后才为下一组待迁移数据生成目标数据库语句集;或一次性为所有待迁移数据生成唯一的目标数据库语句集。

在一些实施方式中,基于源数据库信息配置生成指向源数据库的源连接句柄包括:从源数据库信息配置中提取源数据库登录信息,并基于源数据库登录信息而连接到源数据库。基于目标数据库信息配置生成指向目标数据库的目标连接句柄包括:从目标数据库信息配置中提取目标数据库登录信息,并基于目标数据库登录信息而连接到目标数据库。

在一些实施方式中,基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集包括:从跨数据库字段映射配置获取记载有源数据库和目标数据库之间的字段映射关系,并所使用字段映射关系来正向映射待迁移数据以获得目标数据库格式数据,并基于目标数据库格式数据和目标数据库格式数据将插入的目标数据库位置而生成目标数据库结构语句和数据插入语句,并将目标数据库结构语句和数据插入语句按照预期顺序组合为目标数据库语句集。

在一些实施方式中,还包括:在执行上述每一步骤时都生成和输出记载上述步骤执行情况的迁移日志。

根据本发明实施例公开的方法还可以被实现为由cpu(中央处理器)执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

下面根据图2所示的具体实施例进一步阐述本发明的具体实施方式。

如图2所示,首先提前配置源数据库和目标数据库的连接信息,配置文件为例如oaconfig.py,然后配置需要迁移的新老数据表的字段映射关系。执行迁移时,工具首先与源数据库建立连接,并获取到需要迁移的数据。工具循环遍历在源数据库获取到的数据,根据配置的新老数据表的字段映射关系,生成插入新数据库所需要的sql语句。然后与目标数据库建立连接并执行生成的sql语句,将数据插入新数据库中。执行过程打印执行日志,统计失败成功记录个数。

从上述实施例可以看出,本发明实施例提供的跨数据库的数据迁移方法,通过基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息的技术方案,能够提高迁移后数据库工作的安全性和稳定性,同时还提高迁移效率。

需要特别指出的是,上述跨数据库的数据迁移方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于跨数据库的数据迁移方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种能够提高迁移后数据库工作的安全性和稳定性的跨数据库的数据迁移装置的一个实施例。跨数据库的数据迁移装置包括:

处理器;和

存储器,存储有处理器可运行的程序代码,程序代码在被运行时依次执行以下步骤:

基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;

基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;

基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;

使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息。

在一些实施方式中,待迁移数据包括多组待迁移数据。生成目标数据库可执行的目标数据库语句集包括:为每组待迁移数据分别生成相应的目标数据库语句集,并且在上一组待迁移数据已经被迁移到目标数据库中之后才为下一组待迁移数据生成目标数据库语句集;或一次性为所有待迁移数据生成唯一的目标数据库语句集。

在一些实施方式中,基于源数据库信息配置生成指向源数据库的源连接句柄包括:从源数据库信息配置中提取源数据库登录信息,并基于源数据库登录信息而连接到源数据库。基于目标数据库信息配置生成指向目标数据库的目标连接句柄包括:从目标数据库信息配置中提取目标数据库登录信息,并基于目标数据库登录信息而连接到目标数据库。

在一些实施方式中,基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集包括:从跨数据库字段映射配置获取记载有源数据库和目标数据库之间的字段映射关系,并所使用字段映射关系来正向映射待迁移数据以获得目标数据库格式数据,并基于目标数据库格式数据和目标数据库格式数据将插入的目标数据库位置而生成目标数据库结构语句和数据插入语句,并将目标数据库结构语句和数据插入语句按照预期顺序组合为目标数据库语句集。

在一些实施方式中,步骤还包括:在执行上述每一步骤时都生成和输出记载上述步骤执行情况的迁移日志。

从上述实施例可以看出,本发明实施例提供的跨数据库的数据迁移装置,通过基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息的技术方案,能够提高迁移后数据库工作的安全性和稳定性,同时还提高迁移效率。

需要特别指出的是,上述跨数据库的数据迁移装置的实施例采用了所述跨数据库的数据迁移方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述跨数据库的数据迁移方法的其他实施例中。当然,由于所述跨数据库的数据迁移方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述跨数据库的数据迁移装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。


技术特征:

1.一种跨数据库的数据迁移方法,其特征在于,包括执行以下步骤:

基于源数据库信息配置生成指向源数据库的源连接句柄,并使用所述源连接句柄从所述源数据库采集待迁移数据;

基于跨数据库字段映射配置处理所述待迁移数据,生成目标数据库可执行的目标数据库语句集;

基于目标数据库信息配置生成指向所述目标数据库的目标连接句柄,并使用所述目标连接句柄向所述目标数据库传输所述目标数据库语句集;

使所述目标数据库执行所述目标数据库语句集以向所述目标数据库中插入所述待迁移数据中所包括的信息。

2.根据权利要求1所述的方法,其特征在于,所述待迁移数据包括多组待迁移数据;

生成目标数据库可执行的目标数据库语句集包括:为每组所述待迁移数据分别生成相应的所述目标数据库语句集,并且在上一组所述待迁移数据已经被迁移到所述目标数据库中之后才为下一组所述待迁移数据生成目标数据库语句集;或一次性为所有所述待迁移数据生成唯一的所述目标数据库语句集。

3.根据权利要求1所述的方法,其特征在于,基于源数据库信息配置生成指向源数据库的源连接句柄包括:从所述源数据库信息配置中提取源数据库登录信息,并基于所述源数据库登录信息而连接到所述源数据库;

基于目标数据库信息配置生成指向所述目标数据库的目标连接句柄包括:从所述目标数据库信息配置中提取目标数据库登录信息,并基于所述目标数据库登录信息而连接到所述目标数据库。

4.根据权利要求1所述的方法,其特征在于,基于跨数据库字段映射配置处理所述待迁移数据,生成目标数据库可执行的目标数据库语句集包括:从所述跨数据库字段映射配置获取记载有所述源数据库和所述目标数据库之间的字段映射关系,并所使用所述字段映射关系来正向映射所述待迁移数据以获得目标数据库格式数据,并基于所述目标数据库格式数据和所述目标数据库格式数据将插入的所述目标数据库位置而生成目标数据库结构语句和数据插入语句,并将所述目标数据库结构语句和所述数据插入语句按照预期顺序为组合所述目标数据库语句集。

5.根据权利要求1所述的方法,其特征在于,还包括:在执行上述每一步骤时都生成和输出记载上述步骤执行情况的迁移日志。

6.一种跨数据库的数据迁移装置,其特征在于,包括:

处理器;和

存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时依次执行以下步骤:

基于源数据库信息配置生成指向源数据库的源连接句柄,并使用所述源连接句柄从所述源数据库采集待迁移数据;

基于跨数据库字段映射配置处理所述待迁移数据,生成目标数据库可执行的目标数据库语句集;

基于目标数据库信息配置生成指向所述目标数据库的目标连接句柄,并使用所述目标连接句柄向所述目标数据库传输所述目标数据库语句集;

使所述目标数据库执行所述目标数据库语句集以向所述目标数据库中插入所述待迁移数据中所包括的信息。

7.根据权利要求6所述的装置,其特征在于,所述待迁移数据包括多组待迁移数据;

生成目标数据库可执行的目标数据库语句集包括:为每组所述待迁移数据分别生成相应的所述目标数据库语句集,并且在上一组所述待迁移数据已经被迁移到所述目标数据库中之后才为下一组所述待迁移数据生成目标数据库语句集;或一次性为所有所述待迁移数据生成唯一的所述目标数据库语句集。

8.根据权利要求6所述的装置,其特征在于,基于源数据库信息配置生成指向源数据库的源连接句柄包括:从所述源数据库信息配置中提取源数据库登录信息,并基于所述源数据库登录信息而连接到所述源数据库;

基于目标数据库信息配置生成指向所述目标数据库的目标连接句柄包括:从所述目标数据库信息配置中提取目标数据库登录信息,并基于所述目标数据库登录信息而连接到所述目标数据库。

9.根据权利要求6所述的装置,其特征在于,基于跨数据库字段映射配置处理所述待迁移数据,生成目标数据库可执行的目标数据库语句集包括:从所述跨数据库字段映射配置获取记载有所述源数据库和所述目标数据库之间的字段映射关系,并所使用所述字段映射关系来正向映射所述待迁移数据以获得目标数据库格式数据,并基于所述目标数据库格式数据和所述目标数据库格式数据将插入的所述目标数据库位置而生成目标数据库结构语句和数据插入语句,并将所述目标数据库结构语句和所述数据插入语句按照预期顺序组合为所述目标数据库语句集。

10.根据权利要求6所述的装置,其特征在于,所述步骤还包括:在执行上述每一步骤时都生成和输出记载上述步骤执行情况的迁移日志。

技术总结
本发明公开了一种跨数据库的数据迁移方法和装置,方法包括:基于源数据库信息配置生成指向源数据库的源连接句柄,并使用源连接句柄从源数据库采集待迁移数据;基于跨数据库字段映射配置处理待迁移数据,生成目标数据库可执行的目标数据库语句集;基于目标数据库信息配置生成指向目标数据库的目标连接句柄,并使用目标连接句柄向目标数据库传输目标数据库语句集;使目标数据库执行目标数据库语句集以向目标数据库中插入待迁移数据中所包括的信息。本发明能够提高迁移后数据库工作的安全性和稳定性,同时还提高迁移效率。

技术研发人员:周鑫勇;陈显桂
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2020.01.19
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25997.html

最新回复(0)