一种数据迁移方法及装置与流程

文档序号:16263602发布日期:2018-12-14 21:46阅读:152来源:国知局
一种数据迁移方法及装置与流程

本发明涉及数据库领域,特别涉及一种数据迁移方法及装置。

背景技术

在生产环境中,由于生产业务发展的需要,时常存在数据库类型更换、硬件设备更换等问题,进而导致数据库迁移的需求,即将数据从源数据库迁移到目标数据库。

现有技术在将源数据库的数据迁移到目标数据库时,一般采用数据库自带的导入导出命令进行迁移。但在不同类型数据库之间进行数据迁移时,由于源数据库和目标数据库的配置信息的不同,如果还采用以上方式迁移数据,那么数据在导入目标数据库后很可能会出现乱码的问题,导致数据导入失败。



技术实现要素:

本发明实施例提供一种数据迁移方法及装置,用于解决现有技术存在无法在不同类型数据库之间进行数据迁移的技术问题。

第一方面,本发明实施例提供一种数据迁移方法,将待迁移数据从源数据库迁移到目标数据库时,包括:

获取所述源数据库的配置信息、所述目标数据库的配置信息;

根据所述源数据库的配置信息、所述目标数据库的配置信息确定转换规则;

根据所述转换规则,将所述待迁移数据转换为符合所述目标数据库环境格式的数据;

将转换后的数据导入所述目标数据库。

本实施方式通过判断源数据库和目标数据库的配置信息差异,生成转换规则,在将源数据库中的待迁移数据导入目标数据库之前,根据所述转换规则对待迁移数据进行转换,使得转换后的数据能够符合目标数据库的环境格式,进而避免数据在导入目标数据库后出现乱码的问题,实现不同类型数据库之间的数据迁移;并且,相较于现有技术,增快了数据迁移的速度,提高了数据迁移效率。

可选的,所述配置信息包括数据库的类型、数据库的版本、字符集、数据库字典、数据库指令集中的至少一项。

本实施方式给出了配置信息的多种具体实现方式,使得数据迁移的处理过程可以更加灵活。

可选的,所述根据所述源数据库的配置信息、所述目标数据库的配置信息确定转换规则,包括:对比所述源数据库的配置信息和所述目标数据库的配置信息,确定所述源数据库与所述目标数据库的差异;根据所述差异生成转换规则。

本实施方式给出了确定转换规则的具体实现方法,保证了数据转换的可靠性。

可选的,在将转换后的数据导入所述目标数据库之后,还包括:获取所述源数据库的验证要素和所述目标数据库的验证要素;对所述源数据库的验证要素进行哈希计算,获得源验证码;以及,对所述目标数据库的验证要素进行哈希计算,获得目标验证码;验证所述源验证码与所述目标验证码是否一致;若为是,则确定导入所述目标数据库的数据完整;否则,确定导入所述目标数据库的数据不完整。

本实施方式分别对源数据库和目标数据库的验证要素进行哈希计算得到源验证码和目标验证码,通过比较源验证码与目标验证码是否一致可以准确地确定导入目标数据库的数据是否完整,且验证效率高。

可选的,所述验证要素包括表个数、表名、索引名、索引个数、触发器名、触发器个数、字段个数、字段名、字段长度、插入数据条数、部分表数据中的至少一项。

本实施方式给出了验证要素的多种实现方式,可以使得数据完整性验证的处理过程更为灵活。

可选的,在对所述源数据库的验证要素、所述目标数据库的验证要素进行哈希计算之前,包括:根据所述转换规则,确定所述目标数据库的验证要素中是否存在满足预设条件的第一验证要素;其中,所述预设条件包括:所述第一验证要素与所述源数据库中的第二验证要素指代的功能相同,所述第一验证要素与所述第二验证要素的名称不同;若存在,则根据所述转换规则将所述目标数据库中的第一验证要素转换为所述第二验证要素。

本实施方式在生成验证码之前对目标数据库中满足所述预设条件的验证要素进行转换,保证了数据完整性验证的可靠性。

第二方面,本发明实施例提供一种数据迁移装置,包括:获取单元,用于将待迁移数据从源数据库迁移到目标数据库时,获取所述源数据库的配置信息、所述目标数据库的配置信息;处理单元,用于根据所述源数据库的配置信息、所述目标数据库的配置信息确定转换规则;根据所述转换规则,将所述待迁移数据转换为符合所述目标数据库环境格式的数据;导入单元,用于将转换后的数据导入所述目标数据库。

可选的,所述配置信息包括数据库的类型、数据库的版本、字符集、数据库字典、数据库指令集中的至少一项。

可选的,所述处理单元具体用于:对比所述源数据库的配置信息和所述目标数据库的配置信息,确定所述源数据库与所述目标数据库的差异;根据所述差异生成转换规则。

