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 复制会暂时暂停,并在主实例恢复后自动恢复。

后续步骤