一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于任务分解的异构数据库迁移方法及系统与流程

2022-06-30 01:13:19 来源:中国专利 TAG:


1.本发明涉及数据处理和数据库管理技术领域,尤其涉及一种基于任务分解的异构数据库迁移方法及系统。


背景技术:

2.数据迁移是指将数据从源数据库迁移到目标数据库的过程,数据迁移的实现可以分为3个阶段:数据迁移前的准备、数据迁移的实施和数据迁移后的校验。由于数据迁移的特点,大量的工作都需要在准备阶段完成,充分而周到的准备工作是完成数据迁移的主要基础。
3.应用的升级改造往往离不开数据库的数据迁移,数据迁移的成功与否是新系统成功上线的重要前提,也是新系统今后稳定运行的有力保障。如果数据迁移失败,新系统将不能正常启用;如果数据迁移的质量较差,没能屏蔽全部的垃圾数据,会严重影响新系统的稳定性,新系统一旦访问这些垃圾数据,可能会由这些垃圾数据产生新的错误数据,严重时还会导致系统异常等不可预知的异常。相反,成功的数据迁移可以有效地保障新系统的顺利运行,能够保留珍贵的历史数据。
4.数据迁移从数据库角度可以分为同构数据迁移以及异构数据迁移,同构数据迁移指源数据库和目标数据库的数据库类型相同,异构数据迁移指源数据库和目标数据库数据类型不同。同构数据库的迁移技术及方法已经很成熟了,比如oracle基于impdp和expdp的迁移方法。异构数据库的迁移由于数据库的类型以及数据类型实现的差异,在迁移过程中往往需要进行数据类型适配转换,并且数据的迁移存在一定的失败概率,目前并无成熟的异构数据库迁移方法。
5.另一方面,数据库的迁移场景是复杂的,针对不通的业务需求,数据迁移可以是全量数据迁移和部分数据迁移,当迁移部分数据时,要求迁移方法对数据库表的选择以及表中数据的选择机制是灵活的,以适应负责多变的迁移场景。
6.由此可知,现有技术对于数据库迁移,特别是异构数据库迁移缺乏简便有效的处理手段,数据库迁移过程效率较低且容易出现错误,极大地影响新系统正常运行。


技术实现要素:

