一种基于临时表的异构数据库迁移一致性校验方法技术

技术编号:39437392 阅读:12 留言:0更新日期:2023-11-19 16:20
本发明专利技术涉及数据库迁移领域需确保数据迁移一致性校验场景技术领域,尤其为通过设计一种基于临时表的异构数据库迁移一致性校验方法,其步骤具体如下:S1,在对数据迁移表结构时创建所迁移表的临时表,临时表需包含主键pk,排序字段order_num以及块编号chunk;S2,在分块读取迁移数据时计算出crc值,并保存块数据校验信息,包括块名称及块数据的crc值;S3,按照计算分块数据crc值时各主键的排序生成插入临时表的批量插入sq l;S4,获取目标库已迁移成功的块的块信息(库名+表名+分块编号),在全量同步开始后即可实时获取可校验块信息,进行校验;S5,根据具体块名称获取源端块crc值,本方法通过设计能高效的实现完全意义上的异构数据库分块校验。数据库分块校验。数据库分块校验。

【技术实现步骤摘要】
一种基于临时表的异构数据库迁移一致性校验方法


[0001]本专利技术涉及数据库迁移领域需确保数据迁移一致性校验场景
,具体为一种基于临时表的异构数据库迁移一致性校验方法


技术介绍

[0002]完全意义上的异构数据库
(

MYSQL,MariaDB,TiDB......
因互相兼容,并非完全意义上的异构数据库
)
分块数据校验中难以高效的实现数据校验
,
因完全意义上的异构数据库的排序规则并不一致,故按分块的上下边界范围查询的分块数据并不一致且两侧的块数据排序也不一致,而传统方式
(

in
函数能保证分块后是数据内容一致,但分块数据较大的情况下效率低且无法保证排序,需再次在内存中排序
)
又难以保证高效;
[0003]传统全量校验是从全量迁移结束后开始的,全量迁移数据较大耗时较长时,校验跟数据迁移的延迟会比较大,不能及时发现迁移过程中的问题;
[0004]传统数据校验中迁移阶段与校验阶段都需要从源数据库各读取一次,增加了源数据库的查询压力

[0005]综上所述,本专利技术通过设计一种基于临时表的异构数据库迁移一致性校验方法来解决存在的问题


技术实现思路

[0006]本专利技术的目的在于提供一种基于临时表的异构数据库迁移一致性校验方法,以解决上述
技术介绍
中提出的问题

[0007]为实现上述目的,本专利技术提供如下技术方案:
[0008]一种基于临时表的异构数据库迁移一致性校验方法,包括数据迁移过程和数据检验阶段,其中数据迁移过程的步骤具体如下:
[0009]S1
,在对数据迁移表结构时创建所迁移表的临时表,临时表内包含主键
pk
,排序字段
order_num
以及块编号
chunk

[0010]S2
,在分块读取迁移数据时计算出
crc
值,并保存块数据校验信息,包括块名称及块数据的
crc
值,此步骤是借助数据迁移对源库的查询,消除全量校验时再次对源数据库查询的压力,一次查询,即实现了数据迁移,同时也保存了数据校验所需的块数据校验值
crc

[0011]S3
,按照计算分块数据
crc
值时各主键的排序生成插入临时表的批量插入
sql
,此步骤是借助临时表高效的实现异构数据库分块校验的内容一致且排序一致的关键;
[0012]S4
,获取目标库已迁移成功的块的块信息,在全量同步开始后即可实时获取可校验块信息,进行校验;
[0013]S5
,根据具体块名称获取源端块
crc
值;
[0014]数据检验阶段的步骤具体如下:
[0015]S6
,借助临时表关联目标表查出目标库里对应块的数据且按照临时表
order_num
字段排序,并计算出该目标块的
crc
值;
[0016]S7
,对比源端块与目标块
crc
值,不一致代表校验数据不同,将校验不一致的数据落库,方便后续排查;
[0017]S8
,判断是否全部块数据已完成校验;
[0018]S9
,是则删除临时表结束程序,否则重复
S5

S8。
[0019]通过以上方式,即可实现一个校验与迁移过程低延迟,且对源数据库无查询压力的高效异构数据库分块校验

[0020]作为本专利技术优选的方案,所述
S2
中块名称为库名
+
表名
+
分块编号

[0021]作为本专利技术优选的方案,所述
S4
中块信息为库名
+
表名
+
分块编号

[0022]与现有技术相比,本专利技术的有益效果是:
[0023]本专利技术中,通过设计一种基于临时表的异构数据库迁移一致性校验方法,能高效的实现完全意义上的异构数据库分块校验;并且缩短全量迁移与校验过程的延迟,在迁移开始时即可进行数据校验,及时发现迁移过程中的问题,与此同时借助数据迁移对源库的查询,消除全量校验对源数据库再次查询的压力

附图说明
[0024]图1为本专利技术数据迁移过程流程结构示意图;
[0025]图2为本专利技术流程结构示意图

具体实施方式
[0026]下面将结合本专利技术实施例,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例
,
基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0027]实施例,请参阅图1‑2,本专利技术提供一种技术方案:
[0028]一种基于临时表的异构数据库迁移一致性校验方法,包括:
[0029]在数据迁移过程中
[0030]S1
,在对数据迁移表结构时创建所迁移表的临时表,临时表内包含主键
pk
,排序字段
order_num
以及块编号
chunk

[0031]S2
,在分块读取迁移数据时计算出
crc
值,并保存块数据校验信息,包括块名称
(
库名
+
表名
+
分块编号
)
及块数据的
crc


这一步是借助数据迁移对源库的查询,消除全量校验时再次对源数据库查询的压力,一次查询,即实现了数据迁移,同时也保存了数据校验所需的块数据校验值
crc

[0032]S3
,按照计算分块数据
crc
值时各主键的排序生成插入临时表的批量插入
sql
,这一步是借助临时表高效的实现异构数据库分块校验的内容一致且排序一致的关键;
[0033]S4
,获取目标库已迁移成功的块的块信息
(
库名
+
表名
+
分块编号
)
,在全量同步开始后即可实时获取可校验块信息,进行校验;
[0034]S5
,根据具体块名称获取源端块
crc
值;
[0035]在数据检验阶段
[0036]S6
,借助临时表关联目标表查出目标库里对应块的数据且按照临时表
order_num
字段排序,并计算出该目标块的
crc
值;
[0037]S7
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于临时表的异构数据库迁移一致性校验方法,包括数据迁移过程和数据检验阶段,其中数据迁移过程的步骤具体如下:
S1
,在对数据迁移表结构时创建所迁移表的临时表,临时表内包含主键
pk
,排序字段
order_num
以及块编号
chunk

S2
,在分块读取迁移数据时计算出
crc
值,并保存块数据校验信息,包括块名称及块数据的
crc
值,此步骤是借助数据迁移对源库的查询,消除全量校验时再次对源数据库查询的压力,一次查询,即实现了数据迁移,同时也保存了数据校验所需的块数据校验值
crc

S3
,按照计算分块数据
crc
值时各主键的排序生成插入临时表的批量插入
sql
,此步骤是借助临时表高效的实现异构数据库分块校验的内容一致且排序一致的关键;
S4
,获取目标库已迁移成功的块的块信息,在全量同步开始后即可实时获取可校验块信息,进行校验;
S5
,根据具体块名称获取源端块
crc
值;数据...

【专利技术属性】
技术研发人员:宋欣波海继尚朱奕健顾剑峰梁新元王伟旭
申请(专利权)人:联通上海产业互联网有限公司
类型:发明
国别省市:

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

1