数据同步方法及装置、电子设备、存储介质制造方法及图纸

技术编号:27975573 阅读:25 留言:0更新日期:2021-04-06 14:09
本申请公开了一种数据同步方法及装置、电子设备、存储介质,其中,方法通过分别采集主集群和备集群中的所有数据表的表名以及系统修订号,然后基于数据表的表名以及系统修订号,确定出主备集群间不一致的数据表,即备集群中缺失的缺失数据表、备集群中多余的多余数据表以及系统修订号不一致的多组差异数据表,然后删除备集群中的各个多余数据表,以及在备集群中创建每个缺失数据表对应的数据表,并将每个缺失数据表及其对应的数据表确定为一组差异数据表,最后批量将每组差异数据表中的主集群的差异数据表的数据,同步至属于同组的备集群的差异数据表中。从而基于系统修订号实现了一种增量同步的方法,有效提高了数据同步的效率。

【技术实现步骤摘要】
数据同步方法及装置、电子设备、存储介质
本申请涉及数据同步
,特别涉及一种数据同步方法及装置、电子设备、存储介质。
技术介绍
在机房搬迁或设备更换等应用场景下,需要对大量的数据进行迁移,即需要将数据从一个集群同步至另一个集群中。当前的大数据平台数据迁移主要通过数据库链接工具DB-Link实现,其为数据库内部提供的远程数据库链接功能,可以通过与透明网关服务的协同工作,实现透明访问异地集群中的数据库的数据表或者远程数据库的数据表。具体的过程如图1所示,具体为:用户通过F5访问目标集群,并下发命令,使得目标集群F5跳转到目标集群的某个节点上。目标集群判断该命令是否访问本集群数据,还是访问其他集群数据,如果是访问其他集群,准备建立数据库链接通道,并生成执行计划,下发到透明网关F5,透明网关F5跳转到透明网关集群的某个节点上,并将命令下发给源集群F5,最后由源集群F5跳转到源集群的某个节点上,并开始执行命令,然后将执行结果发送到目标集群,并逐层返回执行结果。但是这种方式并不能识别出发生变换的数据表,所以是通过全量同步实现的数据迁移。而由于现今需要迁移的数据量都相对庞大,所以全量同步需要耗费大量的时间,并且数据库链接通道的传输速率较低,因此使用这种数据同步方式进行数据迁移存在明显的效率低下的问题。
技术实现思路
基于上述现有技术的不足,本申请提供了一种数据同步方法及装置、电子设备、存储介质,以解决现有的数据同步方式进行数据迁移时效率较低的问题。为了实现上述目的,本申请提供了以下技术方案:本申请第一方面提供了一种数据同步方法,包括:分别采集主集群和备集群中的所有数据表的信息;其中,所述数据表的信息包括表名以及系统修订号;将所述主集群的所述数据表与所述备集群的所述数据表的信息进行对比,确定出缺失数据表、多余数据表以及多组差异数据表;其中,一组所述差异数据表包括两个分别存在于所述主集群和所述备集群中的表名相同、且系统修订号不一致的数据表;所述缺失数据表的表名仅出现在所述主集群中;所述多余数据表的表名仅出现在所述备集群中;删除所述备集群中的各个所述多余数据表;在所述备集群中创建每个所述缺失数据表对应的数据表,并将每个所述缺失数据表及其对应的数据表确定为一组差异数据表;其中,每个所述缺失数据表及其对应的数据表具有相同表结构和表名;批量将每组所述差异数据表中的所述主集群的差异数据表的数据,同步至属于同组的所述备集群的差异数据表中。可选地,在上述的数据同步方法中,分别采集主集群和备集群中的所有数据表的信息之前,还包括:将分别处于所述主集群与所述备集群中对象名相同的目标对象对应的校验值进行对比,确定出所述校验值不一致的差异目标对象;其中,所述目标对象至少包括集群视图、存储过程描述、自定义函数;所述目标对象对应的校验值为采用信息摘要算法对目标对象的主体进行计算得到的散列值;分别在所述备集群中创建与每个在所述主集群中的所述差异目标对象相一致的对象,并删除所述备集群中的所述差异目标对象。可选地,在上述的数据同步方法中,所述分别采集主集群和备集群中的所有数据表的信息,包括:分别将所述主集群和备集群作为目标集群;当监测到所述目标集群的状态表中写入新的同步标识时,判断当前所述目标集群是否存在写操作;若判断出当前所述目标集群存在写操作,则在间隔预设时间长度后,返回执行所述判断当前所述目标集群是否存在写操作;若判断出当前所述目标集群不存在写操作,则分别获取所述目标集群的各个节点的所有数据表的表名和系统修订号。可选地,在上述的数据同步方法中,所述批量将每组所述差异数据表中的所述主集群的差异数据表的数据,同步至属于同组的所述备集群的差异数据表中,包括:从待同步清单中,选取多个未同步的所述差异数据表的表名;利用选取的多个所述差异数据表的表名,生成同步列表;依次针对所述同步列表中每个所述差异数据表的表名,将所述主集群中所述表名对应的差异数据表中的差异数据,同步至所述备集群中所述表名对应的差异数据表中;将同步失败且包含目标处理标识的所述主集群的差异数据表,全量同步至所述备集群中,并返回执行所述从待同步清单中,选取多个未同步的所述差异数据表的表名,直至所述待同步清单中不存在未同步的所述差异数据表的表名。可选地,在上述的数据同步方法中,所述目标处理标识包括第一处理标识和第二处理标识,所述将同步失败且包含目标处理标识的所述主集群的差异数据表,全量同步至所述备集群中,包括:分别针对每个第一数据表,修改所述备集群中表名与所述第一数据表相同的数据表的表名;其中,所述第一数据表指代同步失败且包含所述第一处理标识的所述主集群的差异数据表;将所述备集群中表名与第二数据表相同的数据表删除;其中,所述第二数据表指代同步失败且包含所述第二处理标识的所述主集群的差异数据表;将所述第一数据表和所述第二数据表中的数据,全量同步至将所述备集群中。本申请第二方面提供了一种数据同步装置,包括:采集单元,用于分别采集主集群和备集群中的所有数据表的信息;其中,所述数据表的信息包括表名以及系统修订号;第一对比单元,用于将所述主集群的所述数据表与所述备集群的所述数据表的信息进行对比,确定出缺失数据表、多余数据表以及多组差异数据表;其中,一组所述差异数据表包括两个分别存在于所述主集群和所述备集群中的表名相同、且系统修订号不一致的数据表;所述缺失数据表的表名仅出现在所述主集群中;所述多余数据表的表名仅出现在所述备集群中;删除单元,用于删除所述备集群中的各个所述多余数据表;创建单元,用于在所述备集群中创建每个所述缺失数据表对应的数据表,并将每个所述缺失数据表及其对应的数据表确定为一组差异数据表;其中,每个所述缺失数据表及其对应的数据表具有相同表结构和表名;第一同步单元,用于批量将每组所述差异数据表中的所述主集群的差异数据表的数据,同步至属于同组的所述备集群的差异数据表中。可选地,在上述的数据同步装置中,还包括:第二对比单元,用于将分别处于所述主集群与所述备集群中对象名相同的目标对象对应的校验值进行对比,确定出所述校验值不一致的差异目标对象;其中,所述目标对象至少包括集群视图、存储过程描述、自定义函数;所述目标对象对应的校验值为采用信息摘要算法对目标对象的主体进行计算得到的散列值;第二同步单元,用于分别在所述备集群中创建与每个在所述主集群中的所述差异目标对象相一致的对象,并删除所述备集群中的所述差异目标对象。可选地,在上述的数据同步装置中,所述采集单元,包括:确定单元,用于分别将所述主集群和备集群作为目标集群;判断单元,用于当监测到所述目标集群的状态表中写入新的同步标识时,判断当前所述目标集群是否存在写操作;返回单元,用于在所述判断单元判断出当前所述目标集群存在写操作时,在间隔预设时间长度后,返回所述判断单元执行所述判断本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,包括:/n分别采集主集群和备集群中的所有数据表的信息;其中,所述数据表的信息包括表名以及系统修订号;/n将所述主集群的所述数据表与所述备集群的所述数据表的信息进行对比,确定出缺失数据表、多余数据表以及多组差异数据表;其中,一组所述差异数据表包括两个分别存在于所述主集群和所述备集群中的表名相同、且系统修订号不一致的数据表;所述缺失数据表的表名仅出现在所述主集群中;所述多余数据表的表名仅出现在所述备集群中;/n删除所述备集群中的各个所述多余数据表;/n在所述备集群中创建每个所述缺失数据表对应的数据表,并将每个所述缺失数据表及其对应的数据表确定为一组差异数据表;其中,每个所述缺失数据表及其对应的数据表具有相同表结构和表名;/n批量将每组所述差异数据表中的所述主集群的差异数据表的数据,同步至属于同组的所述备集群的差异数据表中。/n

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:
分别采集主集群和备集群中的所有数据表的信息;其中,所述数据表的信息包括表名以及系统修订号;
将所述主集群的所述数据表与所述备集群的所述数据表的信息进行对比,确定出缺失数据表、多余数据表以及多组差异数据表;其中,一组所述差异数据表包括两个分别存在于所述主集群和所述备集群中的表名相同、且系统修订号不一致的数据表;所述缺失数据表的表名仅出现在所述主集群中;所述多余数据表的表名仅出现在所述备集群中;
删除所述备集群中的各个所述多余数据表;
在所述备集群中创建每个所述缺失数据表对应的数据表,并将每个所述缺失数据表及其对应的数据表确定为一组差异数据表;其中,每个所述缺失数据表及其对应的数据表具有相同表结构和表名;
批量将每组所述差异数据表中的所述主集群的差异数据表的数据,同步至属于同组的所述备集群的差异数据表中。


