Compartir a través de

Azure Cosmos DB for PostgreSQL 中的高可用性

适用对象:PostgreSQL 的 Azure Cosmos DB (由 PostgreSQL 的 Citus 数据库扩展提供支持)

高可用性 (HA) 通过维护群集中每个节点的备用副本,从而最大程度地减少数据库停机时间。 如果某个节点关闭,Azure Cosmos DB for PostgreSQL 会将传入连接从失败的节点切换到其备用节点。 故障转移几分钟即可完成,提升的节点通过 PostgreSQL 同步流式复制,始终可以获取全新数据。

将群集的所有主节点都预配到一个可用性区域中,以便改进节点之间的延迟。 偏好可用性区域允许将所有群集节点放在部署应用程序的同一可用性区域中。 这种邻近性可以通过降低应用到数据库的延迟来进一步提高性能。 备用节点预配到另一个可用性区域。 Azure 门户显示群集中每个主节点的可用性区域。 还可以使用一种编程方法(例如 REST API)检查群集中每个节点的可用性区域。

即使未启用 HA,每个节点也有其自己的本地冗余存储 (LRS),其中 3 个同步副本由 Azure 存储服务维护。 如果发生单个副本故障,Azure 存储服务会检测到该副本,并以透明方式重新创建它。 若要了解 LRS 存储持续性,请查看此页上的指标。

启用 HA 后,Azure Cosmos DB for PostgreSQL 将为群集中的每个主节点运行一个备用节点。 主服务器及其备用服务器使用同步 PostgreSQL 复制。 通过此复制,客户能够在主节点发生故障时预测停机时间。 简单地说,我们的服务会检测主节点上的故障,并且可故障转移到备用节点而无数据丢失。

若要在协调器节点上利用 HA,数据库应用程序需要检测和重试已删除的连接和失败的事务。 可以通过相同的连接字符串来访问新提升的协调器。

高可用性状态

恢复可以分为三个阶段:检测、故障转移和完全恢复。 Azure Cosmos DB for PostgreSQL 会在每个节点上运行定期运行状况检查,并在检查失败四次后确定某个节点已关闭。 然后,Azure Cosmos DB for PostgreSQL 会将一个备用提升到主节点状态(故障转移),并创建新的备用。 流式复制开始,从而使新节点保持最新状态。 所有数据均复制后,节点已实现完全恢复。

Azure Cosmos DB for PostgreSQL 会在 Azure 门户中群集的“概述”页上显示其故障转移进程状态。

  • 正常:启用了 HA 并将节点完全复制到其备用节点。
  • 正在进行故障转移:主节点上检测到故障,并启动了到备用节点的故障转移。 完成到备用节点的故障转移后,此状态会转换为“正在创建备用节点”,并且备用节点将成为新的主节点。
  • 正在创建备用节点:上一备用节点已升级为主节点,并为其创建新的备用节点。 当新的辅助节点准备就绪时,此状态会转换为“正在复制”。
  • 正在进行的复制:已预配新的备用节点并正在进行数据同步。 将所有数据复制到新的备用节点后,会在主节点和备用节点之间启用同步复制,节点的状态会转换回“正常”。
  • 否:此节点上未启用 HA。

后续步骤