System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通计算机领域,尤其涉及一种集群间数据同步的方法、装置、设备及存储介质。
技术介绍
1、归档技术是一种用于持久化和备份数据库事务日志的方法,可以将数据库的预写式日志写入到归档目录中,以便在需要时进行恢复和还原操作。对于复杂且重要的计算业务,需要创造一个高可用的主备集群,需要具备随时准备取代失效主集群的一个或者多个备集群,在主备集群的搭建过程中,归档技术可以用于确保备集群与主集群之间的数据同步和一致性。
2、在主集群中完成对一个预写式日志的写操作后,可以通知归档进程将其进行归档至归档目录,备集群可以对存在于归档目录里的预写式日志进行恢复,以达到主集群与备集群的数据同步。在主集群宕机的时候,备集群可以自动或手动触发提升为主集群对外提供服务。
3、然而,在现有技术中,主备集群分别为具有多个节点的共享集群,在主集群有节点加入时,备集群无法读取加入节点产生的预写式日志;主集群有节点退出时,备集群则会一直等待该退出节点的预写式日志。备集群无法同步读取主集群节点变更信息,导致备集群不能进行正确的数据同步。
技术实现思路
1、本申请提供一种集群间数据同步的方法、装置、设备及存储介质,用以解决备集群无法同步读取主集群节点变更信息,导致备集群不能进行正确的数据同步的问题。
2、第一方面,本申请提供一种集群间数据同步的方法,应用于主集群中的任一节点,包括:
3、在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,所述预写式日志中
4、将所述预写式日志归档至所述节点对应的归档目录中。
5、在一种可能的实施方式中,所述在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,包括:
6、若检测到所述主集群中新增至少一个节点,则对所述主集群执行节点检查操作,并生成所述预写式日志;其中,所述活跃节点列表中包括所述主集群中原活跃节点的标识以及所述至少一个节点的标识。
7、在一种可能的实施方式中,所述在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,包括:
8、若检测到所述节点退出所述主集群时,则在本地执行节点检查操作,生成所述预写式日志;其中,所述活跃节点列表中包括从所述主集群中原活跃节点的标识中删除所述节点的标识后剩余节点的标识。
9、第二方面,本申请提供一种集群间数据同步的方法,应用于备集群中的预设同步节点,包括:
10、在所述备集群启动后,从主集群的每个节点对应的归档目录中读取所述节点的预写式日志;其中,预写式日志中包括日志记录和活跃节点列表,所述活跃节点列表中包括所述主集群的当前处于活跃状态的所有节点;
11、根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录;
12、根据所述优先队列中的日志记录依次对所述主集群节点的数据进行同步。
13、在一种可能的实施方式中,所述根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录,包括:
14、若任一节点的预写式日志中的活跃节点列表中指示所述主集群中增加至少一个节点,则在所述优先队列中增加所述至少一个节点中的每个节点对应的队列位置,并在每个节点对应队列位置中加入所述节点的日志记录。
15、在一种可能的实施方式中,所述根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录,包括:
16、若任一节点的预写式日志中的活跃节点列表中指示所述节点退出所述主集群,则在所述优先队列中删除所述节点对应的队列位置。
17、在一种可能的实施方式中,所述方法还包括:
18、针对任一节点,若读取到的所述节点的预写式日志中的活跃节点列表相较于上一次的预写式日志中的活跃节点列表,增加了所述至少一个节点的标识,则确定所述主集群中增加所述至少一个节点。
19、在一种可能的实施方式中,所述方法还包括:
20、针对任一节点,若读取到的所述节点的预写式日志中的活跃节点列表相较于上一次的预写式日志中的活跃节点列表,删除了所述节点的标识,则确定所述节点退出所述主集群。
21、第三方面,本申请提供一种集群间数据同步的装置,包括:
22、处理模块,用于在检测到主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,所述预写式日志中包括活跃节点列表,所述活跃节点列表中包括当前处于活跃状态的所有节点;
23、归档模块,用于将所述预写式日志归档至所述节点对应的归档目录中。
24、在一种可能的实施方式中,所述处理模块,具体用于:
25、若检测到所述主集群中新增至少一个节点,则对所述主集群执行节点检查操作,并生成所述预写式日志;其中,所述活跃节点列表中包括所述主集群中原活跃节点的标识以及所述至少一个节点的标识。
26、在一种可能的实施方式中,所述处理模块,具体用于:
27、若检测到所述节点退出所述主集群时,则在本地执行节点检查操作,生成所述预写式日志;其中,所述活跃节点列表中包括从所述主集群中原活跃节点的标识中删除所述节点的标识后剩余节点的标识。
28、第四方面,本申请提供一种集群间数据同步的装置,包括:
29、读取模块,用于在备集群启动后,从主集群的每个节点对应的归档目录中读取所述节点的预写式日志;其中,预写式日志中包括日志记录和活跃节点列表,所述活跃节点列表中包括所述主集群的当前处于活跃状态的所有节点;
30、更新模块,用于根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录;
31、同步模块,用于根据所述优先队列中的日志记录依次对所述主集群节点的数据进行同步。
32、在一种可能的实施方式中,所述更新模块,具体用于:
33、若任一节点的预写式日志中的活跃节点列表中指示所述主集群中增加至少一个节点,则在所述优先队列中增加所述至少一个节点中的每个节点对应的队列位置,并在每个节点对应队列位置中加入所述节点的日志记录。
34、在一种可能的实施方式中,所述更新模块,具体用于:
35、若任一节点的预写式日志中的活跃节点列表中指示所述节点退出所述主集群,则在所述优先队列中删除所述节点对应的队列位置。
36、在一种可能的实施方式中,所述读取模块,还用于:
37、针对任一节点,若读取到的所述节点的预写式日志中的活跃节点列表相较于上一次的预写式日志中的活跃节点列表,增加了所述至少一个节点的标识,则确定所述主集群中增加所述至少一个节点。
38、在一种可能的实施方式中,所述读取模块,还用于:
39、针对任一节点,若读取到的所述节点的预写式日志中的活跃节点列表相较于上一次的预写式日志中的活跃节点列表,删除了所述本文档来自技高网...
【技术保护点】
1.一种集群间数据同步的方法,其特征在于,应用于主集群中的任一节点,包括:
2.根据权利要求1所述的方法,其特征在于,所述在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,包括:
3.根据权利要求1所述的方法,其特征在于,所述在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,包括:
4.一种集群间数据同步的方法,其特征在于,应用于备集群中的预设同步节点,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录,包括:
6.根据权利要求4所述的方法,其特征在于,所述根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录,包括:
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
9.一种集群间数据同步的装置,其特征在于,包括:
10.一种集群间数据同步的装置,其特征在于,包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的集群间数据同步的方法。
...【技术特征摘要】
1.一种集群间数据同步的方法,其特征在于,应用于主集群中的任一节点,包括:
2.根据权利要求1所述的方法,其特征在于,所述在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,包括:
3.根据权利要求1所述的方法,其特征在于,所述在检测到所述主集群的节点发生变更时,执行节点检查操作,并生成预写式日志,包括:
4.一种集群间数据同步的方法,其特征在于,应用于备集群中的预设同步节点,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据每个节点的预写式日志中的活跃节点列表,更新优先队列中的日志记录,包括:
6.根据权利要求4所述的方法,其特征...
【专利技术属性】
技术研发人员:吕明强,杨尚,孙文奇,
申请(专利权)人:北京人大金仓信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。