Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本教程介绍如何在远离主要副本的 Azure 区域上,为运行在 Azure 虚拟机(VM)上的 SQL Server 配置 Always On 可用性组副本。 可以将此配置用于灾难恢复 (DR)。
还可以使用本文中的步骤将现有本地可用性组扩展到Azure。
本教程基于教程在单个区域中的多个子网中手动部署可用性组。 本文中提到的本地区域是指已在首个区域中配置的虚拟机和可用性组。 远程区域是本教程中要添加的新基础结构。
概述
下图显示了Azure虚拟机上可用性组的常见部署:
在关系图中显示的部署中,所有虚拟机都位于一个Azure区域中。 在 SQL-VM-1 和 SQL-VM-2 上,可以使用自动故障转移为可用性组副本配置同步提交。 若要生成此体系结构,请参阅 Azure VM 上的 SQL Server 上的 Always On 可用性组。
如果Azure区域不可访问,则此体系结构很容易停机。 若要克服此漏洞,请在其他Azure区域中添加副本。 下图显示了新体系结构的外观:
图中显示了名为 SQL-VM-3 的新虚拟机。 SQL-VM-3 位于不同的Azure区域中。 此虚拟机将添加到Windows Server故障转移群集,可以托管可用性组副本。 在此体系结构中,远程区域中的副本通常配置了异步提交可用性模式和手动故障转移模式。
注意
如果多个虚拟机位于同一区域,则需要Azure可用性集。 如果区域中只有一个虚拟机,则不需要可用性集。
只有在创建时才能将虚拟机放入可用性集。 如果虚拟机已在可用性集中,您可以稍后添加虚拟机以创建额外的副本。
当可用性组副本位于不同的 Azure 区域中的 Azure 虚拟机上时,可以使用 虚拟网络对等互连或 站点到站点 VPN 网关连接虚拟网络。
重要
此体系结构对于在不同Azure区域之间复制的数据产生出站流量费用。 请参阅带宽定价。
创建网络和子网
在新 区域中创建虚拟网络和子网之前,应确定要用于远程区域的地址空间、子网网络、群集 IP 和可用性组侦听器 IP 地址。
下表列出了本地(当前)区域的详细信息以及新远程区域中设置的值。
| 类型 | 本地 | 远程区域 |
|---|---|---|
| 地址空间 | 10.38.0.0/16 | 10.19.0.0/16 |
| DC 子网网络 | 10.38.0.0/24 | 10.19.0.0/24 |
| SQL 子网 1 网络 | 10.38.1.0/24 | 10.19.1.0/24 |
| SQL 子网 2 网络 | 10.38.2.0/24 | 不适用 |
| 群集 IP 1 | 10.38.1.10 | 10.19.1.10 |
| 群集 IP 2 | 10.38.2.10 | 不适用 |
| 可用性组侦听器 IP 1 | 10.38.1.11 | 10.19.1.11 |
| 可用性组侦听器 IP 1 | 10.38.2.11 | 不适用 |
若要在 Azure 门户中的新区域中创建虚拟网络和子网,请执行以下作:
在 Azure 门户中转到资源组并选择 + 创建。
在 Marketplace 搜索框中搜索“虚拟网络”,然后从 Microsoft 选择“虚拟网络”图块。
在“创建虚拟网络”页面上,选择“创建”。 然后在“基本信息”选项卡中输入以下信息:
- 在 Project 详细信息下,对于 订阅,请选择相应的 Azure 订阅。 对于“资源组”,请选择之前创建的资源组,例如 SQL-HA-RG。
- 在“实例详细信息”下,提供虚拟网络的名称(例如 remote_HAVNET)。 然后选择新的远程区域。
Azure 门户的
在“IP 地址”选项卡上,选择“+ 添加子网”旁边的省略号 (...)。 如果需要其他地址范围,请选择“删除地址空间”以移除现有的地址空间。
选择“添加 IP 地址空间”,打开窗格以创建所需的地址空间。 本教程使用远程区域的地址空间:10.19.0.0/16。 选择 并添加。
显示添加地址空间选择的 Azure 门户的截图,适用于虚拟网络。 为域控制器和SQL Server添加子网。
选择 + 添加子网
为“子网名称”提供值,例如“DC-Subnet”。
提供虚拟网络地址空间中的唯一子网地址范围。
例如,如果地址范围为 10.19.0.0/16,请为 DC-Subnet 子网输入以下值:10.19.1.0 表示起始地址,/24 表示子网大小。
选择添加来添加您的新子网。
对 SQL-subnet1 重复此过程。 完成后,应为远程区域中的域控制器创建一个子网,以及远程区域中每个SQL Server的子网。 例如,在本教程中,远程区域虚拟网络包含:
Azure门户截图,显示了将子网添加到虚拟网络的选项。
选择“查看 + 创建”以创建虚拟网络。
配置虚拟网络 DNS
创建虚拟网络后,将其配置为使用本地域控制器或主域控制器中的 DNS 服务器。
要配置虚拟网络以使用 DNS,请执行以下步骤:
- 在 Azure 门户中转到资源组,然后选择虚拟网络,例如 remote-HAVNET。
- 选择“设置”窗格下的“DNS 服务器”,然后选择“自定义”。
- 在“IP 地址”字段中输入之前标识的 专用 IP 地址,例如 。
- 选择“保存”。
连接两个Azure区域中的虚拟网络
创建新的虚拟网络和子网后,即可连接这两个区域,以便它们相互通信。 有两种方法可用于建立此连接:
在 Azure 门户中使用虚拟网络对等互连来连接虚拟网络(建议)
在某些情况下,可能需要使用 PowerShell 在虚拟网络之间创建连接。 例如,如果使用不同的Azure帐户,则无法在门户中配置连接。 在这种情况下,请查看 使用 Azure 门户配置网络到网络连接。
本教程使用虚拟网络对等互连。 要配置虚拟网络对等互连,请执行以下操作:
在Azure门户顶部的搜索框中,键入 autoHAVNET,这是本地区域中的虚拟网络。 当“autoHAVNET”出现在搜索结果中时,将其选中。
在“设置”下选择“对等互连”,然后选择“+ 添加”。
输入或选择以下信息,接受其余设置的默认值,然后选择“添加”。
设置 值 此虚拟网络 对等互连链接名称 输入 autoHAVNET-remote_HAVNET 作为从 autoHAVNET 到远程虚拟网络的对等连接名称。 远程虚拟网络 对等互连链接名称 输入 remote_HAVNET-autoHAVNET 作为从远程虚拟网络到 autoHAVNET 的对等互连名称。 Subscription 选择要用于远程虚拟网络的订阅。 虚拟网络 选择“remote_HAVNET”作为远程虚拟网络的名称。 远程虚拟网络可以与“autoHAVNET”位于相同或不同的区域中。 在“对等连接”页上,“对等连接状态”为“已连接”。
Azure门户网站的截图,显示虚拟网络对等互连的连接状态。
如果未看到“已连接”状态,请选择“刷新”按钮。
创建域控制器
如果主站点不可用,则新区域中的域控制器需要提供身份验证。 若要在新区域中创建域控制器,请执行以下操作:
- 返回到“SQL-HA-RG”资源组。
- 选择+ 新建。
- 键入 Windows Server 2016 Datacenter,然后选择 Windows Server 2016 Datacenter 结果。
- 在 Windows Server 2016 Datacenter 中,验证部署模型是否为 Resource Manager,然后选择 Create。
下表显示了这两个计算机的设置:
| 设置 | 值 |
|---|---|
| 名称 | 远程域控制器:DC-VM-3 |
| VM 磁盘类型 | SSD |
| 用户名 | DomainAdmin |
| 密码 | 安全密码 |
| Subscription | 订阅 |
| 资源组 | SQL-HA-RG |
| 位置 | 你的位置 |
| 大小 | DS1_V2 |
| 存储 | 使用托管磁盘:是 |
| 虚拟网络 | remote_HAVNET |
| 子网 | DC-subnet |
| 公共 IP 地址 | 与 VM 同名 |
| 网络安全组 | 与 VM 同名 |
| 诊断 | 已启用 |
| 诊断存储帐户 | 自动创建 |
Azure创建虚拟机。
配置域控制器
在以下步骤中,将 DC-VM-3 计算机配置为 corp.contoso.com 的域控制器:
设置首选 DNS 服务器地址
首选 DNS 服务器地址不应该直接在 VM 中更新,应该通过Azure 门户、PowerShell 或 Azure CLI对其进行编辑。 以下步骤演示如何在 Azure 门户中进行此更改:
登录到 Azure 门户。
在门户顶部的搜索框中,输入“网络接口”。 在搜索结果中,选择“网络接口”。
从列表中选择要查看或更改设置的第二个域控制器的网络接口。
在“设置”中,选择“DNS 服务器”。
由于此域控制器与主域控制器不在同一虚拟网络中,请选择“自定义”并输入本地域控制器的 IP 地址,例如 。 指定的 DNS 服务器地址仅分配到此网络接口,并会替代该网络接口分配到的虚拟网络的任何 DNS 设置。
选择“保存”。
返回到Azure门户中的虚拟机并重启 VM。 虚拟机重启后,可以将 VM 加入域。
加入域
接下来,请加入 corp.contoso.com 域。 为此,请执行下列步骤:
- 使用 BUILTIN\DomainAdmin 帐户通过 Bastion 远程连接到虚拟机。
- 打开 Server Manager,然后选择 Local Server。
- 选择“WORKGROUP”。
- 在“计算机名”部分中,选择“更改”。
- 选中“域”复选框并在文本框中键入“corp.contoso.com” 。 选择“确定”。
- 在Windows 安全弹出对话框中,输入默认域管理员帐户(CORP\DomainAdmin)的凭据和密码。
- 在看到“欢迎使用 corp.contoso.com 域”消息时,选择“确定”。
- 选择“关闭”,然后选择弹出对话框中的“立即重启”。
配置域控制器
将服务器加入域后,可以将它配置为第二个域控制器。 为此,请执行下列步骤:
如果尚未连接,请打开辅助域控制器的 Bastion 会话,然后打开 Server Manager 仪表板(默认情况下可能打开)。
选择仪表板上的“添加角色和功能”链接。
选择“下一步”,直到到达“服务器角色”部分。
选择 Active Directory Domain Services 和 DNS 服务器角色。 出现提示时,请添加这些角色所需的任何其他功能。
安装完功能后,返回到 Server Manager 仪表板。
选择左侧窗格中的新“AD DS”选项。
选择黄色警告栏上的“更多”链接。
在“所有服务器任务详细信息”对话框的“操作”栏中,选择“将此服务器提升为域控制器”。
在“部署配置”下面,选择“将域控制器添加到现有域”。
选择 选择。
使用管理员帐户(CORP.CONTOSO.COM\domainadmin)进行连接。
在“从林中选择域”中,选择你的域,然后选择“确定”。
在“域控制器选项”中,使用默认值并设置 DSRM 密码。
注意
“DNS 选项”页可能会警告您无法为此 DNS 服务器创建委托。 可以在非生产环境中忽略此警告。
选择“下一步”,直到出现“先决条件检查”对话框。 然后选择“安装”。
在服务器完成配置更改后,重启服务器。
将第二个域控制器 IP 地址添加到 DNS
配置远程域控制器后,请按照与之前相同的步骤 标识 VM 的专用 IP 地址。 然后, 将专用 IP 地址添加为 资源组的虚拟网络(本地和远程虚拟网络)中的辅助自定义 DNS 服务器。 在Azure门户中添加辅助 DNS 服务器可实现 DNS 服务的冗余。
创建SQL Server VM
域控制器重启后,下一步是在新区域中创建SQL Server虚拟机。
在继续操作之前,请考虑以下设计决策:
可用性 - 可用区
为了获得最高级别的冗余、复原能力和可用性,将虚拟机部署在独立的可用区域中。 Availability Zones是Azure区域中的唯一物理位置。 每个局部区域由一个或多个数据中心组成,这些数据中心配置了独立的电源、散热系统和网络。 对于尚不支持Availability Zones的Azure区域,请改用可用性集。 请将所有 VM 放在同一可用性集内。
Storage - Azure Managed Disks
对于虚拟机存储,请使用Azure Managed Disks。 Azure建议为SQL Server虚拟机使用托管磁盘,因为它们能在后台处理存储。 有关详细信息,请参阅 Azure Managed Disks 概述。
网络:生产环境中的专用 IP 地址
本教程为虚拟机使用公共 IP 地址。 使用公共 IP 地址可以通过 Internet 直接远程连接到虚拟机,从而使配置过程更加轻松。 在生产环境中,Azure仅建议专用 IP 地址,以减少SQL Server实例 VM 资源的漏洞占用。
网络 - 每个服务器一个 NIC
每个服务器(群集节点)使用单个 NIC。 Azure网络具有物理冗余,因此无需在部署到Azure虚拟机的故障转移群集上添加额外的 NIC。 群集验证报告上有警告,提示你只能在一个网络上访问节点。 当故障转移群集位于Azure虚拟机上时,可以忽略此警告。
创建和配置SQL Server VM
若要创建SQL Server VM,请返回到 SQL-HA-RG 资源组,然后选择 Add。 搜索相应的图库项目,选择虚拟机,然后选择从图库中。 若要创建 VM,请使用下表中的信息:
| 页面 | 设置 |
|---|---|
| 选择相应的图库项目 | SQL Server 2016 SP1 Enterprise on Windows Server 2016 |
| 虚拟机配置:基本信息 |
名称 = SQL-VM-3 用户名 = DomainAdmin 密码 = 安全密码 订阅 = 自己的订阅 资源组 = SQL-HA-RG 位置 = 你的远程区域 |
| 虚拟机配置:大小 |
大小 = DS2_V2 (2 个 vCPU,7 GB) 大小必须支持 SSD 存储(高级磁盘支持)。 |
| 虚拟机配置:设置 |
存储:使用托管磁盘 “虚拟网络”“remote-HAVNET” = 子网 = SQL-subnet1 (10.19.1.0/24) 公共 IP 地址 = 自动生成 网络安全组 = 无 监视诊断 = 已启用 诊断存储帐户 = 使用自动生成的存储帐户 |
| 虚拟机配置:SQL Server设置 |
SQL 连接性 = 专用(在虚拟网络内) 端口 = 1433 SQL 身份验证 = 已禁用 存储配置 = 通用 自动修补 = 星期日 2:00 自动备份 = 已禁用 Azure Key Vault 集成 = 禁用 |
注意
此表中建议的计算机大小用于测试Azure虚拟机中的可用性组。 要在生产工作负荷中获得最佳性能,请参阅 清单:Azure VM 上 SQL Server 的最佳实践中关于 SQL Server 机器大小和配置的建议。
完全预配 VM 后,需要进行配置,将其加入到 corp.contoso.com 域中,并向这些计算机授予 CORP\Install 管理权限。
配置SQL Server VM
VM 创建完成后,通过向每个 VM 添加辅助 IP 地址并将其加入域来配置SQL Server VM。
将辅助 IP 添加到 SQL Server VM
在多子网环境中,将辅助 IP 地址分配给每个SQL Server VM 以用于可用性组侦听器。 对于 Windows Server 2016 及更早版本,为每个 SQL Server VM 的群集 IP 地址分配辅助 IP 地址。 添加这些辅助 IP 地址消除了对 Azure 负载均衡器的需求,这正是单个子网环境中的要求。
在Windows Server 2016及更早版本上,需要为每个SQL Server VM 分配额外的辅助 IP 地址,以便用于 Windows 群集 IP,因为群集使用 Cluster 网络名称而不是Windows Server 2019中引入的默认分布式网络名称(DNN)。 使用 DNN 时,群集名称对象 (CNO) 自动注册到群集所有节点的 IP 地址,无需专用 Windows 群集 IP 地址。
如果您使用的是 Windows Server 2016 或更早版本,请按照本节中介绍的步骤,为每个 SQL Server VM 分配一个辅助 IP 地址,该地址适用于可用性组侦听器和群集。
重要
如果使用的是 Windows Server 2019 或更高版本,则仅为可用性组侦听器分配辅助 IP 地址。 跳过分配 Windows 群集 IP 的步骤,除非计划使用虚拟网络名称(VNN)配置群集,在这种情况下,请将这两个 IP 地址分配给每个SQL Server VM,就像Windows Server 2016一样。
若要向 VM 分配其他辅助 IP,请执行以下步骤:
在 Azure 门户中转到资源组并选择 SQL Server VM,SQL-VM-3。
在“设置”窗格中选择“网络”,然后选择“网络接口”。
在“网络接口”页上,在“设置”窗格中选择“IP 配置”,然后选择“+ 添加”以添加其他 IP 地址。
在“添加 IP 配置”页上,执行以下操作:
- 将 Name 指定为 Windows 群集 IP,例如 Windows 2016 及更早版本的 windows-cluster-ip。 如果使用的是 Windows Server 2019 或更高版本,请跳过此步骤。
- 将“分配”设置为“静态”。
- 输入在同一子网(SQL-subnet-1)中未使用的IP地址,与 SQL Server 虚拟机(SQL-VM-1)相同,例如
10.19.1.10。 - 将“公共 IP 地址”保留为默认值“取消关联”。
- 选择“确定”完成 IP 配置的添加。
再次选择+ 添加,为可用性组侦听器(例如availability-group-listener)配置其他 IP 地址,并在SQL-subnet-1中再次指定一个未使用的 IP 地址,例如
10.19.1.11。
现在,你已准备好加入 corp.contoso.com。
将服务器联接到域
若要将 VM 加入 corp.contoso.com,请对 SQL Server VM 使用以下步骤:
- 使用 BUILTIN\DomainAdmin 帐户通过 Bastion 远程连接到虚拟机。
- 在 Server Manager 中,选择 Local Server。
- 选择“工作组”链接。
- 在“计算机名”部分中,选择“更改”。
- 选中“域名”复选框,然后在文本框中输入“corp.contoso.com”。 然后选择“ 确定”。
- 在“Windows Security弹出对话框中,指定默认域管理员帐户(CORP\DomainAdmin) 的凭据。
- 在看到“欢迎使用 corp.contoso.com 域”消息时,选择“确定”。
- 选择“关闭”,然后选择弹出对话框中的“立即重启”。
添加帐户
下一个任务是将安装帐户添加为SQL Server VM 上的管理员,然后向该帐户和SQL Server中的本地帐户授予权限。 然后,可以更新SQL Server服务帐户。
添加 CORP\Install 用户作为每个群集 VM 上的管理员
SQL Server虚拟机作为域成员重启后,将 CORP\Install 添加为本地管理员组的成员:
等待 VM 重启,然后从主域控制器打开Remote Desktop协议(RDP)连接。 使用 CORP\DomainAdmin 帐户登录到 SQL-VM-3。
提示
在前面的步骤中,您使用的是 BUILTIN 管理员帐户。 服务器已位于域中,请确保使用域管理员帐户进行登录。 在 RDP 会话中,指定域\用户名。
在 Server Manager 中,选择 Tools,然后选择 Computer Management。
在“计算机管理”窗口中,展开“本地用户和组”,然后选择“组”选项。
双击“管理员”组。
在“管理员属性”对话框中,选择“添加”按钮。
将用户输入为CORP\Install,然后选择确定。
选择“确定”以关闭“管理员属性”对话框。
在每个SQL Server虚拟机上为安装帐户创建一个登录名
使用安装帐户 (CORP\install) 配置可用性组。 此帐户必须是每个 SQL Server VM 上sysadmin固定服务器角色的成员。 以下步骤将创建安装帐户的登录名。 在两SQL Server VM 上完成它们。
打开SQL Server Management Studio并连接到SQL Server的本地实例。
在 Object Explorer 中,选择 Security。
右键单击登录。 选择“新建登录名”。
在《Login - New》中,选择《Search》。
选择位置。
输入域管理员的网络凭据。 使用安装帐户 (CORP\Install)。
将该登录名设置为 sysadmin 固定服务器角色的成员。
选择“确定”。
配置系统帐户权限
若要创建系统帐户并授予适当的权限,请在每个SQL Server实例上完成以下步骤:
使用以下脚本为
[NT AUTHORITY\SYSTEM]创建帐户:USE [master] GO CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE=[master] GO向
[NT AUTHORITY\SYSTEM]授予以下权限:ALTER ANY AVAILABILITY GROUPCONNECT SQLVIEW SERVER STATE
以下脚本将授予这些权限:
GRANT ALTER ANY AVAILABILITY GROUP TO [NT AUTHORITY\SYSTEM] GO GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM] GO GRANT VIEW SERVER STATE TO [NT AUTHORITY\SYSTEM] GO
设置SQL Server服务帐户
在每个SQL Server VM 上,完成以下步骤来设置SQL Server服务帐户。 使用配置域帐户时创建的帐户。
- 打开SQL Server Configuration Manager。
- 右键单击SQL Server服务,然后选择 Properties。
- 设置帐户和密码。
对于SQL Server可用性组,每个SQL Server VM 都需要作为域帐户运行。
将故障转移群集添加到 SQL Server VM
若要添加故障转移群集功能,请在两SQL Server VM 上完成以下步骤:
使用 Bastion 通过 CORP\Install 帐户连接到 SQL Server 虚拟机。 打开 Server Manager 仪表板。
选择仪表板上的“添加角色和功能”链接。
选择“下一步”,直到看到“服务器功能”部分。
在功能中,选择故障转移群集。
添加任何所需的功能。
选择“安装”。
注意
现在可以使用 Azure CLI 自动执行此任务,同时实际将SQL Server VM 加入故障转移群集。
调整故障转移群集的网络阈值
在具有SQL Server可用性组的 Azure VM 中运行Windows故障转移群集节点时,请将群集设置更改为更宽松的监视状态。 此更改使群集更加稳定且可靠。 有关详细信息,请参阅 IaaS 和 SQL Server:优化故障转移群集网络阈值。
在每个SQL Server VM 上配置防火墙
可用性组功能依赖于通过以下 TCP 端口的流量:
- SQL Server VM:默认实例 SQL Server的端口 1433。
- 数据库镜像终结点:任何可用端口。 示例中经常使用 5022。
在两SQL Server VM 上打开这些防火墙端口。 打开端口的方法取决于使用的防火墙解决方案,可能与本节中提供的Windows防火墙示例不同。
若要在Windows防火墙上打开这些端口,请执行以下步骤:
在第一个 SQL Server Start 屏幕上,启动具有高级安全性的防火墙Windows防火墙。
在左窗格中,选择“入站规则”。 在右窗格上,选择“新建规则”。
对于规则类型,请选择端口。
对于端口,请指定“TCP”,并键入相应的端口号。 请参阅以下示例:
为 Windows 防火墙配置新规则的截图。
选择“下一步”。
在“操作”页中,选择“允许连接”,然后选择“下一步” 。
在“配置文件”页上,接受默认设置,然后选择“下一步”。
在“名称”页的“名称”文本框中指定一个规则名称(如 SQL Inbound),并选择“完成”。
将SQL Server添加到Windows Server故障转移群集
新的SQL Server VM 需要被添加到本地区域内存在的Windows Server 故障转移群集中。
若要将SQL Server VM 添加到群集,请执行以下作:
使用 Bastion 连接到现有群集中的SQL Server VM。 使用域帐户,该帐户是所有SQL Server虚拟机和见证服务器上的管理员。
在 Server Manager 仪表板上,选择 Tools,然后选择 Failover Cluster Manager。
在左窗格中,右键单击“故障转移群集管理器”,然后选择“连接到群集”。
在“选择群集”窗口中的“群集名称”下,选择“此服务器上的群集”。 然后选择“ 确定”。
在浏览器树中,右键单击群集,并选择“添加节点”。
在“添加节点向导”中,选择“下一步” 。
在 Select Servers 页上,添加新SQL Server实例的名称。 在“输入服务器名称”中输入服务器名称,选择“添加”,然后选择“下一步”。
在“验证警告”页上,选择“否”。 (在生产场景中,应执行验证测试)。 然后,选择下一步。
如果正在使用存储空间,则在“确认”页上,取消选中“将所有符合条件的存储添加到群集”复选框。
警告
如果您不清除选择将所有符合条件的存储添加到群集,则在群集过程中,Windows会分离虚拟磁盘。 这样一来,这些虚拟磁盘将不会出现在磁盘管理器或资源管理器之中,除非从群集中删除存储,并通过 PowerShell 将其重新附加。
选择“下一步”。
选择完成。
“故障转移群集管理器”显示群集具有一个新的节点,并将该节点在“节点”容器中列出。
为Windows Server故障转移群集添加 IP 地址
注意
在 Windows Server 2019 上,群集创建一个 分布式服务器名称而不是 群集网络名称。 如果您正在使用 Windows Server 2019,请跳到 为可用性组侦听器添加 IP 地址。 可以使用 PowerShell 创建群集网络名称。 有关详细信息,请查看博客文章故障转移群集:群集网络对象。
接下来,创建 IP 地址资源并将其添加到新 SQL Server VM 的群集:
在“故障转移群集管理器”中,选择群集的名称。 右键单击“群集核心资源”下的群集名称,然后选择“属性”:
在“群集属性”对话框中,选择“IP 地址”下的“添加”,然后从远程网络区域添加群集名称的 IP 地址。 在“IP 地址”对话框中选择“确定”,然后在“群集属性”对话框中选择“确定”,以保存新的 IP 地址。
为群集核心名称添加 IP 地址作为依赖项。
再次打开 “群集属性 ”对话框,然后选择“ 依赖项 ”选项卡。为两个
ORIP 地址配置依赖项。
为可用性组侦听器添加 IP 地址
需要将远程区域中侦听器的 IP 地址添加到群集。 要添加 IP 地址,请执行以下操作:
在故障转移群集管理器中,右键单击可用性组角色。 依次点击“添加资源”、“更多资源”,然后选择“IP 地址”。
若要配置此 IP 地址,请右键选择“其他资源”下的资源,然后选择“属性”。
在“名称”栏中输入新资源的名称。 对于“网络”,请选择远程数据中心的网络。 选择“静态 IP 地址”,然后在“地址”框中,分配之前为侦听程序选择的静态 IP 地址,在本教程中为 10.19.1.11。
选择 应用,然后选择 确定。
将 IP 地址资源设成侦听器客户端访问点(网络名称)群集的依赖项。
右键单击侦听器客户端接入点,然后选择“属性”。 浏览到“依赖项”选项卡,并将新的 IP 地址资源添加到侦听器客户端接入点。 以下屏幕截图显示了正确配置的 IP 地址群集资源:
重要
该群集资源组包含这两个 IP 地址。 这两个 IP 地址是侦听器客户端接入点的依赖项。 在群集依赖项配置中使用
OR运算符。
启用可用性组
接下来,启用“Always On 可用性组”功能。 在新SQL Server VM 上完成以下步骤:
在 Start 屏幕中,打开 SQL Server Configuration Manager。
在浏览器树中,选择SQL Server服务。 右键单击 SQL Server (MSSQLSERVER) 服务,然后选择 Properties。
选择 “AlwaysOn 高可用性 ”选项卡,然后选择“ 启用 AlwaysOn 可用性组”。
在 SQL Server 属性中启用 Always On 可用性组的选择的截图 选择应用。 在弹出对话框中选择“确定”。
重启SQL Server服务。
将新副本添加到可用性组
在新创建的虚拟机上重新启动 SQL Server 后,可以将它添加为可用性组中的副本。
打开到可用性组中主SQL Server实例的远程桌面会话,然后打开SQL Server Management Studio(SSMS)。
在 SSMS 中的 Object Explorer 中,打开 Always On High Availability>Availability Groups。 右键单击可用性组名称,然后选择“添加副本”。
连接到现有副本,然后选择“下一步”。
选择 Add Replica 并连接到新的SQL Server VM。
重要
远程Azure区域中的副本应设置为使用手动故障转移的异步复制。
在“选择初始数据同步”页上,选择“完全同步”,并指定一个共享网络位置。 对于位置,请使用创建的备份共享。 在此示例中,它是 \\<First SQL Server>\Backup\。 然后选择下一步。
注意
完全同步过程在第一个 SQL Server 实例上对数据库进行完整备份,然后将其还原至第二个 SQL Server 实例。 对于大型数据库,我们不建议完全同步,因为它可能需要很长时间。
可以通过使用
NO RECOVERY对数据库进行手动备份和还原来缩短该时间。 如果在配置可用性组之前,该数据库已在第二个 SQL Server 实例上通过NO RECOVERY进行还原,请选择仅加入。 若想在配置可用性组之后进行备份,请选择“跳过初始数据同步”。在“验证”页中,选择“下一步”。 此页面应与下图类似:
注意
如果看到侦听器配置的警告,指出未配置可用性组侦听器。 可以忽略此警告,因为监听器已设置完毕。
在“摘要”页面上,选择“完成”,然后等待向导配置完新的可用性组。 在“进度”页上,可选择“更多详细信息”查看详细进度。
向导完成配置后,请检查“结果”页,确认已成功创建可用性组。
选择 关闭 以关闭向导。
查看可用性组
在 Object Explorer 中,展开 Always On High Availability,然后展开 Availability Groups。 右键单击可用性组,然后选择“显示面板”。
可用性组仪表板应与下方屏幕截图类似,现在包含另一个副本:
仪表板显示副本、每个副本的故障转移模式以及同步状态。
检查可用性组侦听程序
在 Object Explorer 中,展开 Always On High Availability,展开 Availability Groups,然后展开 Availability Group Listener。
右键单击侦听器名称,并选择“属性”。 现在应会显示侦听程序的所有 IP 地址(每个区域一个)。
设置多个子网的连接
远程数据中心中的副本属于可用性组,但位于不同子网。 如果此副本成为主副本,则可能会发生应用程序连接超时。 这种行为与多子网部署中的本地部署可用性组相同。 若要允许从客户端应用程序建立连接,请更新客户端连接,或者在群集网络名称资源上配置名称解析缓存。
最好更新群集配置以设置 RegisterAllProvidersIP=1,并更新客户端连接字符串以设置 MultiSubnetFailover=Yes。 请参阅使用 MultiSubnetFailover 进行连接。
如果无法修改连接字符串,则可以配置名称解析缓存。 请参阅 在多子网环境中连接到 Always On 侦听器时发生超时。
故障转移到远程区域
要测试侦听器与远程区域之间的连接,可将副本故障转移到远程区域。 尽管副本是异步的,但故障转移存在丢失数据的可能性。 要故障转移并防止丢失数据,请将可用性模式更改为同步,将故障转移模式设置为自动。 请使用以下步骤:
在 Object Explorer 中,连接到承载主副本的SQL Server实例。
在“Always On 可用性组”下,右键单击可用性组,然后选择“属性”。
在“常规”页上的“可用性副本”下,将灾难恢复 (DR) 站点中的辅助副本设置为使用“同步提交”可用性模式和“自动”故障转移模式。
如果辅助副本和主副本位于同一站点,且辅助副本具有高可用性,则将辅助副本设置为“异步提交”和“手动”。
选择“确定”。
在 Object Explorer 中,右键单击可用性组并选择 Show Dashboard。
请在控制面板中验证灾难恢复站点上的副本是否已同步。
在 Object Explorer 中,右键单击可用性组,然后选择 Failover。 SQL Server Management Studio打开一个向导来故障转移SQL Server。
选择 Next,然后选择 DR 站点上的SQL Server实例。 再次选择下一步。
连接到 DR 站点上的SQL Server实例,然后选择 Next。
在“摘要”页上查看设置,然后选择“完成” 。
测试连接性之后,将主要副本移回主数据中心,并将可用性模式设置回其正常运行设置。 下表显示了本文档所述体系结构的正常运行设置:
| 位置 | 服务器实例 | 角色 | 可用性模式 | 故障转移模式 |
|---|---|---|---|---|
| 主数据中心 | SQL-VM-1 | 主要 | 同步 | 自动 |
| 主数据中心 | SQL-VM-2 | 次要 | 同步 | 自动 |
| 辅助或远程数据中心 | SQL-VM-3 | 次要 | 异步 | 手动 |
有关计划内故障转移和强制手动故障转移的详细信息,请参阅以下文章:
