在 Azure Database for PostgreSQL 上的灵活服务器中进行资源扩展

Azure Database for PostgreSQL灵活服务器支持垂直和水平缩放选项。

纵向扩展

通过将更多资源添加到Azure Database for PostgreSQL灵活服务器来垂直缩放服务器。 可以增加或减少分配给它的 CPU 数和内存。

服务器的网络吞吐量取决于为 CPU 和内存选择的值。

创建Azure Database for PostgreSQL灵活服务器后,可以独立缩放:

  • 计算层和 SKU。
  • 存储层和大小。
  • 备份保持期。

在可突发、常规用途和内存优化之间纵向扩展或缩减计算层,以适应工作负荷的需求。 在上述每个层中,请从不同代系的预配置硬件中进行选择,这些硬件具有不同数量的 CPU 和已安装的内存量。 选择支持资源要求的选项,同时降低运营成本并根据需要进行调整。

向上或向下调整 vCore 数量和已安装内存。 还可以向上或向下配置存储层,以适应工作负荷所需的吞吐量和 IOPS 要求。 只能增加存储大小。 根据要求,可以在 7 到 35 天内增加或减少备份保留期。

通过多个接口扩展这些资源。 例如,可以使用Azure门户Azure CLI

注释

增加分配给服务器的存储大小后,无法将其缩小到更小的大小。

水平缩放

Azure Database for PostgreSQL弹性群集使你能够水平横向扩展数据库,以支持超出单个数据库服务器功能的数据工作负荷。 弹性群集还可以在群集中的所有节点之间同时执行并行操作,从而显著增加吞吐量并解锁超低延迟。 弹性群集提供两个表分片模型:基于行的分片和基于架构的分片。

弹性群集五节点配置示意图。

只读副本缩放

可以通过创建 只读副本对服务器进行水平扩展。 只读副本使你能够将读取工作负载扩展到单独的 Azure Database for PostgreSQL 灵活服务器上。 它们不会影响主服务器的性能和可用性。

在水平扩展架构中,还可以对主服务器和只读副本进行垂直扩展。

更改 vCore 数或计算层时,服务器将重启,以便分配的新硬件开始运行服务器工作负荷。 在此期间,系统将切换到新的服务器类型。 将无法建立新连接,所有未提交的事务都将被回滚。

重启服务器所需的总时间取决于重启时的故障恢复过程和数据库活动。 重启通常需要一分钟或更短时间,但也可能需要几分钟。 用时取决于启动重启时的事务活动。

如果您的应用程序对在计算扩展中可能发生的飞行中事务丢失比较敏感,请实现事务重试模式

在大多数情况下,缩放存储不需要重启服务器。 有关详细信息,请参阅 Azure Database for PostgreSQL 中的存储选项

备份保持期更改是联机操作。

若要改善重启时间,请在非高峰期执行扩展操作。 此方法可减少重启数据库服务器所需的时间。

近零停机缩放

近零停机时间缩放是一项功能,旨在最大程度地减少修改存储和计算层时的停机时间。 如果修改 vCore 数或更改计算层,服务器将重启以应用新配置。 在此过渡到新服务器期间,无法建立新连接。

通常,此过程需要 2 到 10 分钟的任意时间,并定期缩放。 通过使用接近零的停机时间缩放功能,可将此持续时间缩短到 30 秒以下。 这缩短了缩放资源期间的停机时间,并提高了数据库实例的整体可用性。

工作原理

在缩放方案中更新Azure Database for PostgreSQL灵活服务器时,该服务会使用更新的配置为服务器创建新的虚拟机。 然后,它会先与当前正在运行您的服务器的虚拟机进行同步,然后切换到新的虚拟机,期间只会有短暂中断。 后台进程消除了旧的虚拟机。

此过程可实现无缝更新,停机时间最小,并在更改存储或计算层时自动触发。 无需执行任何作即可使用此功能。 HA 和非 HA Azure Database for PostgreSQL 灵活服务器都支持此功能。

对于水平缩放的配置,由主服务器和一个或多个只读副本组成,缩放操作必须遵循特定的顺序,以确保数据一致性并最大限度地减少停机时间。 有关该序列的详细信息,请参阅使用只读副本缩放

注释

近零停机时间缩放是默认类型的操作。 如果遇到以下限制,系统会切换到常规缩放,与近零停机时间缩放相比,它的停机时间更长。

精确的停机时间预期

  • 停机持续时间:在大多数情况下,停机时间范围为 10 到 30 秒。
  • 其他注意事项:缩放事件后,会有约 30 秒固有的 DNS (TTL) 周期。Time-To-Live 缩放过程不会直接控制此时间段。 它是 DNS 行为的标准部分。 从应用程序的角度来看,缩放期间的总停机时间可能介于 40 到 60 秒 之间。

注意事项和限制

  • 若要使近乎零的停机时间缩放正常工作,请在使用虚拟网络集成网络时,允许委托子网中 IP 地址之间的所有入站和出站连接。 如果不允许这些连接,接近零的停机时间缩放过程不起作用,并且通过标准缩放工作流进行缩放。
  • 如果你的订阅存在区域容量限制或配额限制,则近零停机时间缩放将不起作用。
  • 近零停机时间缩放不适用于副本服务器,因为它仅在主服务器上受支持。 对于副本服务器,缩放操作会自动经历常规过程。
  • 如果虚拟网络注入服务器在委派子网中没有足够的可用 IP 地址,则无法实现近零停机缩放。 如果你有一台独立服务器,则需要一个额外的 IP 地址。 对于启用了高可用性的服务器,需要两个额外的 IP 地址。
  • 在近零停机时间故障转移事件期间,不会保留逻辑复制槽。 若要维护逻辑复制槽并确保缩放操作后的数据一致性,请使用 pg_failover_slot 扩展。 有关详细信息,请参阅在灵活服务器实例中启用 pg_failover_slots 扩展
  • 近零停机缩放不适用于未记录的表。 如果将未记录日志表用于存储任何数据,则在近乎零停机时间的扩展后会丢失这些表中的所有数据。
  • 如果将服务器的计算从或缩放到可突发层的 1 或 2 个 vCore 的计算大小,则接近零不起作用。