一种数据库迁移的方法、装置及存储介质制造方法及图纸

技术编号:35460344 阅读:20 留言:0更新日期:2022-11-03 12:27
本发明专利技术公开了一种数据库迁移的方法、装置及存储介质,用以解决数据库迁移速度慢、效率低的问题,该方法包括:将源数据库中的数据全量迁移到目标数据库,并在数据全量迁移的过程中,计算从源数据库读取的每批数据的第一哈希值;将源数据库中的增量数据同步到目标数据库,并在同步的过程中,记录增量数据所在的位置;之后,复查源数据库的数据与目标数据库的数据是否一致;在复查同批次数据是否一致时,对于源数据库中无增量数据的各批数据,用对应的第一哈希值复查;对于源数据库中有增量数据的各批数据,用重新从源数据库读取的对应批数据的第二哈希值复查;若源表的数据与目标表的数据一致确定数据库迁移成功;否则确定数据库迁移失败。迁移失败。迁移失败。

【技术实现步骤摘要】
一种数据库迁移的方法、装置及存储介质


[0001]本专利技术涉及数据库领域,尤其是涉及一种数据库迁移的方法、装置及存储介质。

技术介绍

[0002]数据库作为项目或应用支撑的后端,随着数据的日益增多,往往需要进行数据库迁移。
[0003]数据库迁移是将数据和对象从一个数据库迁移到另一个数据库的过程,迁移前后的数据一致性稽查是检查迁移是否成功的标志。
[0004]现有技术中,大多数的数据库稽查都是在数据迁移结束后进行的,这导致整体的稽查时间较长、稽查效率不高,并且需要重复对源端数据进行访问,加重了源端的压力。
[0005]鉴于此,如何快速、高效、准确的对数据库进行迁移,成为一个亟待解决的技术问题。

技术实现思路

