一种数据库的数据迁移方法、装置及设备制造方法及图纸

技术编号:21453936 阅读:35 留言:0更新日期:2019-06-26 04:47
本发明专利技术提供了一种数据库的数据迁移方法、装置、设备及计算机可读存储介质,该方法包括:确定源单元及目的单元;对源单元进行锁定操作,以阻塞向源单元写入数据;向源单元下发查询全部数据的查命令,并获取与源单元当前包含的全部数据对应的标识信息;对源单元进行解锁定操作,以允许向源单元写入数据;读取源单元响应查命令得到的数据集,将该数据集写入至目的单元中;基于标识信息将下发查命令之后源单元的增量数据实时写入至目的单元中。该数据迁移方法保证了目的单元及源单元的数据一致性,且很大程度上减少了数据迁移对于数据库业务持续性的影响。

【技术实现步骤摘要】
一种数据库的数据迁移方法、装置及设备
本专利技术涉及数据库
,更具体地说,涉及一种数据库的数据迁移方法、装置、设备及计算机可读存储介质。
技术介绍
数据库是计算机软件中非常核心的组成部分,当应用规模日渐增大,业务逐渐广泛,数据库的规模也逐渐增大,对性能的要求也越来越高。单数据库节点在业务实现、性能、业务可靠度的角度可能满足不了上层应用,这就要用到数据库实时同步技术。
技术实现思路
本专利技术的目的是提供一种数据库的数据迁移方法、装置、设备及计算机可读存储介质,能够避免对需要实现数据迁移的数据库的业务持续性造成影响的前提下实现数据库实时同步技术。为了实现上述目的,本专利技术提供如下技术方案:一种数据库的数据迁移方法,包括:确定需要实现数据迁移的存储单元为源单元,确定所述源单元中数据需要迁移至的存储单元为目的单元;对所述源单元进行锁定操作,以阻塞向所述源单元写入数据;向所述源单元下发查询全部数据的查命令,并获取与所述源单元当前包含的全部数据对应的标识信息;对所述源单元进行解锁定操作,以允许向所述源单元写入数据;读取所述源单元响应所述查命令得到的数据集,将该数据集写入至所述目的单元中;基于所述标识信息将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中;其中,所述源单元对应数据库具有使得读取的数据集中包含的数据与下发查命令时所述源单元包含的数据一致的多版本并发特性。优选的,获取与所述源单元当前包含的全部数据对应的标识信息,包括:查询并记录所述源单元对应数据库当前的系统改变号值;其中,所述系统改变号值为与所述源单元中对应时刻具有的全部数据相对应的标识值;基于所述标识信息将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中,包括:将所述数据库实时的系统改变号值大于记录的系统改变号值时对应产生的所述源单元的增量数据,均实时写入至所述目的单元中。优选的,将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中,包括:利用所述数据库的LogMinr抓取下发所述查命令之后所述源单元的增量数据日志,并基于所述增量数据日志将对应增量数据实时写入至所述目的单元中。优选的,还包括:接收外界输入的同步终止指令,并在所述同步终止指令的触发下,停止执行将所述源单元的增量数据实时写入至所述目的单元中的步骤。优选的,将所述数据集写入至所述目的单元中之后,还包括:输出已经完成存量数据迁移的提示信息。优选的,输出已经完成存量数据迁移的提示信息,包括:将已经完成存量数据迁移的提示信息发送至指定用户对应终端。优选的,所述源单元及所述目的单元均为数据库表。一种数据库的数据迁移装置,包括:单元确定模块,用于:确定需要实现数据迁移的存储单元为源单元,确定所述源单元中数据需要迁移至的存储单元为目的单元;预备迁移模块,用于:对所述源单元进行锁定操作,以阻塞向所述源单元写入数据;向所述源单元下发查询全部数据的查命令,并获取与所述源单元当前包含的全部数据对应的标识信息;对所述源单元进行解锁定操作,以允许向所述源单元写入数据迁移同步模块,用于:读取所述源单元响应所述查命令得到的数据集,将该数据集写入至所述目的单元中;基于所述标识信息将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中;其中,所述源单元对应数据库具有使得读取的数据集中包含的数据与下发查命令时所述源单元包含的数据一致的多版本并发特性。一种数据库的数据迁移设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上任一项所述数据库的数据迁移方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述数据库的数据迁移方法的步骤。本专利技术公开的数据库的数据迁移方案中,需要将源单元的数据迁移至目的单元时,对源单元进行锁定操作及解锁定操作,在两次操作之间下发查询源单元的全部数据的查命令并获取源单元当前包含全部数据对应的标识信息,以使得通过下发查命令指示源单元查询全部数据及获取对应标识信息的过程中,没有新数据写入至源单元中,从而保证标识信息对应数据与通过下发查命令指示源单元查询的数据具有一致性;然后读取源单元查询得到的数据集并将其数据写入至目的单元中,由于源单元对应数据库具有MVCC特性,因此读取得到的数据集包含数据即为下发查命令时源单元包含的全部数据;而由于标识信息与下发查命令时源单元包含的全部数据对应,因此可以基于标识信息确定出源单元相对于查询得到的数据集产生的增量数据,进而将增量数据写入至目的单元中。可见,本申请公开的技术方案能够保证目的单元中数据及源单元中数据的一致性,且由于仅需在锁定操作及解锁定操作之间实现查命令这一命令的下发及标识信息的获取这一动作,因此源单元无法提供写入数据业务的时间非常短,甚至可以使上层业务感知不到,从而很大程度上减少了数据迁移对于数据库业务持续性的影响。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的一种数据库的数据迁移方法的流程图;图2为本专利技术实施例提供的一种数据库的数据迁移方法的示例实现过程;图3为本专利技术实施例提供的一种数据库的数据迁移装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在相关技术中为了实现数据库实时同步技术,出于数据一致性的考虑完成数据库中数据的同步时会暂停源库业务。其中,将需要实现数据迁移的数据库称为源库,需要将源库的数据迁移至的数据库称为目的库。具体来说,首先将源库的上层写业务暂停,导出源库数据后,导入到目的库。完成存量数据迁移后,确保两库数据一致,开始增量数据同步,恢复源库业务。但是这种暂停源库业务的方法对源库的影响程度与数据量正相关,数据量越大,对源库影响时间越长。也即这种方法存在对需要实现数据迁移的数据库的业务持续性造成影响的问题。请参阅图1,其示出了本专利技术实施例提供的一种数据库的数据迁移方法的流程图,可以包括:S11:确定需要实现数据迁移的存储单元为源单元,确定源单元中数据需要迁移至的存储单元为目的单元。需要说明的是,本专利技术实施例提供的一种数据库的数据迁移方法的执行主体可以为对应的数据迁移装置。其中,数据库是由一个或者多个数据表组成的,数据表则是由一行或者多行记录组成的,一行记录是由一个或者多个字段组成的;对应的,本申请中的存储单元可以指数据库本身,也可以指数据表或者记录,具体可以根据实际需要设定。确定需要实现数据迁移的源单元及需要将源单元的数据迁移至的目的单元后,则开始实现将源单元的数据迁移至目的单元的步骤。本实施例中的数据库可以是Oracle数据库,但并不限于此,本实施例以Oracle数据库为例进行说明。S12:对源单元进行锁定操作,以阻塞向源本文档来自技高网...

