从 Azure Database for Postgresql 单一服务器自动迁移到灵活服务器

适用于: Azure Database for PostgreSQL - 单一服务器

从 Azure Database for Postgresql 单一服务器到灵活服务器的自动迁移是在计划内停机时段进行的由服务发起的迁移,适用于运行 PostgreSQL 11 的单一服务器以及具有基本、常规用途或内存优化 SKU、所用数据存储 <= 10 GiB未启用复杂功能(CMK、Microsoft Entra ID、只读副本或专用链接)的数据库工作负荷。 服务会识别符合条件的服务器,并提前向其发送通知以详细说明查看迁移细节并在必要时进行修改的步骤。

自动迁移在计划内迁移时段内提供高度可复原和自我修复的脱机迁移体验,并且停机时间最多为 20 分钟。 迁移服务是一种托管解决方案,它使用 pgcopydb 二进制文件,提供一种快速高效地将数据库从源 PostgreSQL 实例复制到目标的方法。 此迁移避免了手动迁移服务器的开销。 在迁移之后,你可以利用灵活服务器的优势,包括更好的性价比、对数据库配置的精细控制以及自定义维护时段。 下面介绍了迁移的关键阶段:

  • 部署目标灵活服务器,在性能和成本方面与你的单一服务器 SKU 相匹配,并继承源单一服务器的所有防火墙规则。

  • 在由服务选择的或由你选择的迁移时段内迁移数据。 如果该时段由服务选择,则它通常处于服务器所在特定区域的营业时间之外。 源单一服务器被设置为只读的,并且数据和架构从源单一服务器迁移到目标灵活服务器。 所有数据库对象的用户角色、特权和所有权也迁移到灵活服务器。

  • 在计划内迁移时段内执行 DNS 交换和切换,停机时间最短,从而允许在迁移后使用相同的连接字符串。 客户端应用程序无缝连接到目标灵活服务器,无需任何用户驱动的手动更新或更改。 迁移后的灵活服务器不仅支持两种连接字符串格式(单一服务器和灵活服务器),还支持两种用户名格式:username@server_name 和 username。

  • 迁移的灵活服务器联机,现在可以通过 Azure 门户/CLI 进行管理。

  • 如果你已在 Azure 门户上启用服务运行状况通知,连接到旧的单一服务器的更新的连接字符串会通过电子邮件与你共享。 或者,可以在“设置”->“连接字符串”下的“单一服务器门户”页中找到连接字符串。 如果要将任何设置复制到新的灵活服务器,可以使用连接字符串登录到单一服务器。

  • 在迁移七天后,删除旧的单一服务器。

注意

自动迁移服务根据以下条件选择要迁移的单一服务器:

  • 服务器运行 PostgreSQL 版本 11
  • 没有复杂功能的服务器,例如 CMK、Microsoft Entra ID、只读副本和专用终结点
  • 数据大小 < = 10 GB
  • 已启用公共访问

上述筛选器用于选择要自动迁移的服务器。 服务器还可以由用户提名进行自动迁移。 提名过程更加灵活,并非所有筛选器都适用。

提名单一服务器进行自动迁移

提名过程适用于想要自愿快速跟踪其迁移到灵活服务器的用户。 如果拥有单一服务器工作负载,现在可以自行提名(如果尚未由服务计划)进行自动迁移。 通过此表单提交服务器详细信息。

配置迁移警报并查看迁移计划

服务会向符合自动迁移条件的服务器发送预先的 Azure 运行状况通知。 运行状况通知在迁移日期前的30 天、14 天和 7 天发送。 当迁移正在进行、已完成时以及迁移后 6 天旧的单一服务器删除之前,也会发送通知。 可以检查和配置 Azure 门户,以通过电子邮件或短信接收自动迁移通知。