2.根据权利要求1所述的方法,其特征在于,分别采集主集群和备集群中的所有数据表的信息之前,还包括:
将分别处于所述主集群与所述备集群中对象名相同的目标对象对应的校验值进行对比,确定出所述校验值不一致的差异目标对象;其中,所述目标对象至少包括集群视图、存储过程描述、自定义函数;所述目标对象对应的校验值为采用信息摘要算法对目标对象的主体进行计算得到的散列值;
分别在所述备集群中创建与每个在所述主集群中的所述差异目标对象相一致的对象,并删除所述备集群中的所述差异目标对象。


3.根据权利要求1所述的方法,其特征在于,所述分别采集主集群和备集群中的所有数据表的信息,包括:
分别将所述主集群和备集群作为目标集群;
当监测到所述目标集群的状态表中写入新的同步标识时,判断当前所述目标集群是否存在写操作;
若判断出当前所述目标集群存在写操作,则在间隔预设时间长度后,返回执行所述判断当前所述目标集群是否存在写操作;
若判断出当前所述目标集群不存在写操作,则分别获取所述目标集群的各个节点的所有数据表的表名和系统修订号。


4.根据权利要求1所述的方法,其特征在于,所述批量将每组所述差异数据表中的所述主集群的差异数据表的数据,同步至属于同组的所述备集群的差异数据表中,包括:
从待同步清单中,选取多个未同步的所述差异数据表的表名;
利用选取的多个所述差异数据表的表名,生成同步列表;
依次针对所述同步列表中每个所述差异数据表的表名,将所述主集群中所述表名对应的差异数据表中的差异数据,同步至所述备集群中所述表名对应的差异数据表中;
将同步失败且包含目标处理标识的所述主集群的差异数据表,全量同步至所述备集群中,并返回执行所述从待同步清单中,选取多个未同步的所述差异数据表的表名,直至所述待同步清单中不存在未同步的所述差异数据表的表名。


5.根据权利要求4所述的方法,其特征在于,所述目标处理标识包括第一处理标识和第二处理标识,所述将同步失败且包含目标处理标识的所述主集群的差异数据表,全量同步至所述备集群中,包括:
分别针对每个第一数...

【专利技术属性】
技术研发人员:张鸿冯健儒
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

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

1