数据迁移方法、装置、计算机可读存储介质和计算机设备制造方法及图纸

技术编号:24251431 阅读:117 留言:0更新日期:2020-05-22 23:30
本申请涉及一种数据迁移方法、装置、计算机可读存储介质和计算机设备,方法包括:获取源数据库中对应的原始全量数据;根据原始全量数据中的数据位置插入与数据对应的源数据表的标识,得到目标全量数据;将目标全量数据中的数据对应的原始主键修改为更新主键,更新主键由数据对应的原始主键与数据对应的源数据表的标识确定;将目标全量数据迁移至目标数据库的目标数据表中;获取源数据库的增量数据,将增量数据迁移至目标数据表中,并根据增量数据中的数据位置插入与数据对应的源数据表的标识。本申请提供的方案可以降低数据库迁移过程对数据库正常访问操作的影响。

Data migration methods, devices, computer-readable storage media and computer equipment

【技术实现步骤摘要】
数据迁移方法、装置、计算机可读存储介质和计算机设备
本申请涉及数据库
,特别是涉及一种数据迁移方法、装置、计算机可读存储介质和计算机设备。
技术介绍
在实际的应用场景中,经常需要对数据库的数据进行合并和拆分,例如游戏的拆服和合服:在游戏的快速扩张阶段,数据库的压力过大,会不断的进行拆分;在游戏稳定运营或萎缩阶段,又会进行服务合并,降低运营成本。在对服务进行合并时,需要将源数据库中多张数据表的数据进行迁移,并合并至另外一个数据库的数据表中。传统技术中,在对源数据库进行迁移时,通常需要将所有访问数据库的服务先停掉,然后将该数据库中的数据导出,手动或者用工具整理好数据后,导入到一个集中的数据库中。当业务读写访问量都很大时,停掉服务时间可能非常长,在这段时间内,数据库基本不可用,不能执行任何写操作,甚至不能执行读操作。由此可见,如何在数据库迁移过程中,尽可能的降低对数据库正常访问操作的影响,成为亟待解决的技术问题之一。
技术实现思路
基于此,有必要针对
技术介绍
中引出的技术问题,提供一种数据迁移方法、装置、计算机可读存储介质和计算机设备,以降低数据库迁移过程对数据库正常访问操作的影响。一种数据迁移方法,包括:获取源数据库中各个源数据表的数据组成所述源数据库对应的原始全量数据;根据所述原始全量数据中的数据位置插入与数据对应的源数据表的标识,得到目标全量数据;将所述目标全量数据中的数据对应的原始主键修改为更新主键,所述更新主键由数据对应的原始主键与数据对应的源数据表的标识组合确定;将所述目标全量数据迁移至目标数据库的目标数据表中;获取所述源数据库的相对于所述原始全量数据的增量数据,将所述增量数据迁移至所述目标数据表中,并根据所述增量数据中的数据位置插入与数据对应的源数据表的标识。一种数据迁移装置,所述装置包括:全量数据获取模块,用于获取源数据库中各个源数据表的数据组成所述源数据库对应的原始全量数据;插入模块,用于根据所述原始全量数据中的数据位置插入与数据对应的源数据表的标识,得到目标全量数据;主键更新模块,用于将所述目标全量数据中的数据对应的原始主键修改为更新主键,所述更新主键由数据对应的原始主键与数据对应的源数据表的标识组合确定;迁移模块,用于将所述目标全量数据迁移至目标数据库的目标数据表中;增量数据获取模块,用于获取所述源数据库的相对于所述原始全量数据的增量数据,将所述增量数据迁移至所述目标数据表中,并根据所述增量数据中的数据位置插入与数据对应的源数据表的标识。一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述数据迁移方法所述的步骤。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述数据迁移方法所述的步骤。上述数据迁移方法、装置、计算机可读存储介质和计算机设备,在对源数据库的数据进行迁移时,首先获取原始全量数据,对原始全量数据进行数据迁移,然后获取相对于所述原始全量数据的增量数据,对增量数据进行迁移,保证了在不停止服务访问地情况下,源数据库的数据能够不遗漏地迁移至目标数据库中,同时,在对数据迁移的过程中,通过在迁移的数据中插入源数据表的标识,并对原始全量数据的原始主键进行了修改,将原始主键与数据表的标识设置为联合主键,可以避免在迁移至目标数据库时产生主键冲突,从而顺利地将数据迁移至目标数据库,本申请提供的方案,由于在整个迁移过程中,不需要停掉源数据的服务访问,就能够将数据顺利地将源数据库所有数据不遗漏地迁移至目标数据库,从而降低了数据库迁移过程对数据库正常访问操作的影响。附图说明图1为一个实施例中数据迁移方法的应用环境图;图2为一个实施例中数据迁移方法的流程示意图;图3为另一个实施例中数据迁移方法的流程示意图;图4为一个实施例中步骤S312的流程示意图;图5为一个实施例中日志流的流程示意图;图6为另一个实施例中数据迁移方法的流程示意图;图7为一个实施例中数据迁移装置的结构框图;图8为一个实施例中增量数据获取模块的结构框图;图9为另一个实施例中数据迁移装置的结构框图;图9A为一个实施例中日志解析模块的结构框图;图9B为另一个实施例中日志解析模块的结构框图;图10为一个实施例中计算机设备的结构框图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。图1为一个实施例中数据迁移方法的应用环境图。参照图1,该方法应用于数据迁移系统中,该系统包括第一服务器110和第二服务器120,其中,第一服务器110为源数据库对应的服务器,第二服务器120为目标数据库对应的服务器。第一服务器110和第二服务器120通过网络连接。第一服务器110、第二服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。如图2所示,在一个实施例中,提供了一种数据迁移方法。本实施例主要以该方法应用于上述图1中的第一服务器110来举例说明。参照图2,该数据迁移方法具体包括如下步骤:S202,获取源数据库中各个源数据表的数据组成源数据库对应的原始全量数据。其中,源数据库指的是需要迁移数据的数据库。源数据库中包括多张源数据表。这些源数据表可以是基于同一个数据表水平分表得到。各个源数据表的结构均相同。具体地,第一服务器获取源数据库中各个源数据表的在特定时间点及特定时间点之前的所有数据,将这些数据组成原始全量数据。其中,特定时间点可以根据需要进行设定。在一个实施例中,第一服务器在获取源数据库中各个源数据表的同时,会获取源数据表对应的建表语句。在一个实施例中,该特定时间点可以是当前时间点。第一服务器获取源数据库中各个源数据表在当前时间点及当前时间点之前的所有数据,将这些数据组成原始全量数据。在一个实施例中,第一服务器可以通过开源工具mydumper或者myqldump从源数据库中各个源数据表导出数据。在一个实施例中,第一服务器在获取各个源数据表的数据组成原始全量数据之前,会检查各个源数据表配置信息,包括IP地址、端口号及数据表名称,以及检查各个源数据表的结构是否一致。S204,根据原始全量数据中的数据位置插入与数据对应的源数据表的标识,得到目标全量数据。其中,数据位置指的是数据在源数据库中的位置,根据该位置可确定该数据属于哪一张源数据表。这里的数据指的是原始全量数据中的一条数据记录,其中,一条数据记录例如可以是数据表中的一行数据。具体地,第一服务器在得到原始全量数据后,根据原始全量数据中的数据位置在每一条数据记录中插入其所属的源数据表的标识,得到目标全量数据。在一本文档来自技高网...

