一种数据迁移的方法及系统的制作方法

文档序号:10594212阅读:464来源:国知局
一种数据迁移的方法及系统的制作方法
【专利摘要】本发明公开了一种数据迁移的方法,包括:对数据库中的数据进行迁移时,将迁移数据所需要的迁移参数输入已编程的迁移脚本框架中,根据迁移参数自动生成相应数量的可执行程序集合,从而通过运行可执行程序集合实现对数据的迁移,减少手动执行迁移过程中引起的重复、遗漏或者错误等问题,释放工程师精力,关注迁移过程和结果,提高工作效率和数据迁移的完整性及准确性;其中,迁移参数为表名称参数文件、数据库连接名称信息、可执行程序的第一数量信息、可执行程序中语句的第二数量信息;本发明还公开了一种数据迁移的系统,同样能实现上述技术效果。
【专利说明】
一种数据迁移的方法及系统
技术领域
[0001] 本发明涉及数据迀移技术领域,更具体地说,涉及一种数据迀移的方法及系统。
【背景技术】
[0002] ORACLE向K-DB进行数据迀移的过程中,涉及到上百GB的大容量业务表的迀移工作,常用的方法是采用数据库连接或者通过平滑文本文件进行数据迀移工作。而在使用数据库连接迀移过程中,需要在多个窗口手动执行迀移语句,实现并行迀移提高迀移效率。面对复杂的业务系统涉及到几百张或者上千张表情况,手动执行迀移语句或者编写迀移脚本就活耗费很多的时间和精力,而且手动迀移或写脚本对准确度有较高要求,不能出现遗漏、 错误等问题。
[0003] 因此,如何进行数据迀移,是本领域技术人员需要解决的问题。

【发明内容】

[0004] 本发明的目的在于提供一种数据迀移的方法及系统,以实现对数据进行数据迀移迀移。
[0005] 为实现上述目的,本发明实施例提供了如下技术方案:
[0006] —种数据迀移的方法,包括:
[0007] 获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息;
[0008] 将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合;
[0009] 执行所述可执行程序集合,对所述待迀移数据表进行迀移。
[0010] 其中,获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息,包括:
[0011] 获取表名称参数文件;
[0012] 检测所述表名称参数文件的有效性;若有效,则获取所述数据库连接名称信息;若无效,则生成所述表名称参数文件无效的提示信息;
[0013] 检测所述数据库连接名称的有效性;
[0014] 若所述数据库连接名称有效,则获取所述第一数量信息和所述第二数量信息;若无效,则生成所述数据库连接名称息无效的提示信息。
[0015] 其中,若可执行程序的第一数量信息大于一,则所述执行所述可执行程序集合,对所述待迀移数据表进行迀移,包括:
[0016] 并行执行所述可执行程序集合中的可执行程序,对所述待迀移数据表进行迀移。
[0017] 其中,执行所述可执行程序,对所述待迀移数据表进行迀移之后,还包括:
[0018] 生成数据迀移日志;其中,所述数据迀移日志中记录数据迀移结果。 [0019 ]其中,所述生成数据迀移日志之后,还包括:
[0020] 检测所述迀移日志中是否有未成功迀移的数据表;
[0021] 若有,则重新执行与所述未成功迀移的数据表对应的可执行程序。
[〇〇22] 一种数据迀移的系统,包括:
[0023] 获取模块,用于获取表名称参数文件、获取数据库连接名称信息、获取可执行程序的第一数量信息、获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息;
[0024] 可执行程序集合生成模块,用于将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合;
[0025] 执行模块,用于执行所述可执行程序集合,对所述待迀移数据表进行迀移。
[〇〇26]其中,所述获取模块包括:
[0027] 第一获取单元,用于获取表名称参数文件;
[0028] 第一检测单元,用于检测所述表名称参数文件的有效性;若有效,则触发第二获取单元;若无效,则触发第一提示单元;
[0029] 所述第一提示单元,用于生成所述表名称参数文件无效的提示信息
[0030] 所述第二获取单元,用于获取所述数据库连接名称信息;
[0031] 第二检测单元,用于检测所述数据库连接名称的有效性;若所述数据库连接名称有效,则触发第三获取单元和第四获取单元;若无效,则触发第二提示单元;
[0032] 所述第二提示单元,用于生成所述数据库连接名称息无效的提示信息 [〇〇33]所述第三获取单元,用于获取所述第一数量信息;
[0034] 所述第四获取单元,用于获取所述第二数量信息。
[0035] 其中,若可执行程序的第一数量信息大于一,则所述执行模块通过并行执行所述可执行程序集合中的可执行程序,对所述待迀移数据表进行迀移。
[〇〇36] 其中,本方案还包括:
[0037]迀移日志生成模块,用于生成数据迀移日志;其中,所述数据迀移日志中记录数据迀移结果。
[〇〇38] 其中,本方案还包括:
[0039] 检测模块,用于检测所述迀移日志中是否有未成功迀移的数据表;
[0040] 若有,则重新执行与所述未成功迀移的数据表对应的可执行程序。
[0041] 通过以上方案可知,本发明实施例提供的一种数据迀移的方法,包括:获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息;将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合;执行所述可执行程序集合,对所述待迀移数据表进行迀移;
[0042] 可见,在本实施例中,在对数据库中的数据进行迀移时,只需要将迀移数据所需要的迀移参数输入事先编程好的迀移脚本框架中,即可根据迀移参数自动生成相应数量的可执行程序集合,从而通过运行可执行程序集合实现对数据的迀移,从而减少手动执行迀移过程中引起的重复、遗漏或者错误等问题,释放工程师精力关注迀移过程和结果,提高工作效率和数据迀移的完整性及准确性;本发明还公开了一种数据迀移的系统,同样能实现上述技术效果。
【附图说明】
[0043] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044] 图1为本发明实施例公开的一种数据迀移的方法流程示意图;
[0045] 图2为本发明实施例公开的一种迀移参数的验证流程示意图;
[0046] 图3为本发明实施例公开的一种数据迀移的系统结构框图。
【具体实施方式】
[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 本发明实施例公开了一种数据迀移的方法及系统,以实现对数据进行数据迀移迀移。
[0049] 参见图1,本发明实施例提供的一种数据迀移的方法,包括:
[0050] S101、获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息;
[0051] 具体的,本实施例中的第一数量信息是指需要产生的可执行程序的数量,第二数量信息是指产生的可执行程序中语句的数量。可以理解的是,若第一数量信息中的数量为多个,那么在获取第二数量信息时,若第二数量信息为一个,则代表产生的所有可执行程序中语句的数量是相同的,即为第二数量信息,若第二数量信息为多个,那么则需要设置每个数量信息与可执行程序的对应关系;例如:若生成的可执行程序分别为程序A、程序B、程序 C,且第二数量信息为m个,则代表最终生成m个程序A,m个程序B,和m个程序C;若第二数量信息为η个程序A,i个程序B,和k个程序C,则最终生成η个程序A,i个程序B,和k个程序C。
[0052] 具体的,本实施例中的迀移表的名称信息可以批量编写在一个文本文件中作为整个程序的输入参数,这个文本文件可以称为表名称参数文件。
[0053] 其中,获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息,包括:
[0054] 获取表名称参数文件;
[0055] 检测所述表名称参数文件的有效性;若有效,则获取所述数据库连接名称信息;若无效,则生成所述表名称参数文件无效的提示信息;
[0056] 检测所述数据库连接名称的有效性;
[〇〇57]若所述数据库连接名称有效,则获取所述第一数量信息和所述第二数量信息;若无效,则生成所述数据库连接名称息无效的提示信息。
[0058] 具体的,在本实施例中通过编程实现迀移脚框架内容的实现,有了迀移脚本框架后只需在输入相关迀移表的名称参数、数据库连接名称信息、迀移可执行程序数量的第一数量信息、迀移可执行程序中语句的第二数量信息即可。
[0059] 具体的,参见图2,在获取迀移参数时,即获取迀移数据表的名称信息、数据库连接名称信息、第一数量信息、第二数量信息时,可以对获取的各个迀移参数进行验证,验证过程如下:
[0000] S201、验证最先获取的表名称参数文件中是否存在名称彳目息;
[0061 ]若不存在,则执行S202;若存在,则执行S203;
[〇〇62] S202、发出表名称参数文件中无名称信息的提示信息;
[〇〇63] S203、验证文件中的名称信息是否存在;
[〇〇64]若不存在,则执行S204;若存在,则执行S205;
[〇〇65] S204、发出表名称参数文件中的名称信息无效的提示信息;
[〇〇66] S205、验证获取的数据库连接名称信息是否存在;
[〇〇67]若不存在,则执行S206;若存在,则执行S207;
[〇〇68] S206、发出数据库连接名称信息不存在的提示信息;
[0069] 具体的,在本实施例中可以不对数量信息进行验证,也可以分别设置第一参数信息和第二参数信息预定分为,即设置最大阈值和最小阈值,若超出最大阈值或者小于最小阈值,则说明第一数量信息和第二数量信息无效,则发出第一数量信息或者第二数量信息无效的提示信息。
[0070] S207、验证第一数量信息是否超过第一预定范围;
[〇〇71]若是,则执行S208;若否,则执行S209;
[〇〇72] S208、发出第一数量信息无效的提示信息;
[〇〇73] S209、验证第二数量信息是否超过第二预定范围;
[0074]若是,则执行S210;若否,则表明所有迀移参数输入成功;
[〇〇75] S210、发出第二数量信息无效的提示信息。
[0076] 具体的,本实施例中的迀移参数,可以是在执行前统一输入,也可以是在程序在执行过程中,产生UI交互时依次输入的。
[0077] S102、将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合;
[0078] S103、执行所述可执行程序集合,对所述待迀移数据表进行迀移。
[0079] 其中,若可执行程序的第一数量信息大于一,则所述执行所述可执行程序集合,对所述待迀移数据表进行迀移,包括:
[0080] 并行执行所述可执行程序集合中的可执行程序,对所述待迀移数据表进行迀移。
[0081] 本发明实施例公开了一种具体的数据迀移的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:执行所述可执行程序,对所述待迀移数据表进行迀移之后,还包括:
[0082] 生成数据迀移日志;其中,所述数据迀移日志中记录数据迀移结果。
[0083] 其中,所述生成数据迀移日志之后,还包括:
[0084] 检测所述迀移日志中是否有未成功迀移的数据表;
[0085] 若有,则重新执行与所述未成功迀移的数据表对应的可执行程序。
[0086] 具体的,若本实施例中生成的可执行程序的数量为多个,则在执行可执行程序时会生成log日志,记录执行结果。若发现日志中出现报错,则说明可执行程序并没有将所有数据表进行成功迀移,这时,可以根据迀移日志中记录的信息,重新执行相应的可执行程序,实现对报错信息所对应的数据表进行迀移。
[0087] 下面对本发明实施例提供的数据迀移的系统进行介绍,下文描述的数据迀移的系统与上文描述的数据迀移的方法可以相互参照。
[0088] 参见图3,本发明实施例提供的一种数据迀移的系统,包括:
[0089] 获取模块100,用于获取表名称参数文件、获取数据库连接名称信息、获取可执行程序的第一数量信息、获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息;
[0090] 可执行程序集合生成模块200,用于将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合;
[0091] 执行模块300,用于执行所述可执行程序集合,对所述待迀移数据表进行迀移。
[0092] 基于上述技术方案,所述获取模块包括:
[0093] 第一获取单元,用于获取表名称参数文件;
[〇〇94]第一检测单元,用于检测所述表名称参数文件的有效性;若有效,则触发第二获取单元;若无效,则触发第一提示单元;
[0095] 所述第一提示单元,用于生成所述表名称参数文件无效的提示信息
[0096] 所述第二获取单元,用于获取所述数据库连接名称信息;
[0097] 第二检测单元,用于检测所述数据库连接名称的有效性;若所述数据库连接名称有效,则触发第三获取单元和第四获取单元;若无效,则触发第二提示单元;
[0098] 所述第二提示单元,用于生成所述数据库连接名称息无效的提示信息 [〇〇99]所述第三获取单元,用于获取所述第一数量信息;
[0100]所述第四获取单元,用于获取所述第二数量信息。
[0101 ]基于上述技术方案,若可执行程序的第一数量信息大于一,则所述执行模块通过并行执行所述可执行程序集合中的可执行程序,对所述待迀移数据表进行迀移。
[0102] 基于上述技术方案,还包括:
[0103] 迀移日志生成模块,用于生成数据迀移日志;其中,所述数据迀移日志中记录数据迀移结果。
[0104] 基于上述技术方案,还包括:
[0105] 检测模块,用于检测所述迀移日志中是否有未成功迀移的数据表;
[0106] 若有,则重新执行与所述未成功迀移的数据表对应的可执行程序。
[0107] 本发明实施例提供的一种数据迀移的方法,包括:获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息;将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架, 生成可执行程序集合;执行所述可执行程序集合,对所述待迀移数据表进行迀移;
[0108] 可见,在本实施例中,在对数据库中的数据进行迀移时,只需要将迀移数据所需要的迀移参数输入事先编程好的迀移脚本框架中,即可根据迀移参数自动生成相应数量的可执行程序集合,从而通过运行可执行程序集合实现对数据的迀移,从而减少手动执行迀移过程中引起的重复、遗漏或者错误等问题,释放工程师精力关注迀移过程和结果,提高工作效率和数据迀移的完整性及准确性;本发明还公开了一种数据迀移的系统,同样能实现上述技术效果。
[0109] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0110] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种数据迀移的方法,其特征在于,包括: 获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称ig息; 将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合; 执行所述可执行程序集合,对所述待迀移数据表进行迀移。2.根据权利要求1所述的方法,其特征在于,获取表名称参数文件,获取数据库连接名称信息,获取可执行程序的第一数量信息,获取所述可执行程序中语句的第二数量信息,包括: 获取表名称参数文件; 检测所述表名称参数文件的有效性;若有效,则获取所述数据库连接名称信息;若无效,则生成所述表名称参数文件无效的提示信息; 检测所述数据库连接名称的有效性; 若所述数据库连接名称有效,则获取所述第一数量信息和所述第二数量信息;若无效,则生成所述数据库连接名称息无效的提示信息。3.根据权利要求1所述的方法,其特征在于,若可执行程序的第一数量信息大于一,则所述执行所述可执行程序集合,对所述待迀移数据表进行迀移,包括: 并行执行所述可执行程序集合中的可执行程序,对所述待迀移数据表进行迀移。4.根据权利要求1所述的方法,其特征在于,执行所述可执行程序,对所述待迀移数据表进行迀移之后,还包括: 生成数据迀移日志;其中,所述数据迀移日志中记录数据迀移结果。5.根据权利要求4所述的方法,其特征在于,所述生成数据迀移日志之后,还包括: 检测所述迀移日志中是否有未成功迀移的数据表; 若有,则重新执行与所述未成功迀移的数据表对应的可执行程序。6.一种数据迀移的系统,其特征在于,包括: 获取模块,用于获取表名称参数文件、获取数据库连接名称信息、获取可执行程序的第一数量信息、获取所述可执行程序中语句的第二数量信息;其中,所述表名称参数文件中保存待迀移数据表的名称信息; 可执行程序集合生成模块,用于将所述表名称参数文件、所述数据库连接名称信息、所述第一数量信息、所述第二数量信息输入迀移脚本框架,生成可执行程序集合; 执行模块,用于执行所述可执行程序集合,对所述待迀移数据表进行迀移。7.根据权利要求6所述的系统,其特征在于,所述获取模块包括: 第一获取单元,用于获取表名称参数文件; 第一检测单元,用于检测所述表名称参数文件的有效性;若有效,则触发第二获取单元;若无效,则触发第一提示单元; 所述第一提示单元,用于生成所述表名称参数文件无效的提示信息 所述第二获取单元,用于获取所述数据库连接名称信息; 第二检测单元,用于检测所述数据库连接名称的有效性;若所述数据库连接名称有效, 则触发第三获取单元和第四获取单元;若无效,则触发第二提示单元; 所述第二提示单元,用于生成所述数据库连接名称息无效的提示信息 所述第三获取单元,用于获取所述第一数量信息; 所述第四获取单元,用于获取所述第二数量信息。8.根据权利要求6所述的系统,其特征在于,若可执行程序的第一数量信息大于一,则 所述执行模块通过并行执行所述可执行程序集合中的可执行程序,对所述待迀移数据表进 行迀移。9.根据权利要求6-8中任意一项所述的系统,其特征在于,还包括: 迀移日志生成模块,用于生成数据迀移日志;其中,所述数据迀移日志中记录数据迀移 结果。10.根据权利要求9所述的系统,其特征在于,还包括: 检测模块,用于检测所述迀移日志中是否有未成功迀移的数据表; 若有,则重新执行与所述未成功迀移的数据表对应的可执行程序。
【文档编号】G06F17/30GK105956191SQ201610420854
【公开日】2016年9月21日
【申请日】2016年6月13日
【发明人】关坤龙, 杜彦魁
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1