一种数据库的轻量级并发迁移方法转让专利

申请号 : CN202110022834.2

文献号 : CN112783859B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王贤然柴付志

申请人 : 河北志晟信息技术股份有限公司

摘要 :

本发明公开一种数据库的轻量级并发迁移方法,涉及数据迁移技术领域。针对现有数据库迁移过程中出现的问题及存在的缺陷,采用技术方案包括:加载原数据库和目标数据库的配置,根据目标数据库类型加载相应的语法方言,并对配置进行语法校验;基于加载的配置,生成目标数据库的表、存储过程、函数、视图、索引、其他;根据操作系统的资源,动态控制线程开启数量,通过开启的线程对原数据库的数据进行并发迁移;迁移完成后,对原数据库和目标数据库进行默认校验和配置校验。本发明不采用第三方中间件,具有运行高效、使用成本低、易扩展、可配置化、弹性伸缩的优点,可以实现数据的轻量级快速迁移。

权利要求 :

1.一种数据库的轻量级并发迁移方法,其特征在于,其实现内容包括:

步骤S1、加载原数据库和目标数据库的配置,并对配置进行语法校验,这一过程中,加载的配置包括:连接配置、默认规则配置、自定义扩展配置、扩展配置模板、校验配置,其中:①连接配置包括原数据库和目标数据库的连接信息、原数据库和目标数据库的类型,原数据库和目标数据库的连接信息又分别包括连接地址、端口、用户名、密码、数据库名,②默认规则配置是指原数据库类型和目标数据库类型定义的内置校验规则,包括对字段转换语法校验,对要创建的表、视图、存储过程、函数、触发器、序列的校验,③自定义扩展配置是指针对默认规则配置进行二次配置,实现配置的可自定义化,每个字段的校验是以数据字段为key校验,配置文件进行再次配置的时候也是以Key‑Value对的方式提供,默认配置如果与自定义配置的Key相同,自定义配置覆盖默认配置,④扩展配置模板是指用户可以根据目标数据库配置相应类型的模板文件,配置的模板文件不限于存储过程模板、函数模板、触发器模板、视图模板、序列模板,且可以在配置文件中制定是否开启每项模板文件的配置策略,⑤校验配置是指在数据从原数据库迁移到目标数据库完成后,对原数据库和目标数据库执行的校验SQL、存储过程、函数,根据提供的SQL、存储过程、函数,校验原数据库和目标数据库查询的数据结果进行自动对比,并输出数据对比情况;

步骤S2、基于加载的配置,生成目标数据库结构;

步骤S3、根据操作系统的资源,动态控制线程开启数量,通过开启的线程对原数据库的数据进行并发迁移,具体操作包括:步骤S3.1、加载配置,获取操作系统资源的最大使用比例和巡检线程执行频率配置参数,

步骤S3.2、从原数据库获取迁移数据,创建数据迁移队列,将迁移数据每条数据压入队列,队列采用先进先出方式,步骤S3.3、开启巡检线程,巡检线程根据执行频率配置参数周期执行,巡检线程负责创建线程队列,线程队列也是先进线程队列,巡检线程监控操作系统资源,实现动态控制线程数量,(a)在资源没有达到配置文件中配置的资源最大使用比例时,巡检线程创建线程,并为每个线程设置停止标志位,启停标志位默认都为false,(b)当操作系统资源不足时,从队列修改部分线程的停止标志位为true,线程获取到标志位后,在本次线程数据迁移完成后自动关闭,步骤S3.4、数据迁移完成后,巡检线程将所有线程标志位都设置成true,停止数据同步任务;

步骤S4、迁移完成后,对原数据库和目标数据库的结构和数据进行校验。

2.根据权利要求1所述的一种数据库的轻量级并发迁移方法,其特征在于,配置文件的加载包括对方法默认配置的加载和对扩展配置的加载,根据唯一标识进行配置,当默认配置和扩展配置重复时,唯一标识对应的配置是扩展的配置。

3.根据权利要求1所述的一种数据库的轻量级并发迁移方法,其特征在于,原数据库类型和目标数据库类型定义的内置校验规则是基于扩展配置的校验规则,包括对默认规则和自定义扩展配置规则的校验。

4.根据权利要求1所述的一种数据库的轻量级并发迁移方法,其特征在于,执行步骤S2时,基于加载的配置,生成的目标数据库结构包括表、存储过程、函数、视图、索引、其他;

在生成目标数据库结构过程中遇到错误时,将错误日志输出到日志文件,并根据错误信息,进行配置文件修改,随后再次加载修改的配置,生成目标数据库结构。

5.根据权利要求1所述的一种数据库的轻量级并发迁移方法,其特征在于,迁移数据为临界资源,开启的数据迁移线程在获取线程资源时,需要先对该数据资源进行加锁,在分批获取指定数量的迁移数据后释放锁,保证迁移数据资源操作的原子性、保证数据迁移时的安全;线程对数据进行迁移完成后,需要先判断下当前线程停止标志位,(a)如果停止标志位为true,则停止当前线程数据迁移,(b)如果当前线程标志位为false,获取下一批迁移数据进行数据迁移工作。

6.根据权利要求1所述的一种数据库的轻量级并发迁移方法,其特征在于,执行步骤S4,对原数据库和目标数据库的结构和数据进行默认校验,同时,还提供SQL、存储过程、函数的配置校验,校验成功后,完成迁移,校验失败后,输出错误日志。

7.根据权利要求6所述的一种数据库的轻量级并发迁移方法,其特征在于,对原数据库和目标数据库的结构和数据进行校验时,可以配置单个或多个配置校验方式,对原数据库和目标数据库进行查询结果的对比,并输出检验信息。

说明书 :

一种数据库的轻量级并发迁移方法

技术领域

[0001] 本发明涉及数据迁移技术领域,具体的说是一种数据库的轻量级并发迁移方法。

背景技术

[0002] 随着社会不断进步,计算机计算能力、数据存储量不断提高,各式各样数据存储和数据迁移的技术手段层出不穷,其中关系型数据库存储是普遍的存储方式。结合实际应用场景、数据量的大小,更改数据库成为一种普遍存在数据库数据存储的技术手段。如何对数据库进行快速、准确、弹性伸缩、自定义配置的迁移,是数据库迁移的重要环节,在数据库迁移之前和数据库迁移过程中需要进行各种校验、检查处理。数据库迁移可以通过人工从原数据库导出数据,创建目标数据库、将数据导入目标数据库;也可以通过硬件或是第三方中间件来进行数据迁移。这样需要投入更多的资金进行设备维护和软件的升级,以及维护的人力成本,应用过于依赖第三方硬件或软件,扩展性不够,如:第三方软件Navicat异构数据库迁移无法自动创建索引、表名、字段大小写等问题,无法满足多变的数据库迁移需求,可能会导致企业无法根据自己的业务场景个性化实现方式。另外,第三方硬件或软件通常情况下也会占用大量的服务器资源。
[0003] 很多业务场景下,企业用户数据迁移场景比较单一、但具有多变性,需要能够具有定制化配置转换,第三方中间件很容易兼顾不到这些场景,还可能需要占用大量其他资源,但也无法满足需求;也有些企业用户数据库结构简单,迁移数据量较小,只要能快速、并发、稳定、可配置化、轻量级数据同步即可,使用三方中间件给企业造成人力、物力资源浪费。

发明内容