【技术保护点】
1.一种数据迁移方法,包括:/n获取源数据库中各个源数据表的数据组成所述源数据库对应的原始全量数据;/n根据所述原始全量数据中的数据位置插入与数据对应的源数据表的标识,得到目标全量数据;/n将所述目标全量数据中的数据对应的原始主键修改为更新主键,所述更新主键由数据对应的原始主键与数据对应的源数据表的标识组合确定;/n将所述目标全量数据迁移至目标数据库的目标数据表中;/n获取所述源数据库的相对于所述原始全量数据的增量数据,将所述增量数据迁移至所述目标数据表中,并根据所述增量数据中的数据位置插入与数据对应的源数据表的标识。/n

【技术特征摘要】
1.一种数据迁移方法,包括:
获取源数据库中各个源数据表的数据组成所述源数据库对应的原始全量数据;
根据所述原始全量数据中的数据位置插入与数据对应的源数据表的标识,得到目标全量数据;
将所述目标全量数据中的数据对应的原始主键修改为更新主键,所述更新主键由数据对应的原始主键与数据对应的源数据表的标识组合确定;
将所述目标全量数据迁移至目标数据库的目标数据表中;
获取所述源数据库的相对于所述原始全量数据的增量数据,将所述增量数据迁移至所述目标数据表中,并根据所述增量数据中的数据位置插入与数据对应的源数据表的标识。


2.根据权利要求1所述的方法,其特征在于,所述获取所述源数据库的相对于所述原始全量数据的增量数据,将所述增量数据迁移至所述目标数据表中,包括:
获取所述源数据库对应的事务日志;
解析所述事务日志,根据解析结果得到所述源数据库对应的变更语句,将所述变更语句重放至所述目标数据表中。


3.根据权利要求2所述的方法,其特征在于,在所述获取源数据库中各个源数据表的数据组成所述源数据库对应的原始全量数据之后,还包括:
记录所述原始全量数据对应的目标位点;
解析所述事务日志,根据解析结果得到所述源数据库对应的变更语句,将所述变更语句重放至所述目标数据表中,包括:
从所述目标位点处开始解析所述事务日志,根据解析结果得到所述源数据库对应的变更语句,将所述变更语句重放至所述目标数据表中。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述源数据库与所述目标数据库的差异不超过预设阈值时,检测所述事务日志的更新状态;
当检测到所述事务日志更新时,解析所述事务日志对应的当前更新日志数据,得到当前更新变更语句;
将所述当前更新变更语句重放至所述目标数据表中。


5.根据权利要求4所述的方法,其特征在于,在所述将所述当前更新变更语句重放至所述目标数据表中之后,还包括:
当所述源数据库中各个源数据表的写入操作被停止且所述当前更新变更语句在所述目标数据表中重放完成时,获取所述目标数据库的访问地址;
将当前服务访问地址由所述源数据库对应的访问地址切换至所述目标数据库的访问地址。


6.根据权利要求2所述的方法,其特征在于,所述从所述目标位点处开始解析所述事务日志,根据解析结果得到所述源数据库对应的变更语句,将所述变更语句重放至所述目标数据表中,包括:
从所述目标位点处开始解析所述事务日志,当解析得到第一源数据表对应...

【专利技术属性】
技术研发人员:吴双桥
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1