AlloyDB 高可用性概览

本文档简要介绍了 AlloyDB for PostgreSQL 实例的高可用性 (HA) 配置。如需配置新的高可用性实例或为现有实例启用高可用性,请参阅查看集群和实例设置

高可用性配置可确保即使在发生故障事件后,也能继续运行。 虽然可用区实例在发生故障事件时可能会经历长时间的停机,但借助 HA,您的数据仍可供客户端应用使用。

主实例和次要实例

配置为高可用性的 AlloyDB 主实例包含一个活跃节点和一个备用节点,这两个节点位于不同的可用区中。在存储方面,AlloyDB 使用区域日志持久化程序来存储数据库预写式日志 (WAL),并使用 AlloyDB 的区域存储服务来存储数据块。实例的 IP 地址使用负载均衡器将流量路由到活跃节点。

在处理写入操作时,AlloyDB 数据库会先将 WAL 写入活跃节点上的区域级日志持久化程序,然后异步将日志传输到 AlloyDB 的区域级日志处理服务器,这些服务器会将日志具体化为数据块以进行长期存储。然后,AlloyDB 会清理已成功处理的日志。

下图展示了高可用性架构。

高可用性架构

图 1. 高可用性架构。

故障切换

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

下图显示了故障切换后的流量。

故障切换后的流量

图 2.故障切换后的流量流。

故障切换按以下事件顺序进行:

  1. 活动节点或可用区发生故障。AlloyDB 健康状况监控系统会定期检查活跃节点的健康状况。如果健康监控系统多次检查失败,则会启动故障切换。此检测过程最多可能需要 30 秒。
  2. 数据库在备用节点上启动,并开始接受连接。 此过程通常可在 30 秒内完成。
  3. 备用节点升级为主节点。新主节点使用实例的静态 IP 地址开始提供数据,并且客户端在重新连接后成功执行查询。
  4. AlloyDB 会在之前的活跃可用区中重新创建备用节点。然后,此备用节点即可用于未来的故障转移。

要求

要使 AlloyDB 允许故障切换,配置必须满足以下要求:

  • 主实例必须处于正常运行状态(未停止或未在进行维护)。
  • 备用可用区和备用节点都必须处于良好运行状态。

新架构

新创建的 AlloyDB 实例(搭载 PostgreSQL 18)通过热备用功能提供更出色的故障切换。

借助热备用功能,AlloyDB 可将备用节点作为副本运行。在故障切换期间,此副本可以更快地转换为读写模式,从而缩短停机时间。此外,复制功能还支持暖缓存,有助于确保在故障切换后获得一致的查询性能。

下图展示了包含热备的高可用性架构。 热备用

图 3.热备用。

读取池

具有两个或更多节点的读取池实例具有高可用性。节点均匀分布在各个可用区中,可应对故障事件。如果发生节点或可用区故障等故障事件,区域级负载均衡器会将流量路由到剩余的健康节点,确保客户端不会停机。

在主实例故障切换期间,读取池会保持在线状态。在故障切换期间,从主实例进行的 WAL 复制会暂时暂停,并在主实例恢复后自动恢复。

后续步骤