可选的,所述获取单元还用于:在所述导入单元将转换后的数据导入所述目标数据库之后,获取所述源数据库的验证要素和所述目标数据库的验证要素;所述处理单元还用于:对所述源数据库的验证要素进行哈希计算,获得源验证码;以及,对所述目标数据库的验证要素进行哈希计算,获得目标验证码;验证所述源验证码与所述目标验证码是否一致;若为是,则确定导入所述目标数据库的数据完整;否则,确定导入所述目标数据库的数据不完整。

可选的,所述验证要素包括表个数、表名、索引名、索引个数、触发器名、触发器个数、字段个数、字段名、字段长度、插入数据条数、部分表数据中的至少一项。

可选的,所述处理单元还用于:在对所述源数据库的验证要素、所述目标数据库的验证要素进行哈希计算之前,根据所述转换规则,确定所述目标数据库的验证要素中是否存在满足预设条件的第一验证要素;其中,所述预设条件包括:所述第一验证要素与所述源数据库中的第二验证要素指代的功能相同,所述第一验证要素与所述第二验证要素的名称不同;若存在,则根据所述转换规则将所述目标数据库中的第一验证要素转换为所述第二验证要素。

第三方面,本发明实施例提供一种数据迁移设备,包括:存储器,用于存储计算机指令;处理器,与所述存储器通信连接,用于执行所述存储器中的计算机指令,以在执行所述计算机指令时执行本发明实施例第一方面或第一方面的任一种可选的实施方式所述的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行本发明实施例第一方面或第一方面的任一种可选的实施方式所述的方法。

本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明实施例技术方案通过判断源数据库和目标数据库的配置信息差异,生成转换规则,在将源数据库中的待迁移数据导入目标数据库之前,根据所述转换规则对待迁移数据进行转换,使得转换后的数据能够符合目标数据库的环境格式,进而避免数据在导入目标数据库后出现乱码的问题,实现不同类型数据库之间的数据迁移;并且,相较于现有技术,增快了数据迁移的速度,提高了数据迁移效率。

附图说明

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

图1为本发明实施例中数据迁移方法的流程示意图;

图2为本发明实施例中数据迁移装置的结构示意图;

图3为本发明实施例中数据迁移设备的结构示意图。

具体实施方式

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本发明实施例的描述中“多个”,是指两个或两个以上。

本发明实施例提供一种数据迁移方法及装置,用于解决现有技术存在无法在不同类型数据库之间进行数据迁移的技术问题。其中,本发明所述方法和装置基于同一发明构思,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。

参照图1,所述数据迁移方法包括:

s101:获取所述源数据库的配置信息、所述目标数据库的配置信息;

在本发明实施例中,所述配置信息可以为数据库的类型、数据库的版本、字符集、数据库字典、数据库指令集以及其他环境配置信息中的一项或者多项的组合,本发明实施例不做具体限制。

s102:根据所述源数据库的配置信息、所述目标数据库的配置信息确定转换规则;

具体的,对比所述源数据库的配置信息和所述目标数据库的配置信息,确定所述源数据库与所述目标数据库的差异,根据所述差异生成转换规则。例如,通过对比源数据库与目标数据的配置信息,发现源数据库中的yx1信息在目标数据库不能使用yx1表示,而需要使用mx1进行表示,那么转换规则包括在将源数据库中的yx1迁移到目标数据库时需要转换为mx1。

s103:根据所述转换规则,将所述待迁移数据转换为符合所述目标数据库环境格式的数据;

继续延用上述步骤s102的例子,假设待迁移数据中包含yx1信息,则根据所述转换规则,在将所述待迁移数据导入目标数据库之前,将待迁移数据中的yx1信息替换为mx1信息。

s104:将转换后的数据导入所述目标数据库。

在具体实施过程中,在需要将一个源数据库中的数据迁移到多个目标数据库、或者是将多个源数据库中的数据迁移到多个目标数据库时,只需要根据各源数据库和各源数据对应的目标数据库生成多个转换规则,在迁移过程中可采用多并发迁移,进而提高迁移效率。

在具体实施过程中,本发明实施例的使用场景可以是单表数据的迁移(指目标数据库上创建有表结构,只对源数据库中的部分表数据进行迁移),也可以是整库数据的迁移(指在目标数据库上完全没有创建表结构,直接将源数据中的所有数据迁移到目标数据库)。在整库数据迁移过程中,本发明实施例所提供的方案不需要在目标数据库中创建表结构。

上述实施例通过判断源数据库和目标数据库的配置信息差异,生成转换规则,在将源数据库中的待迁移数据导入目标数据库之前,根据所述转换规则对待迁移数据进行转换,使得转换后的数据能够符合目标数据库的环境格式,进而避免数据在导入目标数据库后出现乱码的问题,实现不同类型数据库之间的数据迁移;并且,相较于现有技术,增快了数据迁移的速度,提高了数据迁移效率。

