Azure Database for PostgreSQL 灵活服务器可满足若干基本要求,包括适用于运行关键任务工作负载的安全性、可用性、可靠性、可伸缩性、性能、业务连续性和灾难恢复。
本博客重点介绍灵活服务器 PostgreSQL 的高可用性 (HA) 方面,包括高可用性特性的两项新功能。
- 能够在同一区域中部署备用数据库作为同一区域 HA 的主数据库。
- 能够为您的区域冗余 HA 选择备用可用区。

什么是灵活服务器 PostgreSQL 高可用性架构?
灵活服务器 PostgreSQL 在一个区域内的另一个物理节点中部署一个具有相同计算和存储的备用服务器作为主服务器。备用服务器部署在相同的可用区 (AZ) 或不同的可用区,具体取决于您的 HA 部署选择。使用健康监控和自动故障转移,灵活的服务器 HA 配置有助于在计划内和计划外停机期间延长正常运行时间。
灵活服务器 HA 架构使用 PostgreSQL 流式复制技术,以同步模式将日志流式传输到备用服务器。应用程序的写入和提交首先写入到主服务器的预写日志 (WAL),然后流式传输到备用服务器。一旦 WAL 数据被持久化在备用站点上,应用程序写入就会被确认。这在发生故障转移时提供了零数据丢失能力。有关更多详细信息,请参阅此文档。目前,不支持备用服务器运行您的读取工作负载。
灵活的服务器 PostgreSQL 使用高级托管磁盘(AZ 内具有 3 个数据副本的本地冗余存储)来存储每个服务器的数据和日志。使用 HA 配置,您现在在主服务器和备用服务器之间拥有六个数据副本。这有助于提供高数据弹性和隔离。从主服务器执行定期数据备份(快照)。 WAL 文件不断地归档到备份存储中。快照数据和 WAL 文件备份都存储在支持 AZ 的区域中的区域冗余存储 (ZRS) 上。否则,它们将使用本地冗余存储 (LRS) 进行存储。
有关详细的架构、稳态操作、计划内和计划外停机体验以及 HA 工作流机制,请参阅 HA 文档。
灵活服务器 PostgreSQL 有哪些 HA 部署模型?
灵活的服务器 PostgreSQL 支持两种 HA 部署模型。
- 区域冗余 HA
- 同区高可用
1.Zone-redundant HA
您可以将服务器配置为区域冗余 HA 模式,在该模式下,您的主服务器和备用服务器跨区域内的 AZ 部署。您现在可以为备用服务器选择可用区。这为您提供了更多控制权,可以将您的客户端和应用程序与数据库一起放置在主 AZ 和备用 AZ 中。区域冗余 HA 提供 99.99% 的正常运行时间 SLA。有关详细信息,请参见此处。

图 1:区域冗余 HA 架构图
2. 同区HA
我们最近介绍的另一种 HA 部署模型是同区 HA。 通过选择此选项,您的备用服务器将自动配置在与主服务器相同的 AZ 中。 此部署模型有助于减少写入/提交日志往返延迟 - 因为流量在 AZ 内而不是跨 AZ(可能长达 2 毫秒),同时仍提供计算和存储隔离。 此部署模型还可用于在尚不支持 AZ 的区域或对部署区域冗余 HA 有限制的区域中提供冗余。 同区 HA 部署提供 99.95% 的正常运行时间 SLA。 有关详细信息,请参见此处。

图2:同区HA架构示意图
如何部署、管理和测试 HA?
部署高可用性
灵活的服务器 Postgres 提供单击按钮体验来部署 HA 配置。 您还可以选择 Azure CLI 或 ARM/SDK/Terraform 来部署服务器。 默认情况下,为内存优化 SKU(大型生产工作负载)启用 HA。 选中 HA 框并选择部署模型后,该服务会负责根据您的选择在同一 AZ 内或跨 AZ 部署备用服务器。

图 3:HA 启用和部署模型的屏幕截图
图 3:创建屏幕体验选择 HA 部署
在不支持 AZ 的区域,唯一可用的 HA 部署模型将是同区 HA。 您将无法选择这些区域中的可用区。

图 4:同区选择截图
管理高可用性
您还可以执行以下您可能已启用或未启用 HA 的后期服务器创建:
- 启用高可用性
- 禁用高可用性
- 更改 HA 部署模型(要求您先禁用 HA,然后选择不同的模型)
请参阅管理 HA 服务器的操作指南。

图 5:禁用 HA 的 HA 刀片的屏幕截图
测试高可用性
您还可以测试应用程序与数据库服务器的连接,观察故障转移期间的应用程序停机时间,并使用按需强制故障转移选项改进重试机制。 这将在您的主服务器中触发故障并启动故障转移工作流程。 您还可以使用计划的故障转移选项将主服务器带回首选 AZ。

图 6:执行按需强制故障转移的屏幕截图
比较区域冗余 HA 与同区域 HA

*使用区域冗余备份(如果在该区域可用),您可以将时间点还原到该区域内的不同 AZ。
什么是 HA 限制?
有关使用灵活服务器部署 HA 时的限制列表,请参阅文档。
非 HA 服务器的可用性如何?
即使不配置 HA,灵活的服务器也可以为您的数据库提供强大的弹性和可用性功能。您仍将获得以下好处,而不会产生 2 倍的成本。
- 具有自动修复功能的高级托管磁盘上的 3 份数据副本。
- 在区域冗余 Azure BLOB 存储上备份数据。这提供了区域级别的弹性,您可以在服务器的可用区出现故障时将数据恢复到另一个可用区。
- 如果由于任何原因关闭,数据库服务器会自动重新启动。
- 由于节点崩溃等问题,计算 VM 在 AZ 内自动重定位。
- 为非 HA 部署提供 99.9% 的正常运行时间 SLA!有关详细信息,请参见此处。
但是,您可能已经注意到,根据中断,您可能会遇到一些停机时间(更长的 RTO)。例如,在节点崩溃的情况下,在配置新 VM 之前,您的应用程序将经历停机时间。对于您的测试/开发环境,这种停机时间可能是可以接受的。但是对于在计划内和计划外中断期间需要较长正常运行时间的关键任务工作负载,强烈建议使用 HA 配置进行部署。
跨区域的HA怎么样?
你们中的许多人询问是否提供跨区域的 HA 功能。如果发生区域性故障,我们将其称为灾难恢复 (DR) 场景。我们目前在预览版中拥有异地冗余备份功能,并且还计划在未来使用异步复制来解决异地灾难恢复问题。
你的下一步是什么?
- 了解灵活服务器
- 选择灵活服务器的 10 大理由
- 灵活服务器有什么令人兴奋的
- 使用灵活服务器使您的应用程序现代化
- 您可以探索灵活的服务器文档——它提供了一个卷起袖子的好地方。另请访问我们的网站,详细了解我们的 Azure Database for PostgreSQL 托管服务。
- 如果您想了解有关业务连续性方面的更多信息,可以查看此处列出的选项。
对于您的所有反馈、问题和功能请求,您可以随时通过 Ask Azure DB for PostgreSQL 的电子邮件与我们联系。
原文标题:Achieve high uptime with Flexible Server PostgreSQL HA!
原文作者:Sridhar Ranganathan
原文地址:https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/achieve-high-uptime-with-flexible-server-postgresql-ha/ba-p/3530443




