将 SQL Server 可用性组迁移到多子网 - Azure VM 上的 SQL Server
本文介绍如何将 Always On 可用性组 (AG) 从单子网迁移到多子网,以简化 Azure 中的侦听器与 Azure 虚拟机 (VM) 上的 SQL Server 的连接。
提示
部署可用性组的方法有很多种。 通过在同一 Azure 虚拟网络中的多个子网中创建 SQL Server 虚拟机 (VM),可以简化部署,使 Always On 可用性组不再需要 Azure 负载均衡器或分布式网络名称 (DNN)。 如果已在单个子网中创建可用性组,则可以将其迁移到多子网环境。
概述
在 Azure 虚拟机上运行 SQL Server 的客户可以在单个子网或多个子网(多子网)中实现 Always On 可用性组 (AG)。 多子网配置可以简化可用性组环境,因为无需 Azure 负载均衡器或分布式网络名称 (DNN) 即可将流量路由到 Azure 网络上的侦听器。 虽然建议使用多子网方法,但需要应用程序的连接字符串才能使用 MultiSubnetFailover = true
,由于出现应用程序级别的变更,这一要求可能无法立即实现。
如果最初是在单个子网中创建可用性组,并且对侦听器使用 Azure 负载均衡器或 DNN,现在想要通过迁移到多子网配置来降低复杂性,则可以通过一些手动步骤执行此操作。
在开始迁移现有环境之前,请权衡更改正在使用的环境的风险。
请考虑以下两种将可用性组迁移到多个子网的方法:
- 创建新环境以执行并行测试
- 以手动方式移动现有的可用性组
注意
执行任何迁移都伴随一些风险,因此在迁移到生产环境之前,始终坚持在非生产环境中进行全面测试。
采取并行测试的新环境
移动到多子网可用性组的第一种方法是设置新环境。 如果这是所选路由,则需要:
- 创建新虚拟机
- 在多子网配置中创建新的可用性组
- 备份当前数据库并将其还原到新环境
最初,在新的多子网环境中,使用与现有单子网环境不同的名称创建侦听器。 新可用性组中新命名的侦听器支持对应用程序进行并行测试(就地同时使用多子网和当前负载平衡器或 DNN 进行测试)。
彻底验证多子网环境后,可以直接转换到新的基础结构。 根据生产和测试环境,利用维护时段来完成更改。 在维护时段内,将数据库还原到新的主副本,删除两个环境中的可用性组侦听器,然后使用与上一个侦听器(应用程序连接字符串中使用的侦听器)相同的名称在多子网环境中重新创建侦听器。
通过 Azure 门户部署体验,现在可以更轻松地在多子网配置中设置新环境。
以手动方式移动现有的可用性组
另一个选项是从单子网环境手动移动到多子网环境。 若要使用此方法迁移,需要具备以下先决条件:
- 可以提供新子网中每台计算机的 IP 地址
- 连接字符串已使用
MultiSubnetFailover = true
若要将可用性组迁移到多子网配置,请执行以下步骤:
为每个辅助服务器创建新子网,因为所有虚拟机当前都处在同一子网中。
确定 AG 中所有服务器的群集 IP 和侦听器 IP。 例如,如果有一个包含两个节点的可用性组,则具有以下项:
VM 名称 子网 群集 IP 侦听器 IP VM1(主) 10.1.1.0/24(现有子网) 10.1.1.15 10.1.1.16 VM2(次) 10.1.2.0/24(新子网) 10.1.2.15 10.1.2.16 将群集 IP 和侦听器 IP 添加到主要副本服务器。 添加这些 IP 地址是联机操作。
在 Azure 门户,通过转到“虚拟机”>“网络”>“网络接口”>“IP 配置”,将辅助服务器移动到新子网中。 将服务器移动到新子网会重新启动次要副本服务器。
将群集 IP 和侦听器 IP 添加到次要副本服务器。 添加这些 IP 地址是联机操作。
此时,由于 IP 地址和子网已就位,因此可以删除负载均衡器。
删除侦听器。
如果你使用的是 Windows Server 2019 及更高版本,请跳过此步骤。 如果使用 Windows Server 2016,请将群集 IP 手动添加到 FCI。
使用新的侦听器 IP 重新创建侦听器。
使用 ipconfig
/flushdns
在所有服务器上刷新 DNS。