[0004] 本发明针对现有数据库迁移过程中出现的问题及存在的缺陷,提供一种数据库的轻量级并发迁移方法,在不采用第三方中间件的前提下,具有运行高效、易扩展、可配置的优点。
[0005] 本发明提供一种数据库的轻量级并发迁移方法,解决上述技术问题采用的技术方案如下:
[0006] 一种数据库的轻量级并发迁移方法,其实现内容包括:
[0007] 步骤S1、加载原数据库和目标数据库的配置,根据目标数据库类型加载相应的语法方言,并对配置进行语法校验;
[0008] 步骤S2、基于加载的配置,生成目标数据库结构;
[0009] 步骤S3、根据操作系统的资源,动态控制线程开启数量,通过开启的线程对原数据库的数据进行并发迁移;
[0010] 步骤S4、迁移完成后,对原数据库和目标数据库的结构和数据进行校验。
[0011] 具体的,执行步骤S1时,加载的配置包括:连接配置、默认规则配置、自定义扩展配置、扩展配置模板、校验配置,其中:
[0012] 连接配置包括原数据库和目标数据库的连接信息、原数据库和目标数据库的类型,原数据库和目标数据库的连接信息又分别包括连接地址、端口、用户名、密码、数据库名;
[0013] 默认规则配置是指原数据库类型和目标数据库类型定义的内置校验规则,包括对字段转换语法校验,对要创建的表、视图、存储过程、函数、触发器、序列的校验;
[0014] 自定义扩展配置是指针对默认规则配置进行二次配置,实现配置的可自定义化,每个字段的校验是以数据字段为key校验,配置文件进行再次配置的时候也是以Key‑Value对的方式提供,默认配置如果与自定义配置的Key相同,自定义配置覆盖默认配置;
[0015] 扩展配置模板是指用户可以根据目标数据库配置相应类型的模板文件,配置的模板文件不限于存储过程模板、函数模板、触发器模板、视图模板、序列模板,且可以在配置文件中制定是否开启每项模板文件的配置策略;
[0016] 校验配置是指在数据从原数据库迁移到目标数据库完成后,对原数据库和目标数据库执行的校验SQL、存储过程、函数,根据提供的SQL、存储过程、函数,校验原数据库和目标数据库查询的数据结果进行自动对比,并输出数据对比情况。
[0017] 更具体的,配置文件的加载包括对方法默认配置的加载和对扩展配置的加载,根据唯一标识进行配置,当默认配置和扩展配置重复时,唯一标识对应的配置是扩展的配置。
[0018] 更具体的,原数据库类型和目标数据库类型定义的内置校验规则是基于扩展配置的校验规则,包括对默认规则和自定义扩展配置规则的校验。
[0019] 具体的,执行步骤S2时,基于加载的配置,生成的目标数据库结构包括表、存储过程、函数、视图、索引、其他;
[0020] 在生成目标数据库结构过程中遇到错误时,将错误日志输出到日志文件,并根据错误信息,进行配置文件修改,随后再次加载修改的配置,生成目标数据库结构。
[0021] 具体的,执行步骤S3,对原数据库的数据进行并发迁移,具体操作包括:
[0022] 步骤S3.1、加载配置,获取操作系统资源的最大使用比例和巡检线程执行频率配置参数;
[0023] 步骤S3.2、从原数据库获取迁移数据,创建数据迁移队列,将迁移数据每条数据压入队列,队列采用先进先出方式;
[0024] 步骤S3.3、开启巡检线程,巡检线程根据执行频率配置参数周期执行,巡检线程负责创建线程队列,线程队列也是先进线程队列,巡检线程监控操作系统资源,实现动态控制线程数量,
[0025] (a)在资源没有达到配置文件中配置的资源最大使用比例时,巡检线程创建线程,并为每个线程设置停止标志位,启停标志位默认都为false,
[0026] (b)当操作系统资源不足时,从队列修改部分线程的停止标志位为true,线程获取到标志位后,在本次线程数据迁移完成后自动关闭;
[0027] 步骤S3.4、数据迁移完成后,巡检线程将所有线程标志位都设置成true,停止数据同步任务。
[0028] 更具体的,迁移数据为临界资源,开启的数据迁移线程在获取线程资源时,需要先对该数据资源进行加锁,在分批获取指定数量的迁移数据后释放锁,保证迁移数据资源操作的原子性、保证数据迁移时的安全;线程对数据进行迁移完成后,需要先判断下当前线程停止标志位,(a)如果停止标志位为true,则停止当前线程数据迁移,(b)如果当前线程标志位为false,获取下一批迁移数据进行数据迁移工作。
[0029] 具体的,执行步骤S4,对原数据库和目标数据库的结构和数据进行默认校验,同时,还提供SQL、存储过程、函数的配置校验,校验成功后,完成迁移,校验失败后,输出错误日志。
[0030] 更具体的,对原数据库和目标数据库的结构和数据进行校验时,可以配置单个或多个配置校验方式,对原数据库和目标数据库进行查询结果的对比,并输出检验信息。
[0031] 本发明的一种数据库的轻量级并发迁移方法,与现有技术相比具有的有益效果是:
[0032] (1)本发明不采用第三方中间件,可以使用默认配置方案,也可以根据实际应用需求进行自定义扩展配置或创建配置模板来实现高级语法,具有运行高效、使用成本低、易扩展、可配置化、弹性伸缩的优点,可以实现数据的轻量级快速迁移;
[0033] (2)本发明通过建立迁移数据资源池,并发数据同步,可以根据系统硬件配置进行自动控制线程数据量,根据操作系统资源利用率自动启停,实现弹性伸缩;还建立任务队列,对队列进行加锁、释放锁操作,保证数据一致性、准确性;
[0034] (3)本发明将默认的替换、配置规则和扩展配置文件内容进行汇总,当两部分配置唯一标识Key一致时,扩展配置规则将覆盖默认配置规则;本发明提供针对不同数据库迁移中的存储规程、触发器、函数、序列等的模板,可以在配置文件中指定是否开启每项模板配置策略;本发明提供策略检验及校验结果输出功能,方便用户根据错误或日志进一步配置;本发明还在数据迁移完成后对数据库进行默认校验和配置校验,对原数据库和目标数据库进行查询结果对比,兼容更多应用场景。

附图说明

[0035] 附图1是本发明实施例一的方法流程示意图;
[0036] 附图2是本发明实施例一中步骤S1的流程示意图;
[0037] 附图3是本发明实施例一中步骤S2的流程示意图;
[0038] 附图4是本发明实施例一中步骤S3的流程示意图;
[0039] 附图5是本发明实施例一中步骤S4的流程示意图。

具体实施方式

