searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种多活数据库数据同步状态恢复的方法

2024-04-07 01:52:21
5
0

1、背景

在星状架构的异地多活数据库集群中,中心节点作为各个叶子节点之间数据同步的桥梁,一条数据从一个叶子节点同步到另外一个为候选中心节点的叶子节点时,需要经过2次同步,第一次同步是从源叶子节点同步到中心节点,同步成功后记录同步成功的点位P,第二次同步是从中心节点同步到目标叶子节点。假如同步过程中中心节点崩溃,目标叶子节点提升为中心节点,它需要重建同步链路,这时同步链路的起始点位为前述已记录的同步点位P的下一条数据,但是这个点位对应数据由于各种原因未成功从中心节点同步到目标节点,那么恢复同步后,P对应的数据产生了不必要的丢失,因为崩溃的是中心节点,应尽量避免丢失叶子节点的数据。

2、问题

在星状架构的异地多活数据库集群中,中心节点作为各个叶子节点之间数据同步的桥梁,假设有A、B、C 3个节点,B为中心节点,A要将数据同步到C的时候,需要先将数据同步到B,再由B将数据同步到C,这时假如中心节点B崩溃,需要将节点C提升为中心节点,那么对于A到B之间已同步成功(同步服务已收到节点B的ACK并记录其对应的数据点位)但未从B同步到C的数据,由于记录的数据同步点位与实际同步到C的数据存在时间差,会导致这一段的数据丢失。图1为数据库双向同步在多活数据库中应用的状态恢复问题-数据同步,图2为数据库双向同步在多活数据库中应用的状态恢复问题-状态恢复。

3、方案

本方案提出一种通过在同步数据中附加同步点位的方式,减少不必要的数据丢失。由于崩溃的是中心节点,所以应尽量避免丢失叶子节点的数据。因为跨地域同步中原本就需要提供数据来源标签,避免数据环回同步问题,所以在这个数据来源标签中再附加同步点位。一旦需要进行中心节点的切换,建立同步链路时,根据新的中心节点中记录的最新数据点位重建同步链路即可。

0条评论
0 / 1000
唐****律
20文章数
2粉丝数
唐****律
20 文章 | 2 粉丝
原创

一种多活数据库数据同步状态恢复的方法

2024-04-07 01:52:21
5
0

1、背景

在星状架构的异地多活数据库集群中,中心节点作为各个叶子节点之间数据同步的桥梁,一条数据从一个叶子节点同步到另外一个为候选中心节点的叶子节点时,需要经过2次同步,第一次同步是从源叶子节点同步到中心节点,同步成功后记录同步成功的点位P,第二次同步是从中心节点同步到目标叶子节点。假如同步过程中中心节点崩溃,目标叶子节点提升为中心节点,它需要重建同步链路,这时同步链路的起始点位为前述已记录的同步点位P的下一条数据,但是这个点位对应数据由于各种原因未成功从中心节点同步到目标节点,那么恢复同步后,P对应的数据产生了不必要的丢失,因为崩溃的是中心节点,应尽量避免丢失叶子节点的数据。

2、问题

在星状架构的异地多活数据库集群中,中心节点作为各个叶子节点之间数据同步的桥梁,假设有A、B、C 3个节点,B为中心节点,A要将数据同步到C的时候,需要先将数据同步到B,再由B将数据同步到C,这时假如中心节点B崩溃,需要将节点C提升为中心节点,那么对于A到B之间已同步成功(同步服务已收到节点B的ACK并记录其对应的数据点位)但未从B同步到C的数据,由于记录的数据同步点位与实际同步到C的数据存在时间差,会导致这一段的数据丢失。图1为数据库双向同步在多活数据库中应用的状态恢复问题-数据同步,图2为数据库双向同步在多活数据库中应用的状态恢复问题-状态恢复。

3、方案

本方案提出一种通过在同步数据中附加同步点位的方式,减少不必要的数据丢失。由于崩溃的是中心节点,所以应尽量避免丢失叶子节点的数据。因为跨地域同步中原本就需要提供数据来源标签,避免数据环回同步问题,所以在这个数据来源标签中再附加同步点位。一旦需要进行中心节点的切换,建立同步链路时,根据新的中心节点中记录的最新数据点位重建同步链路即可。

文章来自个人专栏
应用中间件
9 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0