下面介绍了检查和配置自动迁移通知的方法:

  • 计划自动迁移的单一服务器的订阅所有者会收到电子邮件通知。
  • 配置服务运行状况警报,以便按照此处的步骤通过电子邮件/短信接收自动迁移计划和进度通知。
  • 按照此处的步骤,在 Azure 门户上检查自动迁移通知。

下面介绍了在收到自动迁移通知后查看迁移计划的方法:

注意

迁移计划将在计划的迁移时段前 7 天锁定,在迁移时段内无法再重新安排。

  • 实例的单一服务器概述页面将显示门户横幅,其中包含有关迁移计划的信息。
  • 对于已计划自动迁移的单一服务器,“概述”页会更新相关信息。 可以通过导航到单一服务器实例的“概述”页来查看迁移计划。
  • 如果你希望推迟迁移,可以在 Azure 门户上一次推迟一个月。 你可以在一个月内选择另一个迁移时段来重新安排迁移。

注意

通常,入围自动迁移的候选服务器不使用跨区域或异地冗余备份。 这些功能只能在创建 postgresql 灵活服务器时启用。 如果你计划使用这些功能中的任何一项,建议你选择退出自动迁移计划并手动迁移服务器。

自动迁移的先决条件检查

请检查以下先决条件,以确保自动迁移成功:

  • 单一服务器实例在计划内迁移时段内应处于就绪状态,以便进行自动迁移。
  • 对于启用了 SSL 的单一服务器实例,请确保所有证书都位于受信任的根存储中。 此外,如果证书已固定到连接字符串,请在计划自动迁移之前创建包含所有证书的组合 CA 证书,以确保迁移后的业务连续性。
  • 如果源 Azure Database for postgresql 单一服务器具有超过 80 个字符的防火墙规则名称,请重命名它们以确保名称长度少于 80 个字符。 (灵活服务器上支持的防火墙规则名称长度为 80 个字符,而单一服务器上允许的长度为 128 个字符。)

目标 postgresql 灵活服务器是如何预配的?

目标灵活服务器的计算层和 SKU 是根据源单一服务器的定价层和 VCore 数预配的,如下所示。

单一服务器定价层 单一服务器 VCore 数 灵活服务器层级 灵活服务器 SKU 名称
基本 1 可突发 B1ms
基本 2 可突发 B2s
常规用途 2 常规用途 Standard_D2s_v3
常规用途 4 常规用途 Standard_D4s_v3
常规用途 8 常规用途 Standard_D8s_v3
常规用途 16 常规用途 Standard_D16s_v3
常规用途 32 常规用途 Standard_D32s_v3
常规用途 64 常规用途 Standard_D64s_v3
内存优化 2 内存优化 Standard_E2s_v3
内存优化 4 内存优化 Standard_E4s_v3
内存优化 8 内存优化 Standard_E8s_v3
内存优化 16 内存优化 Standard_E16s_v3
内存优化 32 内存优化 Standard_E32s_v3
  • 目标灵活服务器的 postgresql 版本、区域、连接字符串、订阅和资源组将与源单一服务器相同。
  • 对于存储小于 20 GiB 的单一服务器,请将存储大小设置为 32 GiB,因为这是 Azure Database for postgresql 灵活服务器的最低存储限制。
  • 对于存储要求更高的单一服务器,分配的存储量相当于单一服务器中使用的存储量的 1.25 倍或比其高出 25%。 在对数据进行初始基本复制期间,会在目标服务器上执行多个插入语句,进而生成 WAL(提前写入日志)。 在这些 WAL 存档之前,日志会消耗目标位置的存储空间,从而消耗安全裕度。
  • 迁移后的灵活服务器支持两种用户名格式:username@server_name(单一服务器)和 username(灵活服务器)。
  • 迁移后的灵活服务器支持两种连接字符串格式:单一服务器和灵活服务器。

迁移后的步骤

