You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS RDS双向复制实现灾备场景的相关实操经验咨询

AWS RDS双向复制灾备场景实操参考

RDS原生提供的只读副本是单向同步架构,官方没有内置双向多主复制功能,我司去年做跨Region灾备的时候落地过两套方案,给你参考:

方案1:基于RDS原生逻辑复制实现(成本最低,适配MySQL/PostgreSQL引擎)

这个方案不需要额外工具,只用RDS自带的逻辑复制能力就能实现,我们的MySQL 8.0 RDS实例用的就是这套:

  • 前置准备
    • 两个RDS实例(主/灾备)都修改参数组开启逻辑复制:
      • MySQL引擎:设置binlog_format=ROW、binlog_row_image=FULL、log_bin_trust_function_creators=1,参数修改后需要重启实例生效
      • PostgreSQL引擎:设置wal_level=logical,同时调大max_replication_slots、max_wal_senders参数(至少大于你要创建的订阅数+2)
    • 提前配置自增ID偏移避免主键冲突:比如实例A自增步长设为2、起始值1,实例B自增步长设为2、起始值2,完全避免同主键写入冲突
    • 停掉业务写入,做一致性快照把数据同步到两个实例,保证初始数据完全一致
  • 配置步骤
    • 两边实例都创建专用的逻辑复制账号,授予REPLICATION权限
    • 两边实例分别为需要同步的库表创建发布(Publication),排除系统表不需要同步
    • 两边实例互相创建订阅(Subscription),对接对端的发布地址,启动同步即可
  • 注意事项
    • 逻辑复制默认不会同步DDL语句,两边改表需要手动同步执行,不要直接在线执行DDL
    • 自定义冲突处理规则:如果有非自增主键的写入场景,要提前定义冲突优先级,比如按最后更新时间覆盖、或者指定主Region写入优先,出现冲突直接按规则处理不会中断同步

方案2:基于ECS部署同步中间件实现(适合复杂规则场景)

如果需要跨引擎同步、或者有复杂的过滤/转换规则,可以自己在ECS上部署开源同步工具或者商业同步工具,配置双向同步:

  • 同步工具部署在和两个RDS同VPC的ECS上,网络延迟可以控制在毫秒级
  • 工具层面默认支持冲突检测、DDL同步、数据校验等功能,不需要自己写规则
  • 唯一的成本就是多出来的ECS和工具运维成本

落地必做验证

  1. 同步配置完成后做双写压测,验证冲突处理逻辑是否符合预期,同步延迟是否满足业务要求(我们生产环境目前延迟稳定在1s以内)
  2. 每个季度做一次灾备切换演练,切换前停主实例写入,等同步完全追平后再切流量到灾备实例,切换完成后做全量数据一致性校验

内容的提问来源于stack exchange,提问作者スーパーマン

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 23:42:03