一种数据库迁移方法、装置、设备和存储介质与流程

文档序号:26102366发布日期:2021-07-30 18:13阅读:82来源:国知局
一种数据库迁移方法、装置、设备和存储介质与流程

本发明实施例涉及数据库技术领域,尤其涉及一种数据库迁移方法、装置、服务器和存储介质。



背景技术:

数据库迁移是一个数据库到另一个数据库之间的任意形式的数据移动。随着信息系统数据量不断增加,数据库迁移是企业解决存储空间不足、新老系统切换和信息系统升级改造等过程中必须面对的一个现实问题。

为了确保数据迁移过程中数据的一致性,通常会对迁移数据进行核查校验。现有的数据核查校验,一般是在数据同步完成后,对迁移数据进行全量比对;或者对迁移数据进行抽样比对。

然而,在数据同步完成后对迁移数据进行全量比对的方式,耗时非常之长,而且校验时也必须禁止数据写入,影响用户正常使用;对迁移数据进行抽样比对的方式错误率很高,不能保证数据同步结果的正确性,如果要保证一定的正确性,需要抽样大量数据,校验核查时间也非常长。为此,如何提高迁移数据的效率及迁移数据的准确性成为当前亟需解决的问题。



技术实现要素:

本发明实施例提供一种数据库迁移方法、装置、设备和存储介质,以实现提高迁移数据的效率及迁移数据的准确性。

第一方面,本发明实施例提供了一种数据库迁移方法,包括:

从源数据库向目标数据库进行数据同步;

在数据同步的过程中,监听数据库的数据访问操作,且在监听到数据变更事件时,产生数据变更日志记录,其中,所述数据库包括源数据库和/或目标数据库;

根据所述数据变更日志记录,从源数据库和目标数据库中分别获取变更关联数据,并进行比对核验;

若比对核验结果不一致,则将变更关联数据作为候选异常数据,进行记录;

按照设定规律,对所述候选异常数据进行比对核验。

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

数据同步模块,用于从源数据库向目标数据库进行数据同步;

日志记录模块,用于在数据同步的过程中,监听数据库的数据访问操作,且在监听到数据变更事件时,产生数据变更日志记录,其中,所述数据库包括源数据库和/或目标数据库;

第一数据核验模块,用于根据所述数据变更日志记录,从源数据库和目标数据库中分别获取变更关联数据,并进行比对核验;

数据记录模块,用于若比对核验结果不一致,则将变更关联数据作为候选异常数据,进行记录;

第二数据核验模块,用于按照设定规律,对所述候选异常数据进行比对核验。

第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的数据库迁移方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据库迁移方法。

本发明实施例通过在数据同步的过程中,监听数据变更事件,并根据变更事件产生的变更日志记录,获取源数据库和目标数据库中的变更关联数据进行比对,从而实现对迁移数据的实时校对处理,不需要禁止数据写入,提高了数据迁移效率;通过按照设定规律,对候选异常数据进行比对,可以最大程度的保证验证结果的准确性,从而提高了迁移数据的准确性。

附图说明

图1是本发明实施例一提供的一种数据库迁移方法的流程图;

图2是本发明实施例二提供的一种数据库迁移方法的流程图;

图3是本发明实施例三提供的一种数据库迁移装置的结构示意图;

图4是本发明实施例四提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种数据库迁移方法的流程图,本实施例可适用于一个数据库与另一个数据库之间的任意形式的数据移动情况,该方法可以由本发明实施例中的数据库迁移装置来执行,该装置可采用软件和/或硬件的方式实现,具体包括如下步骤:

步骤110、从源数据库向目标数据库进行数据同步。

其中,所述源数据库是指能直接提供原始资料或具体数据的自足性数据库,用户不必再查阅其他信息源;可以是线上业务正常使用中的数据库,也可以是停止使用的数据库,例如,数值数据库,文本数值数据库,全文数据库,术语数据库,图像数据库以及音视频数据库,本实施例对此不进行限制。

其中,所述目标数据库是指与所述源数据库进行比对标准的数据库,用于存储所述源数据库中的数据;可以是备份用数据库,也可以是即将提供业务支持的数据库,本实施例对此不进行限制。