进一步的,为了保证导入到目标数据库的数据的完整性,在将转换后的数据导入所述目标数据库之后,所述方法还包括:获取所述源数据库的验证要素和所述目标数据库的验证要素;对所述源数据库的验证要素进行哈希计算,获得源验证码;以及,对所述目标数据库的验证要素进行哈希计算,获得目标验证码;验证所述源验证码与所述目标验证码是否一致;若为是,则确定导入所述目标数据库的数据完整;否则,确定导入所述目标数据库的数据不完整。

其中,所述验证要素可以为表个数、表名、索引名、索引个数、触发器名、触发器个数、字段个数、字段名、字段长度、插入数据条数、部分表数据等,本发明实施例不做具体限制。

在具体实施过程中,在对所述源数据库的验证要素、所述目标数据库的验证要素进行哈希计算之前,所述方法还可以进一步包括:根据所述转换规则,确定所述目标数据库的验证要素中是否存在满足预设条件的第一验证要素;若存在,则根据所述转换规则将所述目标数据库中的第一验证要素转换为所述第二验证要素。其中,所述预设条件包括:所述第一验证要素与所述源数据库中的第二验证要素指代的功能相同,所述第一验证要素与所述第二验证要素的名称不同。例如:源数据库中存在触发器,而目标数据库中不存在触发器,但是目标数据库中存在与源数据中触发器具有相同功能的命令,则需要将目标数据库中实现所述触发器功能的命令替换为所述触发器。

现有技术虽然也存在对迁移数据进行完整性验证的方案,但是现有技术所采用的验证方法是采用传统的sql语句(selectcount(*)from表名)查询数据条目数进行完整性数据验证,这种方法仅能统计数据条目数,并不能完全保证准确验证数据的完整性;而本实施方式,通过获取源数据库和目标数据库的验证要素,分别进行哈希计算生成源验证码和目标验证码,通过对比源验证码与目标验证码是否一致,可以准确地确定导入目标数据库的数据是否完整,并且相较于查询数据条目数的验证方式,本实施方式验证效率更高。

基于同一发明构思,本发明实施例还提供一种数据迁移装置,参照图2,该装置包括:

获取单元201,用于将待迁移数据从源数据库迁移到目标数据库时,获取所述源数据库的配置信息、所述目标数据库的配置信息;

处理单元202,用于根据所述源数据库的配置信息、所述目标数据库的配置信息确定转换规则;根据所述转换规则,将所述待迁移数据转换为符合所述目标数据库环境格式的数据;

导入单元203,用于将转换后的数据导入所述目标数据库。

可选的,所述配置信息包括数据库的类型、数据库的版本、字符集、数据库字典、数据库指令集中的至少一项。

可选的,所述处理单元202具体用于:

对比所述源数据库的配置信息和所述目标数据库的配置信息,确定所述源数据库与所述目标数据库的差异;

根据所述差异生成转换规则。

可选的,所述获取单元201还用于:

在所述导入单元203将转换后的数据导入所述目标数据库之后,获取所述源数据库的验证要素和所述目标数据库的验证要素;

所述处理单元202还用于:对所述源数据库的验证要素进行哈希计算,获得源验证码;以及,对所述目标数据库的验证要素进行哈希计算,获得目标验证码;验证所述源验证码与所述目标验证码是否一致;若为是,则确定导入所述目标数据库的数据完整;否则,确定导入所述目标数据库的数据不完整。

可选的,所述验证要素包括表个数、表名、索引名、索引个数、触发器名、触发器个数、字段个数、字段名、字段长度、插入数据条数、部分表数据中的至少一项。

可选的,所述处理单元202还用于:

在对所述源数据库的验证要素、所述目标数据库的验证要素进行哈希计算之前,根据所述转换规则,确定所述目标数据库的验证要素中是否存在满足预设条件的第一验证要素;其中,所述预设条件包括:所述第一验证要素与所述源数据库中的第二验证要素指代的功能相同,所述第一验证要素与所述第二验证要素的名称不同;若存在,则根据所述转换规则将所述目标数据库中的第一验证要素转换为所述第二验证要素。

以上各单元所执行操作的具体实现方式可以参照本发明实施例上述数据迁移方法中对应的步骤,本发明实施例不再赘述。

基于同一发明构思,本发明实施例还提供一种数据迁移设备,参照图3,该设备包括:

存储器301,用于存储计算机指令;

处理器302,与所述存储器通信连接,用于执行所述存储器301中的计算机指令,以在执行所述计算机指令时执行本发明实施例上述数据迁移方法。

基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行本发明实施例上述数据迁移方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1