DBAtlas · 数据库运维图谱

决策:选择哪种 HA/DR 方案?

选择高可用和容灾方案,首先考虑的不是技术,而是业务需求(RTO/RPO)、地理分布需求与成本之间的平衡。这棵决策树从你对停机和数据丢失的容忍度出发,在同步副本、异步备库、自动故障转移集群和备份+PITR 中为你指出合适的方案。

你的数据丢失容忍度(RPO)是多少?

从最严格的约束开始:发生灾难时,你最多能承受丢失几秒的数据?如果要求零数据丢失(RPO=0),则必须使用同步复制;如果可以接受几秒/几分钟,则可以考虑异步方案和更低成本的方法。RPO 目标通常决定了其他所有决策。

  • 必须零数据丢失(RPO = 0)
  • 可以接受几秒/几分钟的数据丢失

是否还要求自动、快速的接管(低 RTO)?

你要求零数据丢失;但主库宕机时,必须多快恢复服务?需要在几秒内自动故障转移,还是可以接受短暂的人工干预窗口?这决定了选择普通同步副本还是全自动集群。

  • 需要在几秒内自动故障转移
  • 人工/计划内接管即可;零丢失优先

是否需要不同的区域/地理位置(DR)?

如果可以接受一定的数据丢失,真正的问题是容灾范围:必须防范整个数据中心/区域的丢失,还是只需防范同一区域内单个节点的故障?如果需要地理分布,异步备库成为首选;否则评估成本优先的方案。

  • 是的,必须有独立区域以防范地理性灾难
  • 不,预算和简单性优先

能否接受较长的恢复时间(高 RTO)?

你只使用一个区域,并能容忍一定的数据丢失。你追求最低成本,还是希望有一个在故障时快速接管的备用节点?如果恢复耗时数小时可以接受,仅用备份+PITR 是最经济的方案;否则需要一个温备库(warm standby)。

  • 是的,可以接受数小时的恢复时间(最便宜)
  • 不,需要能在几分钟内接管的温备库

建议:同步副本(零数据丢失)

在至少一个备库确认之前,主库不会完成提交;因此即使主库丢失,也不会丢失任何已确认的事务(RPO=0)。是单区域低延迟网络环境下的理想方案。

建议:异步备库(地理容灾)

备库以流的方式应用变更,不会延迟主库的提交。这是在不影响写入性能的前提下,在另一个区域保留副本的标准方法;代价是接受一个小的数据丢失窗口(等于复制延迟)。

建议:自动故障转移集群

结合健康监控、领导者选举和自动接管的集群方案;同时追求低 RTO(几秒内自动故障转移)和借助同步副本实现的低/零 RPO。运维开销更高,但人工干预降到最低。

建议:备份 + PITR(最经济)

不运行备库,只保留定期备份以及基于 WAL/归档日志的时间点恢复(PITR)。这是成本最低的方案;代价是恢复可能需要数小时(高 RTO)。

在 DBAtlas 中打开 →