你当前正在访问 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 月,Microsoft使用已启用 HA 的服务器更新 v5 计算层的计费模型。 此更改通过考虑主服务器和备用服务器来正确反映费用。 在进行此更改之前,系统仅是错误地向你收取了主服务器的费用。 如果你使用启用了 HA 的服务器的 v5 层,现在会看到计费数量乘以 2。 此更新不会影响 v4 和 v3 层。

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

可以随时在现有 Azure Database for PostgreSQL 灵活服务器实例上启用高可用性。 启用高可用性时,该服务将创建一个镜像主服务器的备用副本。 根据区域容量和配置选项,备用服务器可以部署在不同的可用性区域中,以实现最大保护或与主要区域相同的区域。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

禁用高可用性

不再需要保护备用副本时,可以在 Azure Database for PostgreSQL 灵活服务器实例上禁用高可用性。 禁用高可用性会删除备用服务器并降低成本,但服务器不再受到区域或服务器故障的保护。

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

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

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

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

  4. 选择 “已禁用 ”单选按钮以禁用高可用性。

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

  5. 选择保存以应用更改。

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

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

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

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

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

首次创建 Azure Database for PostgreSQL 灵活服务器实例时,可以配置高可用性。 通过在预配期间启用高可用性,可将备用副本与主服务器一起部署,以便立即保护区域或服务器故障。

  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 选项设置高可用性。