温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

关系数据库如何容灾

发布时间:2026-10-15 03:40:41 来源:亿速云 阅读:116 作者:小樊 栏目:数据库

关系数据库的容灾(Disaster Recovery,DR)目标是:在自然灾害、机房故障、人为误操作、硬件损坏等场景下,保障数据的可用性、完整性和一致性,并能在可接受的时间内恢复业务。

下面从架构层级到技术实现系统说明。


一、容灾的核心指标

在设计容灾前,先明确两个关键指标:

1. RPO(Recovery Point Objective)

  • 允许丢失多少数据
  • 例:RPO = 5 分钟 → 最多丢 5 分钟数据

2. RTO(Recovery Time Objective)

  • 允许业务中断多久
  • 例:RTO = 30 分钟 → 半小时内必须恢复

容灾方案的本质,就是在成本和 RPO/RTO 之间做平衡。


二、常见容灾架构(从低到高)

1. 本地高可用(同机房)

目标:防止单点故障

方案:

  • 主从复制(异步 / 半同步)
  • 共享存储(SAN)
  • 数据库集群(如 Oracle RAC、MySQL Group Replication)

✅ 优点:成本低
❌ 缺点:机房级灾难无效


2. 同城多活 / 同城灾备

目标:防机房故障

架构:

  • 两个机房在同一城市
  • 网络延迟低(< 5ms)
  • 常见:
    • 主备(Active-Standby)
    • 双活(Active-Active,难度高)

示例:

  • MySQL:MHA / Orchestrator
  • PostgreSQL:Streaming Replication

✅ RPO 可接近 0
✅ RTO 分钟级


3. 异地灾备(跨城市 / 跨 region)

目标:防城市级灾难

方案:

  • 异步复制(延迟不可避免)
  • 定期快照 + 日志回放

示例:

  • MySQL → 异地从库
  • PostgreSQL → WAL 归档 + 恢复

⚠️ 通常 RPO > 0(如 5–30 分钟)


4. 多云 / 混合云容灾

目标:防云厂商故障

方案:

  • 数据库跨云同步
  • 使用 CDC(如 Debezium)
  • 备份到对象存储(S3 / OSS)

三、数据库容灾关键技术

1. 数据复制

类型 说明 特点
物理复制 块级 / 日志级 快、强一致
逻辑复制 SQL 级 灵活、跨版本
同步复制 主备都写成功 RPO=0,性能低
异步复制 主写即返回 性能好,可能丢数据

2. 备份与恢复(最后底线)

即使有容灾,也必须备份

方式:

  • 全量 + 增量 + 日志(binlog / WAL)
  • 定期演练恢复

3-2-1 原则:

  • 3 份数据
  • 2 种介质
  • 1 份异地

3. 故障切换(Failover)

  • 自动切换(Orchestrator、Patroni)
  • 人工切换(保守场景)
  • VIP / DNS / 中间件路由

4. 一致性保障

  • 事务日志
  • 幂等设计
  • 冲突解决(多写场景)

四、典型数据库示例

MySQL

  • 主从复制
  • MGR(MySQL Group Replication)
  • binlog + 异地从库

PostgreSQL

  • Streaming Replication
  • Patroni + etcd
  • WAL 归档

Oracle

  • Data Guard(物理 / 逻辑)
  • RAC + ADG

五、容灾不是“建好就完”

必须做:

  • ✅ 定期容灾演练
  • ✅ 恢复时间测试
  • ✅ 权限与流程管理
  • ✅ 监控与告警

六、简单选型建议

场景 推荐
小业务 主从 + 备份
核心系统 同城双活 + 异地备
金融级 同步复制 + 强一致
云原生 托管数据库 + 跨区副本

如果你愿意,可以告诉我:

  • 使用的数据库类型(MySQL / PG / Oracle)
  • 是否上云
  • RPO / RTO 要求

我可以直接给你一套可落地的容灾方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手