其中,所述数据同步是指将所述源数据库中的数据与所述目标数据库中的数据进行同步,使源数据库的数据与目标数据库的数据保持完整性和一致性,例如可以是从原始表把数据同步进入新的库表中,也可以是从源数据库中指定的某个表同步至目标数据库中,本实施例对此不进行限制。

其中,所述数据同步可以是通过用户访问后台进行申请的,用户通过配置相关数据库连接、源数据库以及目标数据库表后,开始数据同步。

步骤120、在数据同步的过程中,监听数据库的数据访问操作,且在监听到数据变更事件时,产生数据变更日志记录,其中,所述数据库包括源数据库和/或目标数据库。

其中,所述监听用于监听数据库的所有访问操作,并进行日志记录。具体的,在监听到数据库中的数据发生了更改、删除和/或写入等会变更数据库中数据内容的访问操作时,即监听到了数据变更事件,进而形成的是数据变更日志记录。

可选的,在数据同步的过程中,监听数据库的数据访问操作包括:

在数据同步的过程中,监听业务服务端对所述源数据库的数据访问操作,监听从源数据库向目标数据库的数据同步操作,作为所述数据访问操作。其中,所述数据访问依托于数据访问层,实现查看数据、删除数据、更改数据和/或写入数据等操作,可以是访问关系数据库或文本文件。

其中,所述数据变更事件是指数据库中的数据在数据访问操作时对数据进行了更改、删除和/或写入。

其中,所述数据变更日志记录用于记录所有数据库表结构变更以及表数据修改的文件,可以是记录数据本身,也可以是记录数据的相关属性,例如数据的行序列号或数据的列序列号,本实施例对此不进行限制。

步骤130、根据所述数据变更日志记录,从源数据库和目标数据库中分别获取变更关联数据,并进行比对核验。

其中,所述变更关联数据是指源数据库中更改、删除和/或写入的数据,以及目标数据库中更改、删除和/或写入的数据。所述比对核验是指对获取的变更关联数据进行一一比对。

具体的,根据所述数据变更日志记录,从源数据库和目标数据库中分别获取变更关联数据,可以是根据数据变更日志记录中事件发生的时间戳;也可以是根据数据变更日志记录中的唯一序列号标记,所述唯一序列号标记是创建数据库时指定的可标记数据行的唯一标识,本实施例对此不进行限制。

步骤140、若比对核验结果不一致,则将变更关联数据作为候选异常数据,进行记录。

其中,所述比对核验结果不一致,可以是源数据库中的数据已经更改和/或删除,但目标数据库中对应的数据未及时更改和/或删除的情况,也可以是由于新数据写入速度太快,之前数据未核查完,造成比对核验结果不一致的情况,本实施例对此不进行限制。所述候选异常数据是比对核验结果不一致的变更关联数据。

步骤150、按照设定规律,对所述候选异常数据进行比对核验。

其中,所述设定规律是指对候选异常数据进行比对核验的过程中依照的规律,设定规律是为方便对异常数据进行拉取而设置的机制,可以是按照设定的时间周期对候选异常数据进行比对核验,例如每1秒拉取一次数据,从而进行比对核验,也可以是按照设定的数量级对候选异常数据进行比对核验,例如每记录10行拉取一次数据,从而进行比对核验,本实施例对此不进行限制。

本实施例的技术方案,通过在数据同步的过程中,监听数据变更事件,并根据变更事件产生的变更日志记录,获取源数据库和目标数据库中的变更关联数据进行比对,从而实现对迁移数据的实时校对处理,不需要禁止数据写入,也不需要等待数据同步完成,提高了数据迁移效率;通过按照设定规律,对候选异常数据进行比对,可以最大程度的保证验证结果的准确性,从而提高了迁移数据的准确性。

在上述技术方案的基础上,数据变更日志记录优选可以记录数据的行序列号。数据变更日志记录这样设置的好处在于,便于数据核查校验与数据同步同时进行。

实施例二

图2为本发明实施例二提供的一种数据库迁移方法的流程图,本实施例以上述实施例为基础进行细化,如图2所示,该方法包括以下具体步骤:

步骤210、从源数据库向目标数据库进行数据同步。

步骤220、在数据同步的过程中,监听数据库的数据访问操作,且在监听到数据变更事件时,产生数据变更日志记录,其中,所述数据库包括源数据库和/或目标数据库。