7.为解决现有技术的不足,本发明提出一种基于任务分解的异构数据库迁移方法及系统,根据预设规则将数据库迁移拆分为若干相互独立的执行任务分别进行处理,从而有效降低异构数据库迁移操作复杂度,迁移速度快,迁移稳定,支持失败重试机制,支持多种迁移条件,支持数据迁移后多表数据量、表关键数据多维度源数据库和目标数据库检核校验,能够适应多种灵活的数据迁移场景。
8.为实现以上目的,本发明所采用的技术方案包括:
9.一种基于任务分解的异构数据库迁移方法,其特征在于,包括:
10.s1、配置对应数据库迁移的执行任务分解规则,所述执行任务分解规则包括若干
相互独立的执行任务类型各以及各执行任务类型之间的逻辑处理顺序,所述执行任务类型包括数据库类型识别、迁移性能设定、迁移范围设定、数据转换、数据迁移和数据校验,所述逻辑处理顺序包括严格顺序执行和任意执行;
11.s2、获取数据库迁移请求,根据执行任务分解规则将数据库迁移请求拆分为若干相互独立的执行任务;
12.s3、根据执行任务分解规则判断所有执行任务当前是否可处理;
13.s4、对于判断当前可处理的执行任务,分别进行对应处理操作,并判断执行任务是否执行成功;
14.s5、当判断执行任务已执行成功时,将对应执行任务标记为完结任务;
15.s6、重复执行步骤s3至s5,直至所有执行任务均标记为完结任务。
16.进一步地,所述步骤s2包括:
17.根据执行任务分解规则将数据库迁移请求拆分为对应不同执行任务类型的任务组,所述任务组包含同一执行任务类型下的一个或多个相互独立的执行任务。
18.进一步地,所述步骤s3包括分步骤:
19.s31、将所有任务组分别作为目标组,识别目标组对应逻辑处理顺序为严格顺序执行的关联组;
20.s32、判断关联组是否为目标组的前置任务;
21.s33、当判断关联组是目标组的前置任务时,进一步判断关联组所包含的所有执行任务是否均已标记为完结任务;
22.s34、当判断关联组内存在执行任务未标记为完结任务时,判断当前不可处理目标组;
23.s35、将未判断为当前不可处理的目标组所包含的所有执行任务判断为当前可处理。
24.进一步地,所述步骤s5还包括:
25.当判断执行任务未执行成功时,将对应执行任务的重试计数增加1。
26.进一步地,所述方法还包括:
27.预设执行任务的重试次数上限阈值。
28.进一步地,所述方法还包括:
29.当任一执行任务的重试计数超过重试次数上限阈值时,停止所有执行任务的处理并反馈处理错误信息,所述处理错误信息包括重试计数超过重试次数上限阈值的执行任务的对应信息。
30.本发明还涉及一种基于任务分解的异构数据库迁移系统,其特征在于,包括:
31.规则配置模块,用于配置对应数据库迁移的执行任务分解规则;
32.任务拆分模块,用于根据执行任务分解规则将数据库迁移请求拆分为若干相互独立的执行任务;
33.第一判断模块,用于判断执行任务当前是否可处理;
34.任务执行模块,用于对执行任务进行对应处理操作;
35.第二判断模块,用于判断执行任务是否执行成功。
36.本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计
算机程序,所述计算机程序被处理器执行时实现上述的方法。
37.本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;
38.所述存储器,用于存储执行任务分解规则;
39.所述处理器,用于通过调用执行任务分解规则,执行上述的方法。
40.本发明还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述方法的步骤。
41.本发明的有益效果为:
42.采用本发明所述方法及系统,根据预设规则将数据库迁移拆分为若干相互独立的执行任务分别进行处理,从而有效降低异构数据库迁移操作复杂度,迁移速度快,迁移稳定,支持失败重试机制,支持多种迁移条件,支持数据迁移后多表数据量、表关键数据多维度源数据库和目标数据库检核校验,能够适应多种灵活的数据迁移场景。
附图说明
43.图1为本发明基于任务分解的异构数据库迁移方法流程示意图。
44.图2为本发明基于任务分解的异构数据库迁移系统结构示意图。
具体实施方式
45.为了更清楚的理解本发明的内容,将结合附图和实施例详细说明。
46.本发明第一方面涉及一种步骤流程如图1所示的基于任务分解的异构数据库迁移方法,包括:
47.s1、配置对应数据库迁移的执行任务分解规则,所述执行任务分解规则包括若干相互独立的执行任务类型各以及各执行任务类型之间的逻辑处理顺序,所述执行任务类型包括数据库类型识别、迁移性能设定、迁移范围设定、数据转换、数据迁移和数据校验,所述逻辑处理顺序包括严格顺序执行和任意执行。
48.数据库类型识别需要解析数据迁移的源数据库和目标数据库,且优选的源数据库和目标数据库均适配多种类型的数据库连接方式。
49.迁移性能设定指装载数据迁移的性能参数,主要包括迁移的并发量,数据吞吐量、超时时间等,对应创建相关资源池以及执行计划。优选的,可以将执行任务的重试次数上限阈值作为迁移性能设定的其中一项进行对应配置,以实现对应的功能。
50.迁移范围设定对应迁移实际读取数据迁移的范围。根据现有技术的支持,可以在用户维度和表维度进行数据迁移。表维度数据迁移优选的支持标准sql语句模糊匹配需要迁移的表,数据维度也优选的支持标准sql语句模糊匹配表中需迁移的数据。
51.数据转换对应不同结构数据库之间必要的表数据适配转换,包括char、varchar、number、datetime等基本数据类型转换以及lob大对象数据类型转换等。
52.数据迁移,对应实际迁移操作以及迁移后必要的校验过程,根据迁移性能设定创建的多线程并发资源池以及数据的吞吐量执行计划,采用多线程的方式执行数据迁移过程。通过多并发的方式加速迁移,并且并发数可以在配置文件中根据迁移机器性能及数据库压力进行灵活调整。
53.数据校验,迁移执行结束后,需要统计最终的数据迁移结果,并对数据迁移进行源
库和目标库的数据校验。
54.对于逻辑处理顺序的匹配,对应不同的执行任务类型可以进行针对性的分配,例如数据库类型识别与迁移性能设定由于互相影响较小,可以设定为任意执行,即数据库类型识别类型的执行任务与迁移性能设定类型的执行任务可以各自根据最优进程选择执行,无需等待另一任务的执行完成;而对于数据校验类型的执行任务,则需要设定为严格顺序执行,即需要等待在先任务执行完毕后才能开始处理。
55.s2、获取数据库迁移请求,根据执行任务分解规则将数据库迁移请求拆分为若干相互独立的执行任务。
56.特别是,优选的根据执行任务分解规则将数据库迁移请求拆分为对应不同执行任务类型的任务组,所述任务组包含同一执行任务类型下的一个或多个相互独立的执行任务。
57.对于不同的执行任务类型,在同一数据库迁移请求时会形成不同的执行任务特性。例如数据库类型识别一般只对应一个执行任务,但对于数据转换则通常会涉及多种不同数据、不同表分别需要进行转换,这些转换过程自身是互不相干的,因此可以作为相互独立的执行任务,又因为其均属于同一类别,因此可以将其归类为一个任务组,使该任务组作为一个整体用于判断逻辑处理顺序,可以减少判断步骤资源占用。
58.s3、根据执行任务分解规则判断所有执行任务当前是否可处理。
59.对于使用任务组的情况下,可以优选的依据任务组进行对应的判断,具体包括:s31、将所有任务组分别作为目标组,识别目标组对应逻辑处理顺序为严格顺序执行的关联组;s32、判断关联组是否为目标组的前置任务;s33、当判断关联组是目标组的前置任务时,进一步判断关联组所包含的所有执行任务是否均已标记为完结任务;s34、当判断关联组内存在执行任务未标记为完结任务时,判断当前不可处理目标组;s35、将未判断为当前不可处理的目标组所包含的所有执行任务判断为当前可处理。
60.对于任务组中仅包含一个执行任务的情况,上述操作实质对应于该执行任务的逻辑处理顺序判断;而对于包含多个不同执行任务的任务组,则是通过将判断结果归类为任务组的范畴简化多个执行任务相互判断的繁琐,使逻辑处理顺序完全依照不同执行任务类别之间的相互关系。
61.s4、对于判断当前可处理的执行任务,分别进行对应处理操作,并判断执行任务是否执行成功。
62.优选的,如果存在迁移失败的表,可以选择启动失败重迁移策略,该策略可以是与预先配置相同的,也可以是带有针对性调整的。
63.s5、当判断执行任务已执行成功时,将对应执行任务标记为完结任务;当判断执行任务未执行成功时,将对应执行任务的重试计数增加1。
64.优选的,可以预设执行任务的重试次数上限阈值,用于控制执行任务的重试次数,避免错误循环。当任一执行任务的重试计数超过重试次数上限阈值时,停止所有执行任务的处理并反馈处理错误信息,所述处理错误信息包括重试计数超过重试次数上限阈值的执行任务的对应信息。因此用户可以准确获知数据迁移失败的具体原因,提高了错误排除工作效率。
65.s6、重复执行步骤s3至s5,直至所有执行任务均标记为完结任务。
66.数据迁移完成后,汇总数据迁移结果和校验结果并输出结果。
67.上述方法执行时,优选的采用python脚本语言编写,部署便捷,迁移效率高;参数部分优选以json格式文件形式进行配置,配置简单灵活,可以适配多种灵活的迁移场景,使用范围很广泛。
68.本发明另一方面还涉及一种基于任务分解的异构数据库迁移系统,其结构如图2所示,包括:
69.规则配置模块,用于配置对应数据库迁移的执行任务分解规则;
70.任务拆分模块,用于根据执行任务分解规则将数据库迁移请求拆分为若干相互独立的执行任务;
71.第一判断模块,用于判断执行任务当前是否可处理;
72.任务执行模块,用于对执行任务进行对应处理操作;
73.第二判断模块,用于判断执行任务是否执行成功。
74.通过使用该系统,能够执行上述的运算处理方法并实现对应的技术效果。
75.本发明的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
76.本发明的实施例还提供一种用于执行上述方法的电子设备,作为该方法的实现装置,所述电子设备至少具备有处理器和存储器,特别是该存储器上存储有执行方法所需的数据和相关的计算机程序,例如执行任务分解规则等,并通过由处理器调用存储器中的数据、程序执行实现方法的全部步骤,并获得对应的技术效果。
77.优选的,该电子设备可以包含有总线架构,总线可以包括任意数量的互联的总线和桥,总线将包括由一个或多个处理器和存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他系统通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用于存储处理器在执行操作时所使用的数据。
78.额外的,所述电子设备还可以进一步包括通信模块、输入单元、音频处理器、显示器、电源等部件。其所采用的处理器(或称为控制器、操作控件)可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器接收输入并控制电子设备的各个部件的操作;存储器可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种,可储存上述有关的数据信息,此外还可存储执行有关信息的程序,并且处理器可执行该存储器存储的该程序,以实现信息存储或处理等;输入单元用于向处理器提供输入,例如可以为按键或触摸输入装置;电源用于向电子设备提供电力;显示器用于进行图像和文字等显示对象的显示,例如可为lcd显示器。通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,
并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到中央处理器,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
79.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
80.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
81.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
82.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
83.以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换等都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献