CN117951116A - 数据迁移方法、装置、设备、存储介质及计算机程序产品 - Google Patents
数据迁移方法、装置、设备、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN117951116A CN117951116A CN202410131912.6A CN202410131912A CN117951116A CN 117951116 A CN117951116 A CN 117951116A CN 202410131912 A CN202410131912 A CN 202410131912A CN 117951116 A CN117951116 A CN 117951116A
- Authority
- CN
- China
- Prior art keywords
- data
- basic information
- source database
- target
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 90
- 230000005012 migration Effects 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004590 computer program Methods 0.000 title claims abstract description 14
- 238000012795 verification Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 9
- 238000011156 evaluation Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据迁移方法、装置、设备、存储介质及计算机程序产品,应用于数据库技术领域,该方法包括采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息;基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。该方法通过采集源数据库的基本信息,并将源数据库中的基本信息拆解为前置基础信息和后置基础信息,将前置基础信息、源数据库中的数据和后置基础信息分布写入目标数据库,有效地提高了数据的写入效率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据迁移方法、装置、设备、存储介质及计算机程序产品。
背景技术
数据迁移是指选择、准备、提取和转换数据,并将数据从一个计算机存储系统永久地传输到另一个计算机存储系统的过程。数据迁移有多种原因,包括服务器或存储设备更换、维护或升级、应用程序迁移、网站集成、灾难恢复和数据中心迁移。现有数据迁移方法存在热迁移的方式,即通过获取源数据库中待迁移数据,将数据迁移至目标库后采用对比待迁移数据以及第一迁移数据进行md5值校验一致性。该方案中,数据库第一迁移数据同步至目标库的过程中,未考虑到库表结构调整对于整个数据迁移效率的影响,从而导致数据迁移耗时过长,数据写入的效率较低。
发明内容
本申请实施例提供一种数据迁移方法、装置、设备及存储介质,以解决现有数据迁移方法中数据迁移耗时过长,数据写入的效率较低的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种数据迁移方法,该数据迁移方法包括:
采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
可选地,所述将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,包括:
对所述基本信息进行评估处理;
在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
可选地,所述将所述源数据库中的数据写入所述目标库表结构,包括:
将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
可选地,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构之后,所述方法还包括:
根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
可选地,所述方法还包括:
将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
可选地,所述方法还包括:
对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
可选地,所述基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句之后,所述方法还包括:
将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
第二方面,本申请实施例还提供一种数据迁移系统,该数据迁移系统包括解析器、数据池、控制器和执行器,其中:
所述解析器用于采集源数据库的基本信息,并将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,以及将全量数据分割为多个数据包,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
所述数据池用于缓存所述解析器分割的多个数据包;
所述控制器用于根据所述解析器在将所述全量数据分割为多个数据包之后,向所述执行器发送数据写入任务;
所述执行器用于根据所述控制器发送的所述数据写入任务,将所述多个数据包写入目标数据库,并向所述控制器发送任务反馈信息,所述任务反馈信息包括数据包信息、写入状态信息和校验状态信息。
第三方面,本申请实施例还提供一种数据迁移装置,该数据迁移装置包括:
第一拆分模块,用于采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
第一处理模块,用于基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
第二处理模块,用于将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
可选地,所述第一拆分模块,包括:
第一评估单元,用于对所述基本信息进行评估处理;
第一拆分单元,用于在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
可选地,所述第二处理模块,包括:
第一处理单元,用于将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
第二处理单元,用于通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
可选地,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述装置还包括:
第一生成模块,用于根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
第一比对模块,用于将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
第一存储模块,用于在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
可选地,所述装置还包括:
第二存储模块,用于将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
可选地,所述装置还包括:
第三处理模块,用于对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
可选地,所述装置还包括:
第一校验模块,用于将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
第四方面,本申请实施例还提供一种数据迁移设备,该数据迁移设备包括收发机和处理器,所述处理器用于:
采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
可选地,所述处理器具体用于:
对所述基本信息进行评估处理;
在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
可选地,所述处理器具体用于:
将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
可选地,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述处理器还用于:
根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
可选地,所述处理器还用于:
将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
可选地,所述处理器还用于:
对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
可选地,所述处理器还用于:
将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
第五方面,本申请实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的数据迁移方法的步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据迁移方法的步骤。
第七方面,本申请实施例还提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第一方面所述的方法的步骤。
本申请实施例的数据迁移方法,该方法包括采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。该方法通过采集源数据库的基本信息,并将源数据库中的基本信息拆解为前置基础信息和后置基础信息,将前置基础信息、源数据库中的数据和后置基础信息分布写入目标数据库,有效地提高了数据的写入效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据迁移系统的示意图;
图2是本申请实施例提供的数据迁移方法的流程图;
图3是本申请实施例提供的数据包格式的示意图;
图4是本申请实施例提供的数据包校验的示意图;
图5是本申请一实施例提供的数据迁移装置的结构图;
图6是本申请一实施例提供的数据迁移设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据迁移方法,该数据迁移方法主要由数据迁移系统完成,参见图1,图1是数据迁移系统的示意图,该数据迁移系统包括解析器、数据池、执行器和控制器四部分组成,其中,解析器具体包括采集模块、解析模块、评估模块和解析模型四部分,执行器具体包括任务模块、写入模块和校验模块三个部分。参见图2,图2是本申请实施例提供的数据迁移方法的流程图,如图2所示,包括以下步骤:
步骤201、采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
在该步骤中,可以由解析器中的采集模块采集源数据库的基本信息,源数据库的基本信息可以包括源数据库版本、字符集、二进制日志(Binary Log,binlog)设置信息和大小写敏感设置等信息,还可以包括源数据库的数据结构,源数据库数据结构具体包含库表结构、约束、主外键、索引、视图、分区、备注、函数等信息,还可以包括源数据库的数据分布信息,源数据库的数据分布信息具体包含源数据库中表列表以及对应表的数据量等信息。
之后解析模块基于数据拆解模型将前述采集模块采集的源数据库的基本信息拆分为前置基础信息和后置基础信息,其中,前置基础信息可以包括基础字段等信息,后置基础信息可以包括触发器及索引等信息,解析模块将基本信息拆分为前置基础信息和后置基础信息,以此确定各类属性之间的关联关系,如表之间外键、字段与函数、触发器设置等关联关系,并根据源数据库中表信息以及数据量分布,来确定索引等字段信息对于迁移任务的影响。
步骤202、基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
在该步骤中,通过前置基础信息迁移在目标库中创建对应的库表结构,为数据迁移同步做准备,具体地,基于前置基础信息生成第一结构查询语言(Structured QueryLanguage,SQL)语句,并执行至目标库中。此外,通过批量采样源数据库中数据并写入目标数据库,可以测试前置基础信息的关联性。
步骤203、将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
在该步骤中,在通过前置基础信息创建目标库表结构之后,可以将源数据库中的数据写入目标库表结构中,完成源数据库中数据的迁移。之后再基于后置基础信息生成第二SQL语句,并执行至目标数据库中,完成后置基础信息的迁移。
一种实施方式中,通过采集源数据库的基本信息,并将源数据库中的基本信息拆解为前置基础信息和后置基础信息,将前置基础信息、源数据库中的数据和后置基础信息分布写入目标数据库,有效地提高了数据的写入效率。
可选地,所述将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,包括:
对所述基本信息进行评估处理;
在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
一种实施方式中,在通过解析器中的采集模块采集了源数据库的基本信息之后,可以利用解析器中的评估模块对源数据库中的基本信息进行评估,在确定基本信息满足预设数据迁移要求的情况下,即满足数据迁移任务的可行性的情况下,将源数据库的基本信息拆分为前置基础信息和后置基础信息,再进行下一步的数据迁移任务。
在该种实施方式中,通过先对源数据库中的基本信息进行评估,有利于保证后续数据迁移任务的可行性。
可选地,所述将所述源数据库中的数据写入所述目标库表结构,包括:
将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
一种实施方式,源数据库中的数据迁移包括全量数据迁移阶段和增量数据迁移阶段。需要说明的是,首先需要源数据库中的已有数据进行快照存储,以确定全量数据和增量数据的区分时刻,即某一时刻之前源数据库的已有数据为全量数据,某一时刻之后源数据库中新增的数据为增量数据。
在全量数据迁移阶段,解析器按照预设数据包大小将源数据库中的全量数据分割为多个数据包,数据包由SQL集合组成,是源数据库的数据迁移载体。然后将多个数据包放在数据池中,然后控制器根据解析器的工作进度对执行器下发数据写入任务,控制器认领数据写入任务之后将从数据池中读取数据包,并将数据包写入目标库表结构中,同时,将该次数据写入任务的任务反馈信息注册至于控制器中,任务反馈信息可以包括数据写入任务的编号、数据包信息、解析器编号、执行器编号、执行状态以及将数据包写入目标数据库中对数据包的校验状态等。
待全量数据迁移完成之后,通过解析binlog数据获取增量数据,再将增量数据写入目标库表结构中,以完成增量数据的迁移。
在该种实施方式中,通过分别迁移全量数据和增量数据,有利于提高数据迁移的效率。
可选地,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构之后,所述方法还包括:
根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
一种实施方式中,参见图3,图3为数据包的定义格式的示意图,数据包中包括有标志位和校验码,标志位由DatabaseId+TableId+Range+Timestampe字段组成,其中,DatabaseId为数据库标识(Identity,Id);TableId为表Id;Range为数据包所对应的数据范围,用于确定数据包所对应数据库中的位置;Timestamp为时间戳,用于确定数据包版本信息;校验码记录了数据包所对应的数据的特征值信息,用于后续数据校验使用。
对于写入成功的数据包需要发起异步校验任务,具体地:通过写入成功的数据包中的Range信息获取对应的数据,并基于对应的数据生成校验码,将该校验码与前述Range信息相同的源数据库中的数据包的校验码进行比对,如果校验失败,则将前述写入目标数据库中的数据包转移至重试区暂存。
参见图4,以标签(Table)A数据迁移阶段的异步校验流程为例:
解析器根据数据拆解策略将Table A拆解为三个数据包,当执行器将数据包成功写入目标库的对应的Table A’后,执行器将数据包的执行状态更新至控制器,执行器中的校验模块检查到执行状态后发起一项异步数据校验任务,其任务输入为数据包标志位与校验码,校验模块通过数据标志位的DatabaseId、TableId和Range获取目标数据库中的已迁移数据,并生成校验码。校验模块比对原数据包的校验码与目标库中已迁移数据的校验码,并将校验结果同步至控制器中的对应数据写入任务的校验状态。
在该种实施方式中,当数据包写入目标数据库之后,发起异步校验任务,通过比对目标数据库中数据包的校验码与源数据库中数据包的校验码,实现数据迁移与数据校验同步进行,从而有利于提高数据校验的效率,保证数据迁移的准确性。
可选地,所述方法还包括:
将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
一种实施方式中,对于写入失败的数据包会发起重试,当重试的次数达到设定的阈值(即上述第一阈值)时候,会将报错信息同步至数据写入任务的任务反馈信息中,并将该数据包转移至重试区暂存,从而有利于后续对该数据包进行修复。
可选地,所述方法还包括:
对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
一种实施方式中,当全量数据迁移任务结束之后,存在部分数据包写入失败或者校验失败的情况下,可以从重试区中获取对应的数据包进行二次写入,从而提高数据的修复能力。
可选地,所述基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句之后,所述方法还包括:
将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
一种实施方式中,为了保证迁移数据的最终一致性,在基于后置基础信息生成第二SQL语句,并执行第二SQL语句之后,可以对源数据库的库表结构和数据内容与目标数据库中的目标库表结构和数据内容进行校验。其中,数据内容校验包括有快速数据量校验、表全字段值校验与关联字段值校验等多种校验方式。
继续参见图1,图1是本申请实施例提供的数据迁移系统的结构图,该数据迁移系统包括解析器、数据池、控制器和执行器,其中:
所述解析器用于采集源数据库的基本信息,并将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,以及将全量数据分割为多个数据包,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
所述数据池用于缓存所述解析器分割的多个数据包;
所述控制器用于根据所述解析器在将所述全量数据分割为多个数据包之后,向所述执行器发送数据写入任务;
所述执行器用于根据所述控制器发送的所述数据写入任务,将所述多个数据包写入目标数据库,并向所述控制器发送任务反馈信息,所述任务反馈信息包括数据包信息、写入状态信息和校验状态信息。
需要说明的是,该数据迁移系统的具体实施方式可以参见前述实施例的相关说明,为了避免重复说明,本实施例不再赘述,且还可以达到相同有益效果。
参见图5,图5是本申请一实施例提供的数据迁移装置的结构图,如图5所示,数据迁移装置500包括:
第一拆分模块501,用于采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
第一处理模块502,用于基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
第二处理模块503,用于将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
可选地,所述第一拆分模块,包括:
第一评估单元,用于对所述基本信息进行评估处理;
第一拆分单元,用于在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
可选地,所述第二处理模块,包括:
第一处理单元,用于将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
第二处理单元,用于通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
可选地,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述装置还包括:
第一生成模块,用于根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
第一比对模块,用于将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
第一存储模块,用于在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
可选地,所述装置还包括:
第二存储模块,用于将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
可选地,所述装置还包括:
第三处理模块,用于对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
可选地,所述装置还包括:
第一校验模块,用于将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
需要说明的是,本实施例作为与图2中对应的装置侧的实施例具体实施方式,其具体的实施方式可以参见图2中的所示的实施例的相关说明,为了避免重复说明,本实施例不再赘述,且还可以达到相同有益效果。
本申请实施例还提供了一种数据迁移设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述应用于数据迁移设备的数据迁移方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图6所示,本申请实施例还提供了一种数据迁移设备,包括总线601、收发机602、天线603、总线接口604、处理器605和存储器606。
所述处理器605用于:
采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
可选地,所述处理器605具体用于:
对所述基本信息进行评估处理;
在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
可选地,所述处理器605具体用于:
将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
可选地,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述处理器605还用于:
根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
可选地,所述处理器605还用于:
将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
可选地,所述处理器605还用于:
对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
可选地,所述处理器605还用于:
将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
在图6中,总线架构(用总线601来代表),总线601可以包括任意数量的互联的总线和桥,总线601将包括由处理器605代表的一个或多个处理器和存储器606代表的存储器的各种电路链接在一起。总线601还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口604在总线601和收发机602之间提供接口。收发机602可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器605处理的数据通过天线603在无线介质上进行传输,进一步,天线603还接收数据并将数据传送给处理器605。
处理器605负责管理总线601和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器606可以被用于存储处理器605在执行操作时所使用的数据。
可选的,处理器605可以是CPU、ASIC、FPGA或CPLD。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据迁移方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述图1所示方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (13)
1.一种数据迁移方法,其特征在于,所述方法包括:
采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
2.根据权利要求1所述的数据迁移方法,其特征在于,所述将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,包括:
对所述基本信息进行评估处理;
在所述基本信息满足预设数据迁移要求的情况下,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息。
3.根据权利要求1所述的数据迁移方法,其特征在于,所述将所述源数据库中的数据写入所述目标库表结构,包括:
将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构;
通过解析二进制日志数据获取增量数据,将所述增量数据写入所述目标库表结构,所述源数据库中的数据包括所述全量数据和所述增量数据。
4.根据权利要求3所述的数据迁移方法,其特征在于,每个数据包包括标志位和校验码,所述标志位包括以下至少一项:数据库标识ID;表ID;所述数据包对应的数据范围;时间戳;
所述将所述源数据库中的全量数据分割为多个数据包,并将所述多个数据包分别写入所述目标库表结构之后,所述方法还包括:
根据目标第一数据包对应的第一数据范围,获取第一数据,并基于所述第一数据生成第一校验码,所述目标第一数据包为所述多个数据包中成功写入所述目标库表结构的数据包;
将所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码进行比对;
在所述第一校验码和所述源数据库中与所述第一数据范围对应的源第一数据包的校验码比对失败的情况下,将所述目标第一数据包转移至重试区存储。
5.根据权利要求4所述的数据迁移方法,其特征在于,所述方法还包括:
将第二数据包转移至所述重试区存储,所述第二数据包为所述多个数据包中N次均写入所述目标库表结构失败的数据包,其中,N大于第一阈值。
6.根据权利要求4或5所述的数据迁移方法,其特征在于,所述方法还包括:
对所述重试区中的数据包进行修复,并将修复后的所述重试区的数据包写入所述目标库表结构。
7.根据权利要求1所述的数据迁移方法,其特征在于,所述基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句之后,所述方法还包括:
将所述源数据库的库表结构和数据内容与所述目标数据库的所述目标库表结构和数据内容进行校验。
8.一种数据迁移系统,其特征在于,所述数据迁移系统包括解析器、数据池、控制器和执行器,其中:
所述解析器用于采集源数据库的基本信息,并将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,以及将全量数据分割为多个数据包,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
所述数据池用于缓存所述解析器分割的多个数据包;
所述控制器用于根据所述解析器在将所述全量数据分割为多个数据包之后,向所述执行器发送数据写入任务;
所述执行器用于根据所述控制器发送的所述数据写入任务,将所述多个数据包写入目标数据库,并向所述控制器发送任务反馈信息,所述任务反馈信息包括数据包信息、写入状态信息和校验状态信息。
9.一种数据迁移装置,其特征在于,所述数据迁移装置包括:
第一拆分模块,用于采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
第一处理模块,用于基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
第二处理模块,用于将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
10.一种数据迁移设备,其特征在于,所述数据迁移设备包括收发机和处理器,所述收发机用于:
采集源数据库的基本信息,将所述源数据库的基本信息拆分为前置基础信息和后置基础信息,所述前置基础信息包括基础字段,所述后置基础信息包括触发器及索引;
所述处理器用于:
基于所述前置基础信息生成第一结构查询语言SQL语句,并执行所述第一SQL语句以在目标数据库中创建与所述源数据库对应的目标库表结构;
将所述源数据库中的数据写入所述目标库表结构,基于所述后置基础信息生成第二SQL语句,并执行所述第二SQL语句。
11.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据迁移方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据迁移方法的步骤。
13.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410131912.6A CN117951116A (zh) | 2024-01-31 | 2024-01-31 | 数据迁移方法、装置、设备、存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410131912.6A CN117951116A (zh) | 2024-01-31 | 2024-01-31 | 数据迁移方法、装置、设备、存储介质及计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117951116A true CN117951116A (zh) | 2024-04-30 |
Family
ID=90804591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410131912.6A Pending CN117951116A (zh) | 2024-01-31 | 2024-01-31 | 数据迁移方法、装置、设备、存储介质及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117951116A (zh) |
-
2024
- 2024-01-31 CN CN202410131912.6A patent/CN117951116A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263009B (zh) | 日志分类规则的生成方法、装置、设备及可读存储介质 | |
CN110292775B (zh) | 获取差异数据的方法及装置 | |
CN100574225C (zh) | 日志的自动测试方法及自动测试系统 | |
CN103034735B (zh) | 一种大数据分布式文件导出方法 | |
US8924398B2 (en) | Log-based DDL generation | |
CN109634970B (zh) | 表数据同步方法、设备、存储介质及装置 | |
US9043651B2 (en) | Systematic failure remediation | |
JP6711884B2 (ja) | ソースデータベースの負荷を最小化したデータ整合性検証方法およびシステム | |
CN104252481A (zh) | 主从数据库一致性的动态校验方法和装置 | |
EP4006740A1 (en) | Method for indexing data in storage engines, and related device | |
CN111857880A (zh) | 对话配置项信息管理方法、装置、设备及存储介质 | |
CN110046155B (zh) | 特征数据库的更新、数据特征的确定方法、装置及设备 | |
CN109508346A (zh) | 一种ddl操作的级联同步控制方法及系统 | |
CN113672692B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113050926B (zh) | 一种代码同步变更的确认方法、装置和设备 | |
JP2018092361A (ja) | テストスクリプト修正装置及びテストスクリプト修正プログラム | |
US8229934B2 (en) | System and program for collecting documents | |
EP2904520A1 (en) | Reference data segmentation from single to multiple tables | |
CN116383155B (zh) | 一种基于eda验证仿真器的日志查询系统 | |
CN117951116A (zh) | 数据迁移方法、装置、设备、存储介质及计算机程序产品 | |
CN109508204B (zh) | 一种前端代码质量检测方法及装置 | |
CN116166533A (zh) | 接口测试方法、装置、终端设备以及存储介质 | |
CN113626423B (zh) | 业务数据库的日志管理方法、装置、系统 | |
CN115658360A (zh) | 一种基于日志数据的云系统故障诊断方法 | |
CN113505069B (zh) | 一种测试数据分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |