如何在 PostgreSQL 中一步步创建复制用户
2026-09-15
2026-09-15
2026-09-15
2026-09-10
AWS RDS 自动故障转移是一项内置的高可用性功能,当你的主数据库实例不可用时便会启动。Amazon RDS 会自动提升位于不同可用区(AZ)的备用副本——无需人工干预。

自动故障转移与 Multi-AZ:有什么联系?
自动故障转移仅在启用 Multi-AZ 时才能工作。启用 Multi-AZ 后,AWS 会在独立的可用区中配置一个同步备用副本,并使其始终与主实例保持同步。
什么会触发 AWS RDS 自动故障转移?
RDS 不会因为轻微中断就切换。只有当 AWS 检测到主实例出现严重问题时,才会启动故障转移:
RDS 故障转移不是简单的备份还原。它是在两个独立基础设施环境之间进行的协调切换——旨在快速完成并对你的应用程序透明。
启用 Multi-AZ 后,AWS 会在两个独立的可用区中运行一个主数据库实例和一个备用实例。实现零数据丢失的关键是同步复制。
对主实例的每次写入都会同时写入备用实例。只有当两个实例都记录该事务后,事务才会被确认——这使得备用实例在任何时候都是主实例的精确、最新镜像。
整个切换通常会在 60 到 120 秒内完成。以下是具体过程:
Multi-AZ 备用实例和只读副本都涉及数据复制——但它们解决的问题不同。混淆两者是一个常见且代价高昂的错误。
在深入细节之前,先看一个快速对比:
| 特性 | Multi-AZ 备用实例 | 只读副本 |
|---|---|---|
| 主要用途 | 高可用性与故障转移 | 读取扩展与性能 |
| 复制类型 | 同步(零数据丢失) | 异步(可能存在延迟) |
| 是否可查询 | 否 | 是(只读) |
| 故障转移 | 通过 DNS 更新自动完成 | 手动提升(标准 RDS) |
| 可用区 | 始终位于不同可用区 | 同一可用区、不同可用区或不同区域 |
备用实例是一个被动节点——你无法查询它或直接连接它。它唯一的职责就是与主实例保持同步,并在出现问题时自动接管。这使得 Multi-AZ 成为以可用性为优先时的正确选择。
只读副本是活动节点,负责处理只读流量,从而减轻主实例的负载。它们对扩展很有用,但使用的是异步复制——这意味着发生故障时,最新事务存在尚未到达副本的小风险。
对于标准 RDS 引擎(MySQL、PostgreSQL、Oracle),不存在只读副本的自动提升。如果主实例发生故障,你需要手动处理提升和 DNS 变更——这意味着相比 Multi-AZ,停机时间更长。
AWS RDS 自动故障转移在 AWS 内部运行良好。但许多企业环境并非纯云端。如果你的基础设施横跨本地服务器、VMware 平台和公有云,单一云的故障转移方案会在保护上留下缺口。
这正是 i2Availability 的用武之地。它是一款面向复杂异构环境的应用程序级高可用解决方案——将灾难恢复扩展到原生云工具覆盖范围之外。
AWS RDS 在其自身生态系统内高效处理故障转移。但对于跨混合环境运行数据库——或有更严格合规与恢复要求——的组织而言,i2Availability 提供了云原生工具单独无法提供的额外控制层和灵活性。
启用 Multi-AZ 只是第一步。如果没有正确的应用程序和基础设施设置,即使数据库恢复了,你的应用也可能仍然处于宕机状态。
在 RDS 故障转移期间,所有到主实例的现有连接都会被断开。你的应用程序很可能会抛出“Connection reset by peer”或“Communications link failure”之类的错误。
需要实现两件事:
像 PgBouncer 或 HikariCP 这样的连接池工具可以提高性能,但如果配置不当,它们可能会在故障转移期间起反作用。
不要等到用户投诉才发现发生了故障转移。设置主动告警:
真正的故障发生时,不是发现配置缺口的好时机。定期进行故障转移演练:
Q1:RDS 有自动故障转移吗?
有,但仅在启用 Multi-AZ 时才有。AWS 会监控你的主实例,并在检测到故障时自动切换到不同可用区中的备用副本。
Q2:手动故障转移和自动故障转移有什么区别?
自动故障转移由 AWS 在检测到硬件或网络故障时触发——无需人工操作。手动故障转移由用户发起,通常通过 AWS 控制台中的“带故障转移的重启”选项,一般用于测试或计划内维护。
Q3:什么会导致 RDS 故障转移?
常见触发因素包括可用区中断、网络连接丢失或主机硬件故障。在某些情况下,AWS 也可能在维护窗口期间执行计划内切换——例如操作系统补丁或实例扩缩容——其行为类似,但并非由故障引起。
Q4:RDS 有自动备份吗?
有。Amazon RDS 会自动创建每日快照并捕获事务日志。这些功能支持时间点恢复(PITR),让你可以将数据库恢复到配置的保留期内的任意特定秒。
Q5:启用 Multi-AZ 的 Amazon RDS 具备自动故障转移能力吗?
具备。启用 Multi-AZ 后,RDS 会自动提升备用实例并更新 DNS 端点——通常在 60 到 120 秒内完成——无需任何人工干预。
理解 AWS RDS 自动故障转移,是区分小故障和重大宕机的关键。Multi-AZ 为你提供同步复制和自动 DNS 切换——但这只是等式的一半。
要构建真正具有韧性的系统,你的应用程序还需要重试逻辑、较低的 DNS TTL 设置以及定期的故障转移演练。AWS 负责基础设施切换;你的架构决定用户多快能重新上线。
对于跨混合或多平台环境运行数据库的组织而言,原生 AWS 故障转移可能不够。像 i2Availability 这样的工具可以将保护扩展到云端之外——覆盖本地服务器、虚拟化平台和跨数据中心场景,而这些是 RDS 单独无法触及的。
公告
邮件
销售