你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure Database for PostgreSQL 配置高可用性

本文介绍如何使用 Azure 门户或 Azure CLI 在 Azure Database for PostgreSQL 灵活服务器实例上启用或禁用高可用性(HA)。 此信息适用于您是在同一区域中使用实例还是使用区域冗余的部署模型。

高可用性功能部署物理上独立的主副本和备用副本。 可以根据所选部署模型,在同一可用性区域中或不同区域中预配副本。 有关详细信息,请参阅有关高可用性概念的文章。 可以在创建 Azure Database for PostgreSQL 灵活服务器实例期间或之后启用高可用性。

重要说明

2024 年 4 月,我们更新了启用了 HA 的服务器的 v5 计算层的计费模型。 此更改通过考虑主服务器和备用服务器来正确反映费用。 在进行此更改之前,系统仅是错误地向你收取了主服务器的费用。 如果你使用启用了 HA 的服务器的 v5 层,现在会看到计费数量乘以 2。 此更新不会影响 v4 和 v3 层。

为现有服务器启用高可用性

  1. Azure 门户中,选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在左侧菜单中的“设置”部分,选择“高可用性”。

区域复原选项控制服务器是否在可用性区域中受到保护。 有两种选择:

  • 已启用 – 选择此选项时,Azure 会尝试在与主服务器不同的可用性区域中创建备用服务器。 此选项提供针对区域级别故障的最佳保护。
  • 已禁用 – 未配置高可用性。

如果启用了区域复原,但区域缺少区域冗余设置的容量,则会在“已启用”选项下显示一个附加复选框。 选择此选项可在与主服务器相同的区域中创建备用服务器。 当区域容量可用时,Azure 会通知你。 此时,你可以使用 PITR 或只读副本将工作负载迁移到区域冗余的 HA 配置,以实现最大程度的复原能力。 转到 “限制和注意事项 ”部分了解详细信息。

  1. 如果未启用区域复原,请选择 “已启用 ”选项。

    屏幕截图显示用于配置高可用性的窗格。

  2. 选择“启用”选项时,默认为支持可用性区域的区域应用区域冗余选项。 此配置可防止区域性故障。

    屏幕截图显示选中的用于启用高可用性的复选框。

  3. 如果区域没有分区容量,若要确保在首选区域中启用高可用性 (HA),请在启用选项下勾选复选框,以便在同一分区模式下创建 HA。 当区域容量可用后,它会自动将工作负荷迁移到 Zone-Redundant HA:

    屏幕截图显示选择“同一区域”选项来实现高可用性。

  4. 完成设置配置后,选择“ 保存 ”以应用更改。

  5. 对话框显示与部署备用服务器关联的成本增加。 如果决定继续,请选择“启用高可用性”

    屏幕截图显示用于确认启用高可用性的对话框。

  6. 部署开始。 完成后,会出现一条通知,表明你已成功启用高可用性。

    屏幕截图显示一条通知,表明已部署完高可用性配置。

禁用高可用性

  1. Azure 门户中,选择 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在左侧菜单中的“设置”部分,选择“高可用性”。

  3. 如果启用了高可用性,那么“区域复原能力”的“已启用”单选按钮为已选中状态。 此外,“高可用性模式”设置为已配置的模式,“高可用性状态”值通常为“正常”。

    屏幕截图显示用于配置高可用性的窗格,其中已选择高可用性选项,状态为“正常”。

  4. 选择 “已禁用 ”单选按钮以禁用 HA。

    屏幕截图显示用于启用高可用性的复选框处于清空状态。

  5. 选择“保存”应用所做的更改。

  6. 对话框显示与移除备用服务器关联的成本降低。 如果决定继续,请选择“禁用高可用性”

    屏幕截图显示用于确认禁用高可用性的对话框。

  7. 部署开始。 完成后,会出现一条通知,表明你已成功禁用高可用性。

    屏幕截图显示一条通知,表明已成功禁用高可用性。

在服务器预配期间启用高可用性

  1. Azure 门户中,在预配新的 Azure Database for PostgreSQL 灵活服务器实例期间,转到 “业务关键”(高可用性) 部分。 在“区域冗余”部分选择“已启用”单选按钮。

    • 默认情况下,服务器尝试在不同的可用性区域中创建备用服务器,并采用 区域冗余 HA 模式,以实现最大区域复原能力。

    显示使用区域冗余选项启用 HA 的屏幕截图。

    • 如果区域容量不可用,则可以选中“当区域复原能力失败时允许备用位于同一区域”复选框作为回退选项。 如果不选择此选项,则无法继续执行创建工作流中的下一步。 这可确保高可用性始终处于启用状态。 当区域容量可用时,Azure 会通知你,然后可以使用 PITR 或只读副本将工作负荷迁移到区域冗余 HA 配置,以实现最大复原能力。

      显示同区域 HA 选项的验证错误消息的屏幕截图。

    • 选中该复选框后,可以继续转到创建工作流上的“身份验证”部分。

      显示启用同区域 HA 选项的高可用性截图。

  2. 通过将“可用性区域”设置为除“无首选项”以外的任何值,为主服务器选择具体区域。

    显示主服务器的特定可用性区域的选择的屏幕截图。