[0040] 为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
[0041] 实施例一:
[0042] 结合附图1,本实施例提出一种数据库的轻量级并发迁移方法,其实现内容包括:
[0043] 步骤S1、加载原数据库和目标数据库的配置,根据目标数据库类型加载相应的语法方言,并对配置进行语法校验。
[0044] 结合附图2,本步骤中,加载的配置包括:连接配置、默认规则配置、自定义扩展配置、扩展配置模板、校验配置,其中:
[0045] 连接配置包括原数据库和目标数据库的连接信息、原数据库和目标数据库的类型,原数据库和目标数据库的连接信息又分别包括连接地址、端口、用户名、密码、数据库名;
[0046] 默认规则配置是指原数据库类型和目标数据库类型定义的内置校验规则,内置校验规则是基于扩展配置的校验规则,包括对默认规则和自定义扩展配置规则的校验,还包括对字段转换语法的校验,对要创建的表、视图、存储过程、函数、触发器、序列的校验;
[0047] 自定义扩展配置是指针对默认规则配置进行二次配置,实现配置的可自定义化,每个字段的校验是以数据字段为key校验,配置文件进行再次配置的时候也是以Key‑Value对的方式提供,默认配置如果与自定义配置的Key相同,自定义配置覆盖默认配置;
[0048] 扩展配置模板是指用户可以根据目标数据库配置相应类型的模板文件,配置的模板文件不限于存储过程模板、函数模板、触发器模板、视图模板、序列模板,且可以在配置文件中制定是否开启每项模板文件的配置策略;
[0049] 校验配置是指在数据从原数据库迁移到目标数据库完成后,对原数据库和目标数据库执行的校验SQL、存储过程、函数,根据提供的SQL、存储过程、函数,校验原数据库和目标数据库查询的数据结果进行自动对比,并输出数据对比情况。
[0050] 配置文件的加载包括对方法默认配置的加载和对扩展配置的加载,根据唯一标识进行配置,当默认配置和扩展配置重复时,唯一标识对应的配置是扩展的配置。
[0051] 步骤S2、基于加载的配置,生成目标数据库结构,结合附图3,具体包括生成表、生成存储过程、生成函数、生成视图、生成索引、生成其他。
[0052] 在生成目标数据库结构过程中遇到错误时,将错误日志输出到日志文件,并根据错误信息,进行配置文件修改,随后再次加载修改的配置,生成目标数据库结构。
[0053] 步骤S3、根据操作系统的资源,动态控制线程开启数量,通过开启的线程对原数据库的数据进行并发迁移,结合附图4,具体操作包括:
[0054] 步骤S3.1、加载配置,获取操作系统资源的最大使用比例和巡检线程执行频率配置参数;
[0055] 步骤S3.2、从原数据库获取迁移数据,创建数据迁移队列,将迁移数据每条数据压入队列,队列采用先进先出方式;
[0056] 步骤S3.3、开启巡检线程,巡检线程根据执行频率配置参数周期执行,巡检线程负责创建线程队列,线程队列也是先进线程队列,巡检线程监控操作系统资源,实现动态控制线程数量,
[0057] (a)在资源没有达到配置文件中配置的资源最大使用比例时,巡检线程创建线程,并为每个线程设置停止标志位,启停标志位默认都为false,
[0058] (b)当操作系统资源不足时,从队列修改部分线程的停止标志位为true,线程获取到标志位后,在本次线程数据迁移完成后自动关闭;
[0059] 步骤S3.4、数据迁移完成后,巡检线程将所有线程标志位都设置成true,停止数据同步任务。
[0060] 执行本步骤过程中,迁移数据为临界资源,开启的数据迁移线程在获取线程资源时,需要先对该数据资源进行加锁,在分批获取指定数量的迁移数据后释放锁,保证迁移数据资源操作的原子性、保证数据迁移时的安全;线程对数据进行迁移完成后,需要先判断下当前线程停止标志位,(a)如果停止标志位为true,则停止当前线程数据迁移,(b)如果当前线程标志位为false,获取下一批迁移数据进行数据迁移工作。
[0061] 步骤S4、迁移完成后,结合附图5,对原数据库和目标数据库的结构和数据进行默认校验,同时,还提供SQL、存储过程、函数的配置校验,校验成功后,完成迁移,校验失败后,输出错误日志。
[0062] 对原数据库和目标数据库的结构和数据进行校验时,可以配置单个或多个配置校验方式,对原数据库和目标数据库进行查询结果的对比,并输出检验信息。
[0063] 综上可知,采用本发明的一种数据库的轻量级并发迁移方法,不采用第三方中间件,具有运行高效、使用成本低、易扩展、可配置化、弹性伸缩的优点,可以实现数据的轻量级快速迁移。
[0064] 基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。