System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,具体而言,涉及一种双活数据同步方法及装置、计算机可读存储介质。
技术介绍
1、随着系统对灾备中心的双活建设,主中心和灾备中心拥有各自独立的服务及数据库集群,主中心和灾备中心同时对外提供服务,此时主中心和灾备中心的数据库数据相互同步技术越来越重要,现有的关系型数据库,如postgresql、mysql都支持类似的主从复制来支持数据备份和数据库的高可用,但数据库从节点只可以进行数据读操作,不能对数据库进行写操作,无法满足双中心数据库双活的目标。
2、针对上述相关技术中具有主中心和灾备中心的计算机灾备系统中,数据库的从节点只可以进行数据读操作,不能对数据库进行写操作,无法满足双中心数据库双活的需求的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本专利技术实施例提供了一种双活数据同步方法及装置、计算机可读存储介质,以至少解决相关技术中具有主中心和灾备中心的计算机灾备系统中,数据库的从节点只可以进行数据读操作,不能对数据库进行写操作,无法满足双中心数据库双活的需求的技术问题。
2、根据本专利技术实施例的一个方面,提供了一种双活数据同步方法,包括:在第一数据中心的目标数据表存在数据变更操作时,生成所述数据变更操作对应的多条数据变更记录,并将所述多条数据变更记录记录到数据变更记录表中;触发所述第一数据中心的数据发送子线程从所述数据变更记录表中读取所述多条数据变更记录,并利用所述数据发送子线程为所述多条数据变更记录中的每一条记录生成记录标识符
3、可选地,利用所述数据发送子线程为所述多条数据变更记录中的每一条记录生成记录标识符,包括:利用所述数据发送子线程按照所述多条数据变更记录表中各所述数据变更记录的序列号,依次读取所述数据变更记录,其中,所述数据变更记录表中存储有数据变更记录的序列号;为依次读取的所述多条数据变更记录生成所述记录标识符。
4、可选地,在将所述多条数据变更记录发送至第二数据中心之后,该双活数据同步方法还包括:将所述数据变更记录表中所述多条数据变更记录的状态由待发送修改为已发送。
5、可选地,将所述多条数据变更记录发送至第二数据中心,包括:在所述多条数据变更记录发送失败时,在发送次数阈值范围内重新发起所述数据变更记录的发送操作;在所述发送次数阈值范围内仍发送失败,退出所述多条数据变更记录的发送操作;重新从所述数据变更记录表中读取所述多条数据变更记录,并执行所述多条数据变更记录的发送操作,以将所述多条数据变更记录发送至所述第二数据中心。
6、可选地,该双活数据同步方法还包括:在所述多条数据变更记录发送成功,且所述多条数据变更记录的状态由所述待发送修改为所述已发送失败的情况下,确定所述多条数据变更记录发送至所述第二数据中心。
7、可选地,将所述多条数据变更记录发送至第二数据中心,以使所述第二数据中心的消息队列在接收到所述多条数据变更记录时,触发数据同步子线程按照所述多条数据变更记录执行数据同步操作,包括:利用所述第二数据中心的同步接收模块从所述消息队列中读取所述多条数据变更记录,并将所述多条数据变更记录存储到所述第二数据中心的数据变更接收表中;根据所述多条数据变更记录确定所述第二数据中心中需要进行数据同步的至少一个数据表;为所述至少一个数据表创建同步子线程;利用所述同步子线程从所述数据变更接收表中读取所述多条数据变更记录,并按照所述多条数据变更记录执行所述数据同步操作。
8、可选地,利用所述同步子线程从所述数据变更接收表中读取所述多条数据变更记录,并按照所述多条数据变更记录执行所述数据同步操作,包括:利用所述同步子线程从所述数据变更接收表中读取所述多条数据变更记录,并对所述多条数据变更记录做归并处理,以将所述数据变更记录表中主键或索引相同的多个数据记录按照操作类型分组,得到多个数据记录组;按照所述多条数据变更记录的序列号做升序归并处理,得到序列号最大的目标数据记录;对所述目标数据记录按照所述多条数据变更记录批量执行数据同步操作。
9、可选地,该双活数据同步方法还包括:在对所述目标数据记录按照所述多条数据变更记录批量执行数据同步操作的同时,出现主键或索引冲突时,对所述多条数据变更记录逐条执行数据同步操作。
10、根据本专利技术实施例的另外一个方面,还提供了一种双活数据同步装置,包括:记录单元,用于在第一数据中心的目标数据表存在数据变更操作时,生成所述数据变更操作对应的多条数据变更记录,并将所述多条数据变更记录记录到数据变更记录表中;生成单元,用于触发所述第一数据中心的数据发送子线程从所述数据变更记录表中读取所述多条数据变更记录,并利用所述数据发送子线程为所述多条数据变更记录中的每一条记录生成记录标识符,其中,所述记录标识符用于唯一标识所述数据变更记录;删除单元,用于利用所述数据发送子线程删除所述数据变更记录表中存在所述记录标识符的目标行,得到删除结果;同步单元,用于在所述删除结果表示所述目标行删除失败时,将所述多条数据变更记录发送至第二数据中心,以使所述第二数据中心的消息队列在接收到所述多条数据变更记录时,触发数据同步子线程按照所述多条数据变更记录执行数据同步操作。
11、可选地,所述生成单元,包括:读取模块,用于利用所述数据发送子线程按照所述多条数据变更记录表中各所述数据变更记录的序列号,依次读取所述数据变更记录,其中,所述数据变更记录表中存储有数据变更记录的序列号;生成模块,用于为依次读取的所述多条数据变更记录生成所述记录标识符。
12、可选地,该双活数据同步装置还包括:修改单元,用于在将所述多条数据变更记录发送至第二数据中心之后,将所述数据变更记录表中所述多条数据变更记录的状态由待发送修改为已发送。
13、可选地,所述同步单元,包括:发起模块,用于在所述多条数据变更记录发送失败时,在发送次数阈值范围内重新发起所述数据变更记录的发送操作;退出模块,用于在所述发送次数阈值范围内仍发送失败,退出所述多条数据变更记录的发送操作;第一同步模块,用于重新从所述数据变更记录表中读取所述多条数据变更记录,并执行所述多条数据变更记录的发送操作,以将所述多条数据变更记录发送至所述第二数据中心。
14、可选地,该双活数据同步装置还包括:确定单元,用于在所述多条数据变更记录发送成功,且所述多条数据变更记录的状态由所述待发送修改为所述已发送失败的情况下,确定所述多条数据变更记录发送至所述第二数据中心。
15、可选地,所述同步单元,包括:存储模块,用于利用所述第二数据中心的同步接收模块从所述消息队列中读取所本文档来自技高网...
【技术保护点】
1.一种双活数据同步方法,其特征在于,包括:
2.根据权利要求1所述的双活数据同步方法,其特征在于,利用所述数据发送子线程为所述多条数据变更记录中的每一条记录生成记录标识符,包括:
3.根据权利要求1所述的双活数据同步方法,其特征在于,在将所述多条数据变更记录发送至第二数据中心之后,还包括:
4.根据权利要求1所述的双活数据同步方法,其特征在于,将所述多条数据变更记录发送至第二数据中心,包括:
5.根据权利要求3所述的双活数据同步方法,其特征在于,还包括:
6.根据权利要求1所述的双活数据同步方法,其特征在于,将所述多条数据变更记录发送至第二数据中心,以使所述第二数据中心的消息队列在接收到所述多条数据变更记录时,触发数据同步子线程按照所述多条数据变更记录执行数据同步操作,包括:
7.根据权利要求6所述的双活数据同步方法,其特征在于,利用所述同步子线程从所述数据变更接收表中读取所述多条数据变更记录,并按照所述多条数据变更记录执行所述数据同步操作,包括:
8.根据权利要求7所述的双活数据同步方法,其特
9.一种双活数据同步装置,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1至8中任意一项所述的双活数据同步方法。
...【技术特征摘要】
1.一种双活数据同步方法,其特征在于,包括:
2.根据权利要求1所述的双活数据同步方法,其特征在于,利用所述数据发送子线程为所述多条数据变更记录中的每一条记录生成记录标识符,包括:
3.根据权利要求1所述的双活数据同步方法,其特征在于,在将所述多条数据变更记录发送至第二数据中心之后,还包括:
4.根据权利要求1所述的双活数据同步方法,其特征在于,将所述多条数据变更记录发送至第二数据中心,包括:
5.根据权利要求3所述的双活数据同步方法,其特征在于,还包括:
6.根据权利要求1所述的双活数据同步方法,其特征在于,将所述多条数据变更记录发送至第二数据中...
【专利技术属性】
技术研发人员:郑元龙,郭楠,宋国伟,郝研朝,郝磊,
申请(专利权)人:中国邮政储蓄银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。