下面是在自动迁移后需要了解的信息:

  • 灵活服务器中的服务器参数已根据社区标准进行了调整。 如果要保留与单一服务器相同的服务器参数值,你可以通过 PowerShell 登录并运行此处的脚本来复制参数值。
  • 若要启用查询性能见解,你需要在未默认启用查询存储的灵活服务器上启用查询存储
  • 如果需要高可用性,无需停机便可启用它。

在灵活服务器中处理 VNet 规则

在 Azure Database for PostgreSQL 单一服务器中,虚拟网络 (VNet) 规则是服务器的访问控制列表 (ACL) 中列出的子网。 借助此规则,单一服务器可以接受来自该特定子网中的节点的通信。 灵活服务器不支持 VNet 规则。 相反,灵活服务器允许创建专用终结点,从而支持服务器在虚拟网络中运行。 专用终结点可将专用 IP 分配给灵活服务器,并且虚拟网络和服务器之间的所有流量都会通过 Azure 主干网络安全传输,从而无需向公共 Internet 公开。

迁移后,必须为之前由单一服务器上的 VNet 规则涵盖的所有子网向灵活服务器添加专用终结点。 可以使用 Azure 门户Azure CLI 完成此过程。 完成此步骤后,网络连接在从单一服务器迁移后将在灵活服务器上保持不变。

常见问题解答 (FAQ)

问: 我为什么会自动迁移?

A. 你的 Azure Database for Postgresql 单一服务器实例有资格自动迁移到我们的旗舰产品 Azure Database for Postgresql 灵活服务器。 此自动迁移可避免手动迁移服务器的开销。 你可以利用灵活服务器的优势,包括更好的性价比、对数据库配置的精细控制以及自定义维护时段。

Q. 自动迁移是如何进行的? 它将迁移哪些东西?

A. 灵活服务器预配为与单一服务器的 VCore 和存储非常匹配。 接下来,源单一服务器被置于只读状态,并且架构和数据被复制到目标灵活服务器。 执行 DNS 切换以将所有现有连接路由到目标,并将目标灵活服务器联机。 自动迁移将迁移数据库(包括架构、数据、用户/角色和特权)。 迁移是脱机进行的,最多会停机 20 分钟。

Q. 如何设置或查看自动迁移警报?

A. 以下是设置警报的方法:

  • 配置服务运行状况警报,以便按照此处的步骤通过电子邮件/短信接收自动迁移计划和进度通知。
  • 按照此处的步骤,在 Azure 门户上检查自动迁移通知。

Q. 如何推迟我的单一服务器的已计划迁移?

A. 可以通过导航到单一服务器实例的“概述”页来查看迁移计划。 如果你想要推迟迁移,可以在 Azure 门户上导航到单一服务器实例的“概述”页来推迟最多一个月。 你可以在一个月内选择另一个迁移时段来重新安排迁移。 迁移详细信息将在计划的迁移时段前 7 天锁定,之后便无法再重新安排。 此自动迁移可以每月推迟一次,直到 2025 年 3 月 30 日。

Q. 如何选择退出单一服务器的已计划自动迁移?

A. 如果你想要选择退出自动迁移,可以为此目的提交支持工单。

Q. 迁移后的灵活服务器支持哪些用户名和连接字符串? ​​

A. 迁移后的灵活服务器支持两种用户名格式,即 username@server_name(单一服务器格式)和 username(灵活服务器格式),因此你无需在迁移后更新它们即可保持应用程序的连续性。 此外,迁移后的灵活服务器还支持单一服务器格式和灵活服务器格式两种连接字符串格式。

Q. 我看到从 postgresql 基本单一服务器迁移到 postgresql 灵活服务器可能存在定价差异?

A. 由于两种产品/服务的最低存储限制不同(单一服务器上为 5 GiB,灵活服务器上为 32 GiB),因此少数服务器可能会在迁移后出现小幅价格调整。 灵活服务器的存储成本略高于单一服务器。 与单一服务器相比,任何价格上涨都会通过更高的吞吐量和性能来抵消。 有关灵活服务器定价的详细信息,请单击此处