一种数据迁移方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:19023477 阅读:28 留言:0更新日期:2018-09-26 19:05
本发明专利技术实施例提供了一种数据迁移方法、装置、电子设备及可读存储介质。上述方法包括:在源数据库包含的各非事务表中,获取当前待迁移的目标非事务表,对目标非事务表加读锁,将目标非事务表迁移至目标数据库,释放目标非事务表的读锁,当各非事务表迁移完成后,获取目标非事务表对应的第一日志记录,根据第一日志记录,对目标数据库中的目标非事务表执行修改操作。应用本发明专利技术实施例,只对当前待迁移的非事务表加读锁,当该非事务表迁移完成后,释放该读锁,可以避免源数据库长时间不可用。

【技术实现步骤摘要】
一种数据迁移方法、装置、电子设备及可读存储介质
本专利技术涉及数据迁移
,特别是涉及一种数据迁移方法、装置、电子设备及可读存储介质。
技术介绍
数据库可以把大量需要共享的数据按照一定的方式组织并存储,以便快速方便地管理与维护数据。在使用数据库的过程中,有时需要将一个数据库(即源数据库)中的数据迁移到另外一个数据库(即目标数据库)中。例如,当需要对源数据库的服务器硬件进行升级时,需要将源数据库中的数据迁移到新的服务器硬件的目标数据库中。数据库中的数据通常以表的形式进行存储,可以分为事务表和非事务表。事务表用于存储对安全性和一致性要求比较高的数据,非事务表可以用于存储其他数据。例如,银行服务器的数据库中可以存储交易记录、储户的余额和服务器的运行记录数据等,其中,事务表中可以存储交易记录和储户的余额,非事务表可以存储服务器的运行记录数据。数据库通常会包含多个事务表和多个非事务表。现有技术中,在迁移各非事务表时,可以同时迁移一个或多个非事务表,当前将要进行迁移的非事务表可以称为待迁移事务表。对于各事务表,也可以同时迁移一个或多个。为了避免因各非事务表在数据迁移过程中被修改,而导致目标数据库中的各非事务表与源数据库中的各非事务表不相同,出现数据不一致的情况。在进行数据迁移之前,需要对源数据库中的数据加读锁(即只执行读指令,不执行写指令)。然后将各非事务表迁移至目标数据库,完成各非事务表的迁移后,释放该读锁,再将各事务表迁移至目标数据库,以缩短数据迁移过程中,源数据库中的数据处于加读锁状态的时间。然而,现有技术在对含有大量非事务表的数据进行迁移时,源数据库中的数据会长期处于加读锁状态,导致源数据库长时间不可用。
技术实现思路
本专利技术实施例的目的在于提供一种数据迁移方法、装置、电子设备及计算机可读存储介质,可以避免数据迁移过程中,源数据库长时间不可用。具体技术方案如下:第一方面,为了达到上述目的,本专利技术实施例公开了一种数据迁移方法,上述方法包括:在源数据库包含的各非事务表中,获取当前待迁移的目标非事务表;对上述目标非事务表加读锁,将上述目标非事务表迁移至目标数据库;释放上述目标非事务表的读锁;当上述各非事务表迁移完成后,获取上述目标非事务表对应的第一日志记录,其中,上述第一日志记录是上述源数据库的日志记录中从对上述目标非事务表加读锁到上述各非事务表迁移完成时的修改操作日志;根据上述第一日志记录,对上述目标数据库中的上述目标非事务表执行修改操作。可选的,上述根据上述第一日志记录,对上述目标数据库中的上述目标非事务表执行修改操作,包括:在上述第一日志记录中,获取上述目标非事务表对应的目标修改操作记录;根据上述目标修改操作记录,对上述目标数据库中的上述目标非事务表执行修改操作。可选的,上述方法还包括:获取上述源数据库中的各事务表;将上述各事务表迁移至上述目标数据库。可选的,在上述将上述各事务表迁移至上述目标数据库之后,上述方法还包括:获取上述各事务表对应的第二日志记录,其中,上述第二日志记录是上述源数据库的日志记录中从对上述各事务表进行迁移开始到上述各事务表迁移完成时的修改操作日志;根据上述第二日志记录,对上述目标数据库中的上述各事务表执行修改操作。可选的,在上述各非事务表和上述各事务表迁移完成后,上述方法还包括:当达到预设的增量迁移条件时,获取第三日志记录,其中,上述第三日志记录是上述源数据库的日志记录中从上述各非事务表和上述各事务表迁移完成到当前时间的修改操作日志;根据上述第三日志记录,对迁移至上述目标数据库的上述各非事务表和上述各事务表执行修改操作。可选的,上述根据上述第三日志记录,对迁移至上述目标数据库的上述各非事务表和上述各事务表执行修改操作,包括:如果上述第三日志记录中的修改操作是行格式,根据上述第三日志记录确定上述目标数据库中需要进行修改的目标行;根据上述第三日志记录,对上述目标行执行修改操作。可选的,上述根据上述第三日志记录,对迁移至上述目标数据库的上述各非事务表和上述各事务表执行修改操作,包括:如果上述第三日志记录中的修改操作不是行格式,根据上述第三日志记录确定上述目标数据库中需要进行修改的目标表;根据上述第三日志记录,对上述目标表执行修改操作。第二方面,为达到上述目的,本专利技术实施例公开了一种数据迁移装置,上述装置包括:第一获取模块,用于在源数据库包含的各非事务表中,获取当前待迁移的目标非事务表;第一迁移模块,用于对上述目标非事务表加读锁,将上述目标非事务表迁移至目标数据库;释放模块,用于释放上述目标非事务表的读锁;第二获取模块,用于当上述各非事务表迁移完成后,获取上述目标非事务表对应的第一日志记录,其中,上述第一日志记录是上述源数据库的日志记录中从对上述目标非事务表加读锁到上述各非事务表迁移完成时的修改操作日志;第一修改模块,用于根据上述第一日志记录,对上述目标数据库中的上述目标非事务表执行修改操作。可选的,上述第一修改模块包括:获取子模块,用于在上述第一日志记录中,获取上述目标非事务表对应的目标修改操作记录;第一修改子模块,用于根据上述目标修改操作记录,对上述目标数据库中的上述目标非事务表执行修改操作。可选的,上述装置还包括:第三获取模块,用于获取上述源数据库中的各事务表;第二迁移模块,用于将上述各事务表迁移至上述目标数据库。可选的,上述装置还包括:第四获取模块,用于获取上述各事务表对应的第二日志记录,其中,上述第二日志记录是上述源数据库的日志记录中从对上述各事务表进行迁移开始到上述各事务表迁移完成时的修改操作日志;第二修改模块,用于根据上述第二日志记录,对上述目标数据库中的上述各事务表执行修改操作。可选的,上述装置还包括:第五获取模块,用于当达到预设的增量迁移条件时,获取第三日志记录,其中,上述第三日志记录是上述源数据库的日志记录中从上述各非事务表和上述各事务表迁移完成到当前时间的修改操作日志;第三修改模块,用于根据上述第三日志记录,对迁移至上述目标数据库的上述各非事务表和上述各事务表执行修改操作。可选的,上述第三修改模块包括:第一确定子模块,用于如果上述第三日志记录中的修改操作是行格式,根据上述第三日志记录确定上述目标数据库中需要进行修改的目标行;第二修改子模块,用于根据上述第三日志记录,对上述目标行执行修改操作。可选的,上述第三修改模块包括:第二确定子模块,用于如果上述第三日志记录中的修改操作不是行格式,根据上述第三日志记录确定上述目标数据库中需要进行修改的目标表;第三修改子模块,用于根据上述第三日志记录,对上述目标表执行修改操作。在本专利技术实施的另一方面,为了达到上述目的,本专利技术实施例还公开了一种电子设备,上述电子设备包括处理器和存储器;上述存储器,用于存放计算机程序;上述处理器,用于执行上述存储器上所存放的程序时,实现如上述第一方面所述的数据迁移方法。在本专利技术实施的又一方面,还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现如上述第一方面上述的数据迁移方法。在本专利技术实施的又一方面,本专利技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据迁移方法。本专利技术实施例提供的一种数据迁移方法、装置本文档来自技高网
...

【技术保护点】
1.一种数据迁移方法,其特征在于,所述方法包括:在源数据库包含的各非事务表中,获取当前待迁移的目标非事务表;对所述目标非事务表加读锁,将所述目标非事务表迁移至目标数据库;释放所述目标非事务表的读锁;当所述各非事务表迁移完成后,获取所述目标非事务表对应的第一日志记录,其中,所述第一日志记录是所述源数据库的日志记录中从对所述目标非事务表加读锁到所述各非事务表迁移完成时的修改操作日志;根据所述第一日志记录,对所述目标数据库中的所述目标非事务表执行修改操作。

【技术特征摘要】
1.一种数据迁移方法,其特征在于,所述方法包括:在源数据库包含的各非事务表中,获取当前待迁移的目标非事务表;对所述目标非事务表加读锁,将所述目标非事务表迁移至目标数据库;释放所述目标非事务表的读锁;当所述各非事务表迁移完成后,获取所述目标非事务表对应的第一日志记录,其中,所述第一日志记录是所述源数据库的日志记录中从对所述目标非事务表加读锁到所述各非事务表迁移完成时的修改操作日志;根据所述第一日志记录,对所述目标数据库中的所述目标非事务表执行修改操作。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一日志记录,对所述目标数据库中的所述目标非事务表执行修改操作,包括:在所述第一日志记录中,获取所述目标非事务表对应的目标修改操作记录;根据所述目标修改操作记录,对所述目标数据库中的所述目标非事务表执行修改操作。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述源数据库中的各事务表;将所述各事务表迁移至所述目标数据库。4.根据权利要求3所述的方法,其特征在于,在所述将所述各事务表迁移至所述目标数据库之后,所述方法还包括:获取所述各事务表对应的第二日志记录,其中,所述第二日志记录是所述源数据库的日志记录中从对所述各事务表进行迁移开始到所述各事务表迁移完成时的修改操作日志;根据所述第二日志记录,对所述目标数据库中的所述各事务表执行修改操作。5.根据权利要求4所述的方法,其特征在于,在所述各非事务表和所述各事务表迁移完成后,所述方法还包括:当达到预设的增量迁移条件时,获取第三日志记录,其中,所述第三日志记录是所述源数据库的日志记录中从所述各非事务表和所述各事务表迁移完成到当前时间的修改操作日志;根据所述第三日志记录,对迁移至所述目标数据库的所述各非事务表和所述各事务表执行修改操作。6.根据权利要求5所述的方法,其特征在于,所述根据所述第三日志记录,对迁移至所述目标数据库的所述各非事务表和所述各事务表执行修改操作,包括:如果所述第三日志记录中的修改操作是行格式,根据所述第三日志记录确定所述目标数据库中需要进行修改的目标行;根据所述第三日志记录,对所述目标行执行修改操作。7.根据权利要求5所述的方法,其特征在于,所述根据所述第三日志记录,对迁移至所述目标数据库的所述各非事务表和所述各事务表执行修改操作,包括:如果所述第三日志记录中的修改操作不是行格式,根据所述第三日志记录确定所述目标数据库中需要进行修改的目标表;根据所述第三日志记录,对所述目标表执行修改操作。8.一种数据迁移装置,其特征在于,所述装置包括:第一获取模块,用于在源数据库包含的各非事务表中,获取当前待迁移的目标非事务表;第一迁移模块,用于对所述目标非事务表加读锁,...

【专利技术属性】
技术研发人员:乔洪宇
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司北京金迅瑞博网络技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1