启动强制故障转移

按照以下步骤操作,在 Azure Database for PostgreSQL 中强制将主服务器故障转移到备用服务器。

启动强制故障转移时,主服务器会立即关闭并触发到备用服务器的故障转移。 要测试因计划外中断而导致的故障转移如何影响工作负荷时,可启动强制故障转移。

重要说明

  • 请勿持续执行即时故障转移。 在执行下一次故障转移前至少等待 15 到 20 分钟的时间。 此等待时间有助于完全建立新的备用服务器。

  • 门户上报告的整个端到端操作时间可能比应用程序遇到的实际故障时间长。 应从应用程序的角度衡量故障时间。

  1. Azure 门户中,选择已启用高可用性的 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在左侧菜单中的“设置”部分,选择“高可用性”。

  3. 如果高可用性模式设置为“区域冗余”,请注意分配给“主要可用性区域”和“备用可用性区域”的值。 故障转移操作完成后,应将其互换。

  4. 选择 强制故障转移 以启动手动故障转移过程。 对话框会通知你故障转移完成之前的预期故障时间。 如果决定继续,请选择“启动强制故障转移”。

    屏幕截图显示启动强制故障转移前显示的对话框。

  5. 此时会显示一条通知,提到正在进行故障转移。

    屏幕截图显示一条通知,指出强制故障转移启动后正在进行故障转移。

  6. 故障转移到备用服务器的操作完成后,会出现一条通知,告知你操作已完成。

    屏幕截图显示强制故障转移完成后显示的通知。

  7. 如果高可用性模式配置为“区域冗余”,请确认“主要可用性区域”和“备用可用性区域”的值现已互换。

启动计划的故障转移

按照以下步骤,在 Azure Database for PostgreSQL 中执行从主服务器到备用服务器的计划的故障转移。 启动此操作会准备备用服务器,然后执行故障转移。

此故障转移操作可最大程度地减少故障时间,因为它执行向备用服务器的正常故障转移。 这对于在意外故障转移后将主服务器恢复到首选可用性区域之类的情况非常有用。

重要说明

  • 请勿持续执行即时故障转移。 在执行下一次故障转移前至少等待 15 到 20 分钟的时间。 此等待时间有助于完全建立新的备用服务器。

  • 在低负载期间执行计划内的故障转移。

  • 门户上报告的整个端到端操作时间可能比应用程序遇到的实际故障时间长。 应从应用程序的角度衡量故障时间。

  1. Azure 门户中,选择已启用高可用性的 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在左侧菜单中的“设置”部分,选择“高可用性”。

  3. 如果高可用性模式设置为“区域冗余”,请注意分配给“主要可用性区域”和“备用可用性区域”的值。 故障转移操作完成后,应将其互换。

  4. 选择 “计划内故障转移 ”以启动手动故障转移过程。 对话框会通知你故障转移完成之前的预期故障时间。 如果决定继续,请选择“启动计划内故障转移”。

    屏幕截图显示启动计划的故障转移前显示的对话框。

  5. 此时会显示一条通知,提到正在进行故障转移。

    屏幕截图显示一条通知,指出计划的故障转移启动后正在进行故障转移。

  6. 故障转移到备用服务器的操作完成后,会出现一条通知,告知你操作已完成。

    屏幕截图显示计划的故障转移完成后显示的通知。

  7. 如果高可用性模式配置为“区域冗余”,请确认“主要可用性区域”和“备用可用性区域”的值现已互换。

限制和注意事项

  • 在 Azure Database for PostgreSQL 灵活服务器实例上启用或禁用高可用性不会更改其他设置,包括网络配置、防火墙设置、服务器参数或备份保留。 启用或禁用高可用性是联机操作。 它不会影响应用程序连接性和操作。

  • Azure Database for PostgreSQL 支持在同一区域中部署的两个副本的高可用性。 此配置在所有受支持的区域中都可用。 但是,通过区域冗余实现高可用性仅在特定地区可用

  • 突发型层不支持高可用性。 只有 常规用途内存优化 层支持高可用性。

  • 如果你在包含单个可用性区域的地区中部署服务器,则只能在“同一区域”模式下启用高可用性。 如果将来通过多个可用性区域增强了该地区,则可以部署高可用性配置为“同一区域”或“区域冗余”的新 Azure Database for PostgreSQL 灵活服务器实例。

    但是,对于在区域只有一个可用区时部署的任何实例,您不能直接启用区域冗余模式下的高可用性。 可以通过使用还原选项或读副本选项来解决问题。

还原选项

  1. 使用最新还原点在新服务器上还原现有实例
  2. 创建新服务器后,在“区域冗余”模式下启用高可用性
  3. 验证数据后,可以选择删除旧服务器。
  4. 确保修改客户端的连接字符串以指向新还原的服务器。

只读副本选项

  1. 在主服务器所在的同一区域中创建只读副本
  2. 将只读副本提升为新的主服务器。
  3. 若要保留原始名称,请使用虚拟终结点或删除旧主数据库,然后创建并提升新的只读副本。
  4. 对于门户用户,启用区域弹性。 对于开发人员工具,请使用 Zone-Redundant 选项设置高可用性。