本文档简要介绍了 AlloyDB for PostgreSQL 实例的高可用性 (HA) 配置。如需配置新的高可用性实例或为现有实例启用高可用性,请参阅查看集群和实例设置。
高可用性配置可确保即使在发生故障事件后,运营也能继续进行。虽然可用区实例在发生故障事件时可能会经历长时间的停机,但借助 HA,您的数据仍可供客户端应用使用。
主实例和次要实例
配置为高可用性的 AlloyDB 主实例包含一个活跃节点和一个备用节点,这两个节点位于不同的可用区中。在存储方面,AlloyDB 使用区域日志持久化程序来存储数据库预写式日志 (WAL),并使用 AlloyDB 的区域存储服务来存储数据块。实例的 IP 地址使用负载均衡器将流量路由到活跃节点。
在处理写入操作时,AlloyDB 数据库会先将 WAL 写入活跃节点上的区域级日志持久化程序,然后异步将日志传输到 AlloyDB 的区域级日志处理服务器,这些服务器会将日志具体化为数据块以进行长期存储。然后,AlloyDB 会清理已成功处理的日志。
下图展示了高可用性架构。

图 1. 高可用性架构。
故障切换
如果活跃节点变得不可用,AlloyDB 会自动将主实例故障切换到备用节点,使其成为新的活跃节点。负载均衡器识别出新的活跃节点,并开始将流量路由到该节点。执行故障切换后,即使原始节点恢复在线状态,新的活跃节点仍会保持活跃状态。由于向区域日志持久器同步写入 WAL,因此在故障切换期间不会发生数据丢失。
下图显示了故障切换后的流量。

图 2.故障切换后的流量流。
故障切换按以下事件顺序进行:
- 活动节点或可用区发生故障。AlloyDB 健康状况监控系统会定期检查活跃节点的健康状况。如果健康监控系统多次检查失败,则会启动故障切换。此检测过程最多可能需要 30 秒。
- 数据库在备用节点上启动,并开始接受连接。 此过程通常可在 30 秒内完成。
- 备用节点升级为主节点。新主节点使用实例的静态 IP 地址开始提供数据,并且客户端在重新连接后成功执行查询。
- AlloyDB 会在之前的活跃可用区中重新创建备用节点。然后,此备用节点即可用于未来的故障转移。
要求
要使 AlloyDB 允许故障切换,配置必须满足以下要求:
- 主实例必须处于正常运行状态(未停止或未在进行维护)。
- 备用可用区和备用节点都必须处于良好运行状态。
新架构
新创建的 AlloyDB 实例(使用 PostgreSQL 18)通过备用节点(热备用节点)上的只读副本提供改进的故障切换。
AlloyDB 在热备用节点上包含一个只读副本。在故障切换期间,此只读副本可以更快地转换为读写模式,从而缩短停机时间。此外,读取副本支持暖缓存,有助于确保故障切换后查询性能保持一致。
下图展示了包含热备的高可用性架构。

图 3.热备用。
读取池
具有两个或更多节点的读取池实例具有高可用性。节点均匀分布在各个可用区中,可应对故障事件。如果发生节点或可用区故障等故障事件,区域级负载均衡器会将流量路由到剩余的健康节点,确保客户端不会停机。
在主实例故障切换期间,读取池会保持在线状态。在故障切换期间,从主实例进行的 WAL 复制会暂时暂停,并在主实例恢复后自动恢复。