步骤230、根据所述源数据库的数据变更日志记录,从源数据库中获取变更关联数据,并根据变更关联数据的数据标识,从目标数据库中获取对应的变更关联数据,进行比对核验。

其中,所述源数据库的数据变更日志记录是指源数据库中的数据在更改、删除和/或写入时产生的数据变更日志记录,例如源数据库中的数据发生更改时,数据变更日志记录会将该事件记录下来。

步骤240、根据所述目标数据库的数据变更日志记录,从目标数据库中获取变更关联数据,并根据变更关联数据的数据标识,从源数据库中获取对应的变更关联数据,进行比对核验。

其中,所述目标数据库的数据变更日志记录是指目标数据库中的数据在更改、删除和/或写入时产生的数据变更日志记录,例如目标数据库中的数据发生更改时,数据变更日志记录会将该事件记录下来。

步骤250、若比对核验结果不一致,则将变更关联数据作为候选异常数据,添加至异常数据池中,进行记录。

其中,所述异常数据池用于存储候选异常数据,例如可以是指定的任意数据库,也可以是服务器缓存。

其中,在比对核验过程中,将核查结果记录到缓存,用于显示成功和/或失败的条数,计算同步进度和/或核查进度。

其中,所述核查进度为核查成功的条数与数据总条数的比值;所述同步进度为成功条数与失败条数之和与数据总条数的比值。

步骤260、按照设定时间周期,对所述候选异常数据进行比对核验。

其中,所述时间周期可以为毫秒级,也可以为实时。

步骤270、如果所述候选异常数据的比对核验结果为正常,则将正常的候选异常数据从异常数据池中删除。

其中,所述候选异常数据的比对核验结果为正常,是指对候选异常数据进行比对核验时,源数据库中的候选异常数据与目标数据库中的候选异常数据一致。

其中,将正常的候选异常数据从异常数据池中删除,是指当源数据库中的候选异常数据与目标数据库中的候选异常数据一致时,将该候选异常数据从异常数据池中删除。

步骤280、在数据同步完成后,且检测到所述异常数据池为空,则确定将业务支持功能从源数据库切换至目标数据库。

其中,所述数据同步完成,是指核查成功的数据条数与核查失败的数据条数之和等于迁移数据的总条数,即核查进度为100%。数据迁移开始时,同时获取迁移数据的总条数。当数据比对核验结果不一致时,核查失败的数据条数递加。当数据比对核验结果正常时,核查成功的数据条数递加。

其中,在数据同步完成后,且检测到所述异常数据池为空,是指核查失败的数据条数为0,即核查成功的数据条数等于迁移数据的总条数。

可选的,所述数据访问操作为基于关系型数据库管理系统mysql执行的操作,所述日志为基于mysql的二进制日志。

在一个具体的例子中,用户访问后台申请数据同步,配置源数据库与目标数据库连接并获取同步数据的总行数。当数据同步的过程发生了数据变更事件,根据数据变更日志记录获取两端数据的唯一行序列号,再根据两端数据的唯一行序列号获取源数据库及目标数据库中的关联数据,对两端数据进行一列列比对核验。如果发现数据比对结果不一致,则将该变更关联数据作为候选异常数据,将该候选异常数据的唯一行序列号记录进入备选数据库中,之后继续比对;如果未发现数据异常,则继续下一列比对。其中,若当新的数据进入时,前面的数据还未核查完毕,则将未核查完的数据也作为候选异常数据,将其唯一行序列号也记录进入备份数据库中,等待下次核查。在数据核查过程中,获取核查成功的数据行数和核查失败的数据行数,并显示核查进度。当核查成功的行数与总数据的行数之比为1,则证明核查进度为100%,即数据同步完成。在数据同步完成后,且检测到所述异常数据池为空,则确定将业务支持功能从源数据库切换至目标数据库。

本实施例的技术方案,通过将候选异常数据放入异常数据池中,再次对候选异常数据进行比对核查,从而可以最大程度的保证验证结果的准确性;通过分别获取源数据库的数据变更日志记录和目标数据库的数据变更日志记录,避免了数据迁移过程中的数据丢失的现象,从而进一步提高了迁移数据的核查成功率。

