适用于: Azure Database for PostgreSQL - 单一服务器
从 Azure Database for PostgreSQL 单一服务器到灵活服务器的自动迁移是一种由服务启动的迁移,在单一服务器的计划内停机时段内进行,与修补或维护时段不同。 该服务会标识符合条件的服务器并提前发送通知,告知自动迁移过程的详细步骤。 如果需要,可以查看和调整迁移计划,或者提交支持请求来选择退出服务器的自动迁移。
自动迁移利用 Azure PostgreSQL 迁移服务在计划迁移时段内提供可复原的脱机迁移。 停机时间因工作负荷特征而异。 有关迁移速度基准,请参阅 Azure PostgreSQL 迁移速度基准。 此迁移无需手动服务器迁移。 迁移后,可以从灵活服务器功能中受益,例如改进的性价比、精细的数据库配置控制和自定义维护时段。
备注
自动迁移服务可以迁移除以下情况外的所有单一服务器:
- 配置了客户管理的密钥的服务器
- “拒绝公用网络访问”的服务器设置为“是”
提名过程适用于想要自愿快速跟踪其迁移到灵活服务器的用户。 如果拥有单一服务器工作负载,现在可以自行提名(如果尚未由服务计划)进行自动迁移。 通过此表单提交服务器详细信息。
请检查以下先决条件,以确保自动迁移成功:
在计划迁移时段内,单一服务器实例应处于就绪状态,以便进行自动迁移。
单一服务器实例必须已将“拒绝公用网络访问”设置配置为“否”。 可以在 Azure 门户中 的“连接安全性 ”页下找到此选项。
对于已启用 SSL的单一服务器实例,请确保在受信任的根存储中具有所有证书(DigiCertGlobalRootG2 Root CA和DigiCertGlobalRootCA Root CA)。 此外,如果证书已固定到连接字符串,请在计划的自动迁移之里前创建包含全部三个证书的组合 CA 证书,以确保迁移后的业务连续性。
如果源 Azure Database for PostgreSQL 单一服务器具有超过 80 个字符的防火墙规则名称,请重命名它们以确保名称长度少于 80 个字符。 (灵活服务器上支持的防火墙规则名称长度为 80 个字符,而单一服务器上允许的长度为 128 个字符。)
自动迁移过程包括几个关键阶段:
创建目标灵活服务器 - 创建一个灵活服务器来匹配单一服务器 SKU 的性能和成本。 它从源单一服务器继承所有防火墙规则。
数据迁移 - 数据迁移发生在指定的迁移时段内,通常安排在服务器托管区域的非营业时间进行(如果该时段由服务选择)。 源单一服务器设置为只读。 迁移会将所有数据、架构、用户角色、特权和数据库对象所有权传输到灵活服务器。 此外,它还会将所有现有防火墙规则复制到灵活服务器,确保连接不间断。
DNS 交换机 - 数据迁移后,将执行 DNS 交换机,以使现有的单一服务器连接字符串无缝连接到新的灵活服务器。 迁移后的灵活服务器支持单一和灵活服务器连接字符串格式,以及两种用户名格式:(username@server_name 和 username)。
灵活服务器可见性 - 成功进行数据迁移和 DNS 交换机后,新的灵活服务器将显示在订阅下,可通过 Azure 门户或 CLI 进行管理。
更新的单一服务器连接字符串 - 旧版单一服务器的更新连接字符串通过 Azure 门户上的服务运行状况通知发送。 还可以在 “设置 -> 连接字符串”下的“单服务器门户”页上访问它们。
单一服务器删除 - 在迁移后保留单一服务器 7 天,然后再将其删除。
目标灵活服务器的计算层和 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(灵活服务器)。
- 迁移后的灵活服务器支持两种连接字符串格式:单一服务器和灵活服务器。
此迁移可能涉及将数据从灵活服务器上的 PostgreSQL 单一服务器(版本 9.5、9.6 或 10)移动到 PostgreSQL 11。 PostgreSQL 社区已停用这些早期版本。 为了确保安全性、稳定性和性能,建议采用受支持的社区版本。
在主要 PostgreSQL 版本之间迁移时,请考虑以下关键因素,以确保成功顺利过渡:
已停用的功能 - 在旧版本中停用的功能可能不再在 PostgreSQL 11 中提供。 请务必查看 发行说明 ,了解可能影响应用程序的任何重大更改或已弃用的功能。
应用程序测试 - 在 PostgreSQL 11 上对应用程序进行全面测试。 请注意 SQL 查询、函数或第三方工具的潜在问题,因为这些工具的行为可能有所不同或完全由于较新版本的更改而失败。
配置更改 - 主要版本升级通常会添加新参数或更改现有参数的默认值,从而引入对服务器参数的更改。 这些更改可能会影响排序规则、查询执行和数据存储。 若要确保兼容性,请针对这些已更新的设置测试应用程序,并解决任何出现的问题。 如果遇到问题,请使用迁移后步骤部分中提供的脚本,将现有服务器参数从单一服务器实例复制到自动迁移的灵活服务器。
以下是关于自动迁移后续步骤的所需信息。
如果自动迁移需要跨主要 PostgreSQL 版本迁移,请全面测试应用程序,以确定重大更改和参数调整的影响。 进行必要的更改以确保兼容性和最佳性能。
你托管的用于管理单一服务器实例的任何 Terraform/CLI 脚本都应使用灵活服务器引用进行更新。
灵活服务器中的服务器参数已根据社区标准进行了调整。 如果要保留与单一服务器相同的服务器参数值,可以通过 PowerShell 登录并 在此处 运行脚本来复制参数值。
灵活服务器的访问控制(IAM)设置继承自订阅设置。 如果提供了特定于单个服务器的任何角色分配,则必须在灵活服务器上创建这些角色分配。
将监视页面设置(警报、指标和诊断设置)复制到灵活服务器。
要启用查询性能见解,您需要在灵活服务器上启用查询存储,默认情况下它是未启用的。
如果需要高可用性,无需停机便可启用它。
请验证你的灵活服务器 SKU 是否与服务运行状况自动迁移通知中提到的 SKU 匹配。 如果不同,则将其还原为通知中指定的 SKU。 这对于确保计费准确至关重要。
单一服务器的现有连接字符串现在指向灵活服务器。 若要访问单一服务器,将生成一组新的连接字符串。 可以从为单一服务器自动迁移而发送的服务运行状况通知中检索它们。
在 Azure Database for PostgreSQL 单一服务器中,虚拟网络(虚拟网络)规则是服务器访问控制列表(ACL)中列出的子网。 借助此规则,单一服务器可以接受来自该特定子网中的节点的通信。 对于灵活服务器,不支持虚拟网络规则。 相反,灵活服务器允许创建专用终结点,从而支持服务器在虚拟网络中运行。 专用终结点可将专用 IP 分配给灵活服务器,并且虚拟网络和服务器之间的所有流量都会通过 Azure 主干网络安全传输,从而无需向公共 Internet 公开。
迁移后,您必须在灵活服务器上添加专用终结点,以覆盖原单个服务器上的虚拟网络规则所涉及的所有子网。 可以使用 Azure 门户或 Azure CLI 完成此过程。 完成此步骤后,网络连接在从单一服务器迁移后将在灵活服务器上保持不变。
若要确定是否选择了单一服务器进行自动迁移,请执行以下步骤:
服务运行状况通知 - 在 Azure 门户中,转到“服务运行状况”“计划内维护”。> 查找标记为“计划自动迁移到 Azure Database for PostgreSQL 单一服务器的通知”的事件。 通知在迁移日期之前 30、14 和 7 天发送,在迁移阶段再次发送:正在进行、已完成和停用单一服务器前 6 天。
备注
默认情况下,这些通知不会自动进入收件箱。 若要通过电子邮件或短信接收它们,需要设置服务运行状况警报。 有关详细信息,请参阅 “设置服务运行状况警报”。
单一服务器概述页 - 在 Azure 门户中导航到单一服务器实例并查看“概述”页。 如果已安排进行自动迁移,你可在此处找到详细信息。
备注
迁移计划在计划迁移时段前七天锁定,在此期间无法重新安排。
Azure CXP 电子邮件通知 - Azure 客户体验 (CXP) 还会将直接电子邮件发送到与包含单一服务器的订阅关联的经典角色和 RBAC 角色,提供有关即将进行的自动迁移的信息。
问: 我为什么会自动迁移?
答: 你的 Azure Database for Postgresql 单一服务器实例有资格自动迁移到我们的旗舰产品 Azure Database for Postgresql 灵活服务器。 自动迁移消除了手动迁移服务器的开销。 你可以利用灵活服务器的优势,包括更好的性价比、对数据库配置的精细控制以及自定义维护时段。
问: 自动迁移是如何进行的? 它将迁移哪些东西?
答: 灵活服务器预配为与单一服务器的 VCore 和存储非常匹配。 接下来,源单一服务器被置于只读状态,并且架构和数据被复制到目标灵活服务器。 执行 DNS 切换以将所有现有连接路由到目标,并将目标灵活服务器联机。 自动迁移将迁移数据库(包括架构、数据、用户/角色和特权)。 迁移处于脱机状态,根据工作负荷的大小,你会看到几分钟到几个小时的停机时间。 有关迁移速度基准,请参阅 Azure PostgreSQL 迁移速度基准。
问: 如何设置或查看自动迁移警报?
答: 以下是设置警报的方法:
问: 如何选择退出单一服务器的已计划自动迁移?
答: 如果你想要选择退出自动迁移,可以为此目的提交支持工单。
问: 如果单一服务器使用虚拟网络规则规则,应遵循哪些迁移后步骤?
答: 灵活服务器上不支持虚拟网络规则。 参阅此部分
问: 迁移后的灵活服务器支持哪些用户名和连接字符串?
答: 迁移后的灵活服务器支持两种用户名格式,即 username@server_name(单一服务器格式)和 username(灵活服务器格式),因此你无需在迁移后更新它们即可保持应用程序的连续性。 此外,迁移后的灵活服务器还支持单一服务器格式和灵活服务器格式两种连接字符串格式。
问: 我注意到,从 PostgreSQL 基本单一服务器迁移到 PostgreSQL 灵活服务器时,存在潜在的定价差异。
答: 由于两种产品/服务的最低存储限制不同(单一服务器上为 5 GiB,灵活服务器上为 32 GiB),因此少数服务器可能会在迁移后出现小幅价格调整。 灵活服务器的存储成本略高于单一服务器。 与单一服务器相比,任何价格上涨都会通过更高的吞吐量和性能来抵消。 有关灵活服务器定价的详细信息,请参阅 本文档
问: 如果未迁移或服务器未在 2025 年 3 月 28 日自动迁移,会发生什么情况
答: 在 2025 年 3 月 28 日停用截止时间之后,所有未迁移的现有单一服务器都将强制迁移到灵活服务器。 具有附加功能(如专用终结点和只读副本)的服务器需要用户在迁移后执行更多操作,以确保正常运行。 停用日期没有延后的余地。
问: 在自动迁移的服务器上执行主要版本升级 (MVU) 时是否有任何注意事项?
答: 是的,需要注意一个重要的注意事项。 尽管自动迁移的服务器完全支持灵活服务器上支持的主要版本到任何 PostgreSQL 版本的升级,但成功升级后,连接字符串格式会略有更改。 具体而言,升级后将不再支持用户名格式“username@servername”。 如果应用程序或脚本当前在连接字符串中使用此格式,则需要更新它们以使用标准格式:仅“username”。 请确保在升级后查看和更新所有受影响的连接字符串,以避免连接问题。