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

异地双活数据同步

2024-06-17 09:26:41
55
0

一、异地双活架构概述

异地双活架构是指在两个地理位置相隔较远的机房分别部署一套相同的应用系统,通过数据同步技术保证两套系统之间的数据一致性。在这种架构下,当一套系统发生故障时,可以快速切换到另一套系统,实现故障转移,提高系统的可用性和性能。

二、数据同步关键技术

1. 同步策略

数据同步策略包括全量同步和增量同步。全量同步是指将整个数据集从一套系统同步到另一套系统,适用于数据量较小或者对数据一致性要求较高的场景;增量同步是指只同步发生变化的数据,适用于数据量较大或者对同步速度要求较高的场景。

2. 如何获取全量+增量数据

通常,mysql不会保存所有的历史binlog。原因在于,对于一条记录,可能我们会更新多次,这依然是一条记录,但是针对每一次更新操作,都会产生一条binlog记录,这样就会存在大量的binlog,很快会将磁盘占满。因此DBA通常会通过一些配置项,来定时清理binlog,只保留最近一段时间内的binlog。官方的mysql提供了expire_logs_days配置项,可以设置保存binlog的天数。因为binlog可能不会一直保留,所以直接同步binlog,可能只能获取到部分数据。因此,通常的策略是,由DBA先dump一份源库的完整数据快照,增量部分,再通过binlog订阅解析进行同步。

3. 数据一致性保障

数据一致性是异地双活架构中的核心问题。为了保障数据一致性,可以采用以下技术手段:

(1)分布式锁:在数据更新操作时,通过分布式锁确保同一时刻只有一个系统可以执行更新操作,避免数据冲突。

(2)时间戳:为每条数据设置时间戳,当数据发生冲突时,可以根据时间戳判断数据的先后顺序,保证数据的一致性。

(3)版本号:为每条数据设置版本号,当数据发生冲突时,可以根据版本号判断数据的最新状态,实现数据的一致性。

0条评论
作者已关闭评论
z****n
5文章数
0粉丝数
z****n
5 文章 | 0 粉丝
原创

异地双活数据同步

2024-06-17 09:26:41
55
0

一、异地双活架构概述

异地双活架构是指在两个地理位置相隔较远的机房分别部署一套相同的应用系统,通过数据同步技术保证两套系统之间的数据一致性。在这种架构下,当一套系统发生故障时,可以快速切换到另一套系统,实现故障转移,提高系统的可用性和性能。

二、数据同步关键技术

1. 同步策略

数据同步策略包括全量同步和增量同步。全量同步是指将整个数据集从一套系统同步到另一套系统,适用于数据量较小或者对数据一致性要求较高的场景;增量同步是指只同步发生变化的数据,适用于数据量较大或者对同步速度要求较高的场景。

2. 如何获取全量+增量数据

通常,mysql不会保存所有的历史binlog。原因在于,对于一条记录,可能我们会更新多次,这依然是一条记录,但是针对每一次更新操作,都会产生一条binlog记录,这样就会存在大量的binlog,很快会将磁盘占满。因此DBA通常会通过一些配置项,来定时清理binlog,只保留最近一段时间内的binlog。官方的mysql提供了expire_logs_days配置项,可以设置保存binlog的天数。因为binlog可能不会一直保留,所以直接同步binlog,可能只能获取到部分数据。因此,通常的策略是,由DBA先dump一份源库的完整数据快照,增量部分,再通过binlog订阅解析进行同步。

3. 数据一致性保障

数据一致性是异地双活架构中的核心问题。为了保障数据一致性,可以采用以下技术手段:

(1)分布式锁:在数据更新操作时,通过分布式锁确保同一时刻只有一个系统可以执行更新操作,避免数据冲突。

(2)时间戳:为每条数据设置时间戳,当数据发生冲突时,可以根据时间戳判断数据的先后顺序,保证数据的一致性。

(3)版本号:为每条数据设置版本号,当数据发生冲突时,可以根据版本号判断数据的最新状态,实现数据的一致性。

文章来自个人专栏
异地数据同步
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0