实施例三

图3为本发明实施例三提供的一种数据库迁移装置的结构示意图。本发明实施例所提供的一种数据库迁移装置可执行本发明任意实施例所提供的一种数据迁移方法,具备执行方法相应的功能模块和有益效果。该装置可采用软件和/或硬件的方式实现,如图3所示,所述数据库迁移装置具体包括:数据同步模块310、日志记录模块320、第一数据核验模块330、数据记录模块340、第二数据核验模块350。

其中,数据同步模块310,用于从源数据库向目标数据库进行数据同步;

日志记录模块320,用于在数据同步的过程中,监听数据库的数据访问操作,且在监听到数据变更事件时,产生数据变更日志记录,其中,所述数据库包括源数据库和/或目标数据库;

第一数据核验模块330,用于根据所述数据变更日志记录,从源数据库和目标数据库中分别获取变更关联数据,并进行比对核验;

数据记录模块340,用于若比对核验结果不一致,则将变更关联数据作为候选异常数据,进行记录;

第二数据核验模块350,用于按照设定规律,对所述候选异常数据进行比对核验。

可选的,第二数据核验模块350具体用于:

按照设定时间周期,对所述候选异常数据进行比对核验。

可选的,第一数据核验模块330包括:

源数据核验单元3301,用于如果所述数据变更日志记录为源数据库的数据变更日志记录,则从源数据库中获取变更关联数据,并根据变更关联数据的数据标识,从目标数据库中获取对应的变更关联数据,进行比对核验;

目标数据核验单元3302,用于如果所述数据变更日志记录为目标数据库的数据变更日志记录,则从目标数据库中获取变更关联数据,并根据变更关联数据的数据标识,从源数据库中获取对应的变更关联数据,进行比对核验。

可选的,第一数据核验模块330具体用于:

从源数据库和目标数据库中分别获取变更关联数据,对变更关联数据的内容进行比对核验,如内容不一致,则确定为比对核验结果不一致。

可选的,日志记录模块320具体用于:

在数据同步的过程中,监听业务服务端对所述源数据库的数据访问操作,监听从源数据库向目标数据库的数据同步操作,作为所述数据访问操作。

可选的,数据记录模块340包括:

异常数据添加单元3401,用于若比对核验结果不一致,则将变更关联数据作为候选异常数据,添加至异常数据池中,进行记录;

可选的,数据记录模块340还包括:

异常数据删除单元3402,用于如果所述候选异常数据的比对核验结果为正常,则将正常的候选异常数据从异常数据池中删除。

进一步的,所述装置还包括:

数据库切换模块360,用于在数据同步完成后,且检测到所述异常数据池为空,则确定将业务支持功能从源数据库切换至目标数据库。

可选的,所述数据访问操作为基于关系型数据库管理系统mysql执行的操作,所述日志为基于mysql的二进制日志。

本实施例的技术方案,通过在数据同步的过程中,监听数据变更事件,并根据变更事件产生的变更日志记录,获取源数据库和目标数据库中的变更关联数据进行比对,从而实现对迁移数据的实时校对处理,不需要禁止数据写入,提高了数据迁移效率;通过按照设定规律,对候选异常数据进行比对,可以最大程度的保证验证结果的准确性,从而提高了迁移数据的准确性。

实施例四

图4为本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;计算机设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据迁移方法对应的程序指令/模块(例如,数据库迁移装置中的数据同步模块310、日志记录模块320、第一数据核验模块330、数据记录模块340、第二数据核验模块350)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的数据迁移方法。

存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的信号输入。输出装置440可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据迁移方法,该方法包括:

从源数据库向目标数据库进行数据同步;

在数据同步的过程中,监听数据库的数据访问操作,且在监听到数据变更事件时,产生数据变更日志记录,其中,所述数据库包括源数据库和/或目标数据库;

根据所述数据变更日志记录,从源数据库和目标数据库中分别获取变更关联数据,并进行比对核验;

若比对核验结果不一致,则将变更关联数据作为候选异常数据,进行记录;

按照设定规律,对所述候选异常数据进行比对核验。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据迁移方法中的相关操作.

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例各个实施例所述的方法。

值得注意的是,上述数据库迁移装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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