[0006]本专利技术提供一种数据库迁移的方法、装置及存储介质,用以解决现有技术中存在的数据库迁移速度慢、效率低、不够准确的技术问题。
[0007]第一方面,为解决上述技术问题,本专利技术实施例提供的一种数据库迁移的方法的技术方案如下:
[0008]将源数据库中的数据全量迁移到目标数据库,并在所述数据全量迁移的过程中,计算从所述源数据库读取的每批数据的第一哈希值;
[0009]将源数据库中的增量数据同步到所述目标数据库,并在所述增量数据同步的过程中,记录数据发生变更的增量数据所在的位置;
[0010]在完成所述增量数据同步后,复查所述源数据库的数据与所述目标数据库的数据是否一致;其中,在复查所述源数据库与所述目标数据库中同批次数据是否一致时,对于所述源数据库中无所述增量数据的各批数据,用对应的第一哈希值复查;对于所述源数据库中有所述增量数据的各批数据,用重新从所述源数据库读取的对应批数据的第二哈希值复查;
[0011]若所述源表的数据与所述目标表的数据一致,确定数据库迁移成功;否则,确定数据库迁移失败。
[0012]一种可能的实施方式,将源数据库中的数据全量迁移到目标数据库,包括:
[0013]记录所述源数据库中开始全量迁移的位点信息,并获取对应源数据表的总行数;
[0014]根据所述总行数及分批大小,将所述源数据表中的数据分为多个批次依次迁移到所述目标数据库中,并在完成所述数据全量迁移后记录所述源数据表中所述数据全量迁移结束的最大主键。
[0015]一种可能的实施方式,将源数据库中的增量数据同步到所述目标数据库,包括:
[0016]从所述位点信息对应的位置开始,获取所述源数据表的增量数据,直至所述最大
主键对应的位置;
[0017]在获取所述增量数据时,确定所述增量数据对应的变更类型是否为数据操作语言类型;若为是,将所述增量数据同步到所述目标数据表中对应位置。
[0018]一种可能的实施方式,在所述增量数据同步的过程中,记录数据发生变更的增量数据所在的位置,包括:
[0019]在确定所述增量数据对应的变更类型为所述数据操作语言类型时,进一步确定所述增量数据对应的变更操作是否为更新操作;
[0020]若确定所述增量数据对应的变更操作为更新操作,则记录所述增量数据变更前后分别对应的批次号;
[0021]若确定所述增量数据对应的变更操作为插入操作或删除操作,则根据所述增量数据对应的主键,计算并记录对应的批次号,以及行数;
[0022]对记录的批次号进行去重处理,获得数据发生变更的最终批次号。
[0023]一种可能的实施方式,复查所述源数据库的数据与所述目标数据库的数据是否一致,包括:
[0024]判断所述源数据表的总行数与所述目标数据表的总行数是否相同;
[0025]若所述源数据表的总行数与所述目标数据表的总行数不同,则确定所述源数据库的数据与所述目标数据库的数据不一致;
[0026]所述源数据表的总行数与所述目标数据表的总行数相同,进一步判断所述源数据表与所述目标数据表中同批次的数据是否相同;
[0027]若所述源数据表与所述目标数据表中任一同批次的数据不同,则确定所述源数据库的数据与所述目标数据库的数据不一致;
[0028]若所述源数据表与所述目标数据表中所有同批次的数据相同,则进一步确定所述源数据表与所述目标数据表中记录的相同位置的增量数据是否相同,若所有相同位置的增量数据均相同,则确定所述源数据库的数据与所述目标数据库的数据一致,否则确定源数据库的数据与所述目标数据库的数据不一致。
[0029]一种可能的实施方式,判断所述源数据表的总行数与所述目标数据表的总行数是否相同,包括:
[0030]获取所述数据全量迁移过程中迁移数据的第一总行数,以及所述数据增量同步过程中插入和删除分别对应的增量数据的第二总行数和第三总行数;
[0031]对所述第一总行数与所述第二总行数的和值与所述第三总行数进行差运算,获得所述源数据表的总行数;
[0032]对所述源数据表的总行数与所述目标数据表的总行数进行差运算,获得差运算结果;若所述差运算结果为0,则确定所述源数据表的总行数与所述目标数据表的总行数相同,否则确定所述源数据表的总行数与所述目标数据表的总行数不同。
[0033]一种可能的实施方式,判断所述源数据表与所述目标数据表中同批次的数据是否相同,包括:
[0034]计算所述目标数据库中每批数据的第三哈希值;
[0035]从所述源数据库中重新获取每个所述最终批次号对应的一批数据,并进行哈希计算,获得对应的第二哈希值;
[0036]对于所述源数据库中无所述增量数据的各批数据,判断对应批数据的第一哈希值与所述目标数据库中同批次的第三哈希值是否相同,若相同确定所述源数据库与所述目标数据库对应的同批数据相同,否则确定不同;
[0037]对于所述源数据库中每个所述最终批次号对应的一批数据,判断对应的第二哈希值与所述目标数据库中同批次的第三哈希值是否相同,若相同确定所述源数据库与所述目标数据库对应的同批次数据相同,否则确定不同。
[0038]第二方面,本专利技术实施例提供了一种数据库迁移的装置,包括:
[0039]全量迁移及稽查单元,用于将源数据库中的数据全量迁移到目标数据库,并在所述数据全量迁移的过程中,计算从所述源数据库读取的每批数据的第一哈希值;
[0040]增量同步单元,用于将源数据库中的增量数据同步到所述目标数据库,并在所述增量数据同步的过程中,记录数据发生变更的增量数据所在的位置;
[0041]复查单元,用于在完成所述增量数据同步后,复查所述源数据库的数据与所述目标数据库的数据是否一致;其中,在复查所述源数据库与所述目标数据库中同批次数据是否一致时,对于所述源数据库中无所述增量数据的各批数据,用对应的第一哈希值复查;对于所述源数据库中有所述增量数据的各批数据,用重新从所述源数据库读取的对应批数据的第二哈希值复查;若所述源表的数据与所述目标表的数据一致,确定数据库迁移成功;否则,确定数据库迁移失败。
[0042]一种可能的实施方式,所述全量迁移及本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库迁移的方法,其特征在于,包括:将源数据库中的数据全量迁移到目标数据库,并在所述数据全量迁移的过程中,计算从所述源数据库读取的每批数据的第一哈希值;将源数据库中的增量数据同步到所述目标数据库,并在所述增量数据同步的过程中,记录数据发生变更的增量数据所在的位置;在完成所述增量数据同步后,复查所述源数据库的数据与所述目标数据库的数据是否一致;其中,在复查所述源数据库与所述目标数据库中同批次数据是否一致时,对于所述源数据库中无所述增量数据的各批数据,用对应的第一哈希值复查;对于所述源数据库中有所述增量数据的各批数据,用重新从所述源数据库读取的对应批数据的第二哈希值复查;若所述源表的数据与所述目标表的数据一致,确定数据库迁移成功;否则,确定数据库迁移失败。2.如权利要求1所述的方法,其特征在于,将源数据库中的数据全量迁移到目标数据库,包括:记录所述源数据库中开始全量迁移的位点信息,并获取对应源数据表的总行数;根据所述总行数及分批大小,将所述源数据表中的数据分为多个批次依次迁移到所述目标数据库中,并在完成所述数据全量迁移后记录所述源数据表中所述数据全量迁移结束的最大主键。3.如权利要求2所述的方法,其特征在于,将源数据库中的增量数据同步到所述目标数据库,包括:从所述位点信息对应的位置开始,获取所述源数据表的增量数据,直至所述最大主键对应的位置;在获取所述增量数据时,确定所述增量数据对应的变更类型是否为数据操作语言类型;若为是,将所述增量数据同步到所述目标数据表中对应位置。4.如权利要求3所述的方法,其特征在于,在所述增量数据同步的过程中,记录数据发生变更的增量数据所在的位置,包括:在确定所述增量数据对应的变更类型为所述数据操作语言类型时,进一步确定所述增量数据对应的变更操作是否为更新操作;若确定所述增量数据对应的变更操作为更新操作,则记录所述增量数据变更前后分别对应的批次号;若确定所述增量数据对应的变更操作为插入操作或删除操作,则根据所述增量数据对应的主键,计算并记录对应的批次号,以及行数;对记录的批次号进行去重处理,获得数据发生变更的最终批次号。5.如权利要求4所述的方法,其特征在于,复查所述源数据库的数据与所述目标数据库的数据是否一致,包括:判断所述源数据表的总行数与所述目标数据表的总行数是否相同;若所述源数据表的总行数与所述目标数据表的总行数不同,则确定所述源数据库的数据与所述目标数据库的数据不一致;所述源数据表的总行数与所述目标数据表的总行数相同,进一步判断所述源数据表与所述目标数据表中同批次的数据是否相同;
若所述源数据表与所述目标数据表中任一同批次的数据不同,则确定所述源数据库的数据与所述目标数据库的数据不一致;若所述源数据表与所述目标数据表中所有同批次的数据相同,则进一步确定所述源数据表与所述目标数据表中记录的相同位置的增量数据是否相同,若所有相同位置的增量数据均相同,...

【专利技术属性】
技术研发人员:廖裕兴
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1