【技术保护点】
1.一种数据库的数据迁移方法,其特征在于,包括:确定需要实现数据迁移的存储单元为源单元,确定所述源单元中数据需要迁移至的存储单元为目的单元;对所述源单元进行锁定操作,以阻塞向所述源单元写入数据;向所述源单元下发查询全部数据的查命令,并获取与所述源单元当前包含的全部数据对应的标识信息;对所述源单元进行解锁定操作,以允许向所述源单元写入数据;读取所述源单元响应所述查命令得到的数据集,将该数据集写入至所述目的单元中;基于所述标识信息将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中;其中,所述源单元对应数据库具有使得读取的数据集中包含的数据与下发查命令时所述源单元包含的数据一致的多版本并发特性。

【技术特征摘要】
1.一种数据库的数据迁移方法,其特征在于,包括:确定需要实现数据迁移的存储单元为源单元,确定所述源单元中数据需要迁移至的存储单元为目的单元;对所述源单元进行锁定操作,以阻塞向所述源单元写入数据;向所述源单元下发查询全部数据的查命令,并获取与所述源单元当前包含的全部数据对应的标识信息;对所述源单元进行解锁定操作,以允许向所述源单元写入数据;读取所述源单元响应所述查命令得到的数据集,将该数据集写入至所述目的单元中;基于所述标识信息将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中;其中,所述源单元对应数据库具有使得读取的数据集中包含的数据与下发查命令时所述源单元包含的数据一致的多版本并发特性。2.根据权利要求1所述的方法,其特征在于,获取与所述源单元当前包含的全部数据对应的标识信息,包括:查询并记录所述源单元对应数据库当前的系统改变号值;其中,所述系统改变号值为与所述源单元中对应时刻具有的全部数据相对应的标识值;基于所述标识信息将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中,包括:将所述数据库实时的系统改变号值大于记录的系统改变号值时对应产生的所述源单元的增量数据,均实时写入至所述目的单元中。3.根据权利要求2所述的方法,其特征在于,将下发所述查命令之后所述源单元的增量数据实时写入至所述目的单元中,包括:利用所述数据库的LogMinr抓取下发所述查命令之后所述源单元的增量数据日志,并基于所述增量数据日志将对应增量数据实时写入至所述目的单元中。4.根据权利要求3所述的方法,其特征在于,还包括:接收外界输入的同步终止指令,并在所述同步终止指令的触发下,停止执...

【专利技术属性】
技术研发人员:丁晓波禇占峰姜晓明
申请(专利权)人:杭州数梦工场科技有限公司
类型:发明
国别省市:浙江,33

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

1