教程:多个子网中的可用性组的先决条件(Azure VM 上的 SQL Server)

适用于: Azure VM 上的 SQL Server

提示

部署可用性组的方法有很多种。 通过在同一 Azure 虚拟网络中的多个子网中创建 SQL Server 虚拟机 (VM),可以简化部署,使 Always On 可用性组不再需要 Azure 负载均衡器或分布式网络名称 (DNN)。 如果已在单个子网中创建可用性组,则可以将其迁移到多子网环境

在本教程中完成先决条件的配置,以在多个子网中为 Azure 虚拟机 (VM) 上的 SQL Server 创建 Always On 可用性组。 在本教程结束时,你将让两台 Azure 虚拟机具有域控制器、两台 SQL Server VM 在多个子网中并具有单个资源组中的存储帐户。

时间估算:本教程会在 Azure 中创建多个资源,可能需要 30 分钟才能完成。

下图说明了在本教程中部署的资源:

下图说明了在本教程中部署的资源

先决条件

要完成本教程,需要以下各项:

创建资源组

要在 Azure 门户中创建资源组,请执行以下步骤:

  1. 登录 Azure 门户

  2. 选择“+创建资源”以在门户中创建新资源。

    选择“+ 创建资源”以在门户中创建新资源。

  3. 在“市场”搜索框中搜索“资源组”,然后从 Microsoft 选择“资源组”磁贴 。 在“资源组”页面上选择“创建” 。

    在“市场”中搜索“资源组”,然后选择创建资源组。

  4. 在“创建资源组”页面上,填写以下值以创建资源组:

    1. 从下拉列表中选择相应的 Azure 订阅。
    2. 提供资源组的名称,例如“SQL-HA-RG”。
    3. 从下拉列表中选择一个位置,例如“中国北部 2”。 请务必将所有后续资源都部署到此位置。
    4. 选择“查看 + 创建”以查看资源参数,然后选择“创建”以创建自己的资源组 。

    填写对应的值以在 Azure 门户中创建自己的资源组。

创建网络和子网

接下来,创建虚拟网络和三个子网。 有关详细信息,请参阅虚拟网络概述

若要在 Azure 门户中创建虚拟机,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择“+ 创建”

    在资源组中创建新资源

  2. 在“市场”搜索框中搜索“虚拟网络”,然后从 Microsoft 选择“虚拟网络”磁贴。 在“虚拟网络”页面上选择“创建” 。

  3. 在“创建虚拟网络”页面上,在“基本信息”选项卡中输入以下信息 :

    1. 在“项目详细信息”下,选择相应的 Azure 订阅,以及之前创建的资源组,例如“SQL-HA-RG” 。
    2. 在“实例详细信息”下,提供虚拟网络的名称(例如“SQLHAVNET”),然后从下拉列表中选择与资源组相同的区域 。

    选择之前创建的资源组,然后提供虚拟网络的名称(例如“SQLHAVNET”)

  4. 在“IP 地址”选项卡上选择默认子网以打开“编辑子网”页面 。 将名称更改为“DC-subnet”以表示域控制器子网。 选择“保存” 。

    在“IP 地址”选项卡上,选择默认子网以打开“编辑子网”页。将名称更改为 DC-subnet 以表示域控制器子网。选择“保存”

  5. 选择“+ 添加子网”以为第一个 SQL Server VM 添加子网,并填写以下值:

    1. 为“子网名称”提供值,例如”SQL-subnet-1” 。
    2. 提供虚拟网络地址空间中的唯一子网地址范围。 例如,可以将 DC 子网地址范围的第三个八位字节数递增 1。
      • 例如,如果 DC-subnet 范围为 10.38.0.0/24,请输入 10.38.1.0/24 作为 SQL-subnet-1 的 IP 地址范围。
      • 同样,如果 DC-subnet IP 范围为 10.5.0.0/24,请为新子网输入 10.5.1.0/24
    3. 选择“添加”以添加新子网。

    为第一个子网(如 sql-subnet-1)命名,然后将第三个八位字节数递增 1,这样,如果 DC 子网 IP 地址为 10.5.0.0,则新子网应为 10.5.1.0

  6. 重复上一步,为具有名称(例如 SQL-subnet-2)的第二个 SQL Server VM 添加其他唯一子网范围。 可以再次迭代第三个八位字节数。

    • 例如,如果 DC-subnet IP 范围为 10.38.0.0/24,而 SQL-subnet-1 为 10.38.1.0/24,请为新子网输入 10.38.2.0/24
    • 同样,如果 DC-subnet IP 范围为 10.5.0.0/24,而 SQL-subnet-1 为 10.5.1.0/24,请为 SQL-subnet-2 输入 IP 地址范围 10.5.2.0/24

    为第而个子网(如 sql-subnet-2)命名,然后将第三个八位字节数递增 2,这样,如果 DC 子网 IP 地址为 10.38.0.0/24,则新子网应为 10.38.2.0/24

  7. 添加第二个子网后,请查看子网名称和范围(你的 IP 地址范围可能与图中不同)。 如果一切正常,请选择“查看 + 创建”,然后选择“创建”以创建新的虚拟网络。

    添加第二个子网后,请查看子网名称和范围,如图像示例(尽管 IP 地址可能不同)。如果一切正常,请选择“查看 + 创建”,然后选择“创建”以创建新的虚拟网络。

    Azure 返回到门户仪表板,并在创建好新网络时发出通知。

创建域控制器

网络和子网准备就绪后,可创建一台虚拟机(也可以针对高可用性选择创建两台虚拟机)并将其配置为域控制器。

创建 DC 虚拟机

要在 Azure 门户中创建域控制器 (DC) 虚拟机,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择“+ 创建”

    在资源组中创建新资源

  2. 在“市场”搜索框中搜索“Windows Server 2016 Datacenter”映像。

  3. 填写“创建虚拟机”页面上的值以创建自己的域控制器 VM(例如 DC-VM-1) 。 可以选择再创建一台 VM(例如 DC-VM-2),以提供 Active Directory 域服务的高可用性。 采用下表中的值创建 VM:

    字段
    订阅 订阅
    资源组 sql-ha-rg
    虚拟机名称 第一个域控制器:DC-VM-1。
    第二个域控制器 ad-DC-VM-2。
    区域 部署资源组和虚拟网络的位置。
    可用性选项 可用性区域
    对于不支持可用性区域的 Azure 区域,请改为使用可用性集。请创建新的可用性集,并将本教程中创建的所有 VM 放在该可用性集内。
    可用性区域 为 DC-VM-1 指定 1。
    为 DC-VM-2 指定 2。
    大小 D2s_v3(2 个 vCPU,8 GB RAM)
    用户名 DomainAdmin
    密码 Contoso!0000
    公共入站端口 “允许选定的端口”
    选择入站端口 RDP (3389)
    OS 磁盘类型 高级 SSD(本地冗余存储)
    虚拟网络 SQLHAVNET
    子网 DC-subnet
    公共 IP 与 VM 同名,例如 DC-VM-1 或 DC-VM-2
    NIC 网络安全组 基本
    公共入站端口 “允许选定的端口”
    选择入站端口 RDP (3389)
    启动诊断 使用托管存储帐户启用(推荐)。

    创建虚拟机并准备好使用时,Azure 会发出通知。

配置域控制器

DC 虚拟机准备就绪后,为 corp.contoso.com 配置域控制器。

要将 DC-VM-1 配置为域控制器,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择 DC-VM-1 虚拟机。

  2. 在“DC-VM-1”页面上,选择“连接”下载 RDP 文件以进行远程桌面访问,然后打开该文件 。

    连接到虚拟机

  3. 使用已配置的管理员帐户 (DomainAdmin) 和密码 (Contoso!0000) 连接 RDP 会话 。

  4. 打开“服务器管理器”仪表板(可能会默认打开)并选择“添加角色和功能” 。

    服务器管理器 - 添加角色

  5. 选择“下一步”,直到到达“服务器角色”部分。

  6. 选择“Active Directory 域服务”和“DNS 服务器”角色。 出现提示时,添加这些角色所需的任何其他功能。

    注意

    Windows 会警告你没有静态 IP 地址。 若要测试配置,请选择“继续”。 对于生产方案,请在 Azure 门户中将 IP 地址设置为静态,或使用 PowerShell 设置域控制器计算机的静态 IP 地址

    “添加角色”对话框

  7. 选择“下一步”,直到显示“确认”部分。 选中“必要时自动重启目标服务器”复选框。

  8. 选择“安装”。

  9. 功能安装完毕后,返回到“服务器管理器”仪表板。

  10. 选择左侧窗格中的新“AD DS”选项。

  11. 选择黄色警告栏上的“更多”链接。

    DNS 服务器 VM 上的 AD DS 对话框

  12. 在“所有服务器任务详细信息”对话框的“操作”栏中,选择“将此服务器提升为域控制器”。

  13. 在“Active Directory 域服务配置向导”中,使用以下值:

    Page 设置
    部署配置 添加新林
    根域名 = corp.contoso.com
    域控制器选项 DSRM 密码 = Contoso!0000
    确认密码 = Contoso!0000
  14. 选择“下一步”以浏览向导中的其他页。 在“必备项检查”页上,确认看到以下消息:“所有先决条件检查都成功通过”。 查看任何适用的警告消息,但可继续安装。

  15. 选择“安装”。 DC-VM-1 虚拟机会自动重启。

标识 DNS IP 地址

为 DNS 使用主域控制器。 为此,请标识用于主域控制器的 VM 的专用 IP 地址。

要在Azure 门户中标识 VM 的专用 IP 地址,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择主域控制器 DC-VM-1。
  2. 在“DC-VM-1”页上,在“设置”窗格中选中“网络” 。
  3. 记下“NIC 专用 IP”地址。 使用此 IP 地址作为其他虚拟机的 DNS 服务器。 在示例图像中,专用 IP 地址为 10.38.0.4。

在 DC-VM-1 页面上,在“设置”窗格中选择“网络”,然后记下 NIC 专用 IP 地址。使用此 IP 地址作为 DNS 服务器。

配置虚拟网络 DNS

在创建第一个域控制器并启用 DNS 后,将虚拟网络配置为将此 VM 用作 DNS。

要配置虚拟网络以使用 DNS,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择虚拟网络(例如 SQLHAVNET)。
  2. 选择“设置”窗格下的“DNS 服务器”,然后选择“自定义”。
  3. 在“IP 地址”字段中输入之前标识的 专用 IP 地址,例如 10.38.0.4
  4. 选择“保存” 。

选择“设置”窗格下的“DNS 服务器”,然后选择“自定义”。在“IP 地址”字段中输入前面标识的专用 IP 地址,例如 10.38.0.4。

配置第二个域控制器

在主域控制器重启后,可以选择配置第二个域控制器,以便实现高可用性。 如果不想配置第二个域控制器,请跳过此步骤。 但是,建议在生产环境中准备第二个域控制器。

设置首选 DNS 服务器地址,加入域,然后配置辅助域控制器。

设置首选 DNS 服务器地址

首选 DNS 服务器地址不应直接在 VM 中更新,应从 Azure 门户、Powershell 或 Azure CLI 进行编辑。 在 Azure 门户内执行以下步骤以进行更改:

  1. 登录到 Azure 门户

  2. 在门户顶部的搜索框中,输入“网络接口”。 在搜索结果中,选择“网络接口”。

  3. 从列表中选择要查看或更改设置的第二个域控制器的网络接口。

  4. 在“设置”中,选择“DNS 服务器”。

  5. 选择以下任一项:

    • 从虚拟网络继承:选择此选项可继承针对网络接口分配到的虚拟网络定义的 DNS 服务器设置。 这将自动继承主域控制器作为 DNS 服务器。

    • 自定义:可自行配置 DNS 服务器来解析多个虚拟网络中的名称。 输入要用作 DNS 服务器的服务器的 IP 地址。 指定的 DNS 服务器地址仅分配到此网络接口,并会替代该网络接口分配到的虚拟网络的任何 DNS 设置。 如果选择“自定义”,则输入主域控制器的 IP 地址,例如 10.38.0.4

  6. 选择“保存”。

  7. 如果使用自定义 DNS 服务器,请返回到 Azure 门户中的虚拟机并重启 VM。

加入域

接下来,请加入 corp.contoso.com 域。 为此,请执行下列步骤:

  1. 使用 BUILTIN\DomainAdmin 帐户远程连接到虚拟机。 此帐户与创建域控制器虚拟机时使用的帐户相同。
  2. 打开“服务器管理器”,并选择“本地服务器”。
  3. 选择“WORKGROUP”。
  4. 在“计算机名”部分中,选择“更改”。
  5. 选中“域”复选框并在文本框中键入“corp.contoso.com” 。 选择“确定”。
  6. 在“Windows 安全性”弹出对话框中,指定默认域管理员帐户 (CORP\DomainAdmin) 和密码 (Contoso!0000) 的凭据。
  7. 在看到“欢迎使用 corp.contoso.com 域”消息时,选择“确定”。
  8. 选择“关闭”,然后选择弹出对话框中的“立即重启”。

配置域控制器

在将服务器加入域后,可以将其配置为第二个域控制器。 为此,请执行下列步骤:

  1. 如果尚未连接,请打开到辅助域控制器的 RDP 会话,并打开“服务器管理器”仪表板(可能会默认打开)。

  2. 选择仪表板上的“添加角色和功能”链接。

    服务器管理器 - 添加角色

  3. 选择“下一步”,直到到达“服务器角色”部分。

  4. 选择“Active Directory 域服务”和“DNS 服务器”角色。 出现提示时,添加这些角色所需的任何其他功能。

  5. 功能安装完毕后,返回到“服务器管理器”仪表板。

  6. 选择左侧窗格中的新“AD DS”选项。

  7. 选择黄色警告栏上的“更多”链接。

  8. 在“所有服务器任务详细信息”对话框的“操作”栏中,选择“将此服务器提升为域控制器”。

  9. 在“部署配置”下面,选择“将域控制器添加到现有域”。

  10. 单击“选择”。

  11. 使用管理员帐户 (CORP.CONTOSO.COM\domainadmin) 和密码 (Contoso!0000) 进行连接。

  12. 在“从林中选择域”中,选择你的域,然后选择“确定”。

  13. 在“域控制器选项”中,使用默认值并设置 DSRM 密码。

    注意

    “DNS 选项”页可能会警告你无法创建此 DNS 服务器的委托。 在非生产环境中可以忽略此警告。

  14. 选择“下一步”,直到出现“先决条件检查”对话框。 然后选择“安装”。

在服务器完成配置更改后,重启服务器。

将第二个 DC IP 地址添加到 DNS

在配置第二个域控制器后,按照与之前相同的步骤来标识 VM 的专用 IP 地址,并在资源组的虚拟网络中添加专用 IP 地址作为辅助自定义 DNS 服务器。 在 Azure 门户中添加辅助 DNS 服务器可以实现 DNS 服务冗余。

配置域帐户

在配置域控制器并已在 Azure 门户中设置 DNS 服务器后,为安装 SQL Server 的用户和 SQL Server 服务帐户创建域帐户。

总共配置两个帐户,一个是安装帐户,另一个是两台 SQL Server VM 的服务帐户。 作为示例,请采用下表中的值配置帐户:

帐户 VM 完整域名 说明
安装 推送、请求和匿名 CORP\Install 通过此帐户登录到任一 VM 以配置群集和可用性组。
SQLSvc 两者 Corp\SQLSvc 将该帐户用于两台 SQL Server VM 上的 SQL Server 服务。

按照以下步骤创建各个帐户:

  1. 连接主域控制器计算机,例如 DC-VM-1。

  2. 在“服务器管理器”中,选择“工具”,然后选择“Active Directory 管理中心”。

  3. 在左窗格中选择“corp (local)”。

  4. 在右侧的“任务”窗格中,选择“新建”,然后选择“用户”。

  5. 输入新用户帐户并设置复杂密码。 对于非生产环境,请将用户帐户设置为永不过期。

    Active Directory 管理中心

  6. 选择“确定”以创建用户。

  7. 重复这些步骤以创建所有帐户。

授予安装帐户权限

创建帐户后,向安装帐户授予所需的域权限,以便该帐户能够在 AD 中创建对象。

若要向安装帐户授予权限,请执行以下步骤:

  1. 从“服务器管理器”打开“Active Directory 管理中心”(如果它尚未打开) 。

  2. 在左窗格中选择“corp (local)”。

  3. 在右侧的“任务”窗格中,验证下拉菜单中是否有“corp (local)”,然后选择下面的“属性”。

    CORP 用户属性

  4. 选择“扩展”,然后选择“安全性”选项卡上的“高级”按钮。

  5. 在“corp 的高级安全设置”对话框中,选择“添加”。

  6. 选择“选择主体”,搜索“CORP\Install”,并选择“确定”。

  7. 勾选“读取全部属性”和“创建计算机对象”旁边的复选框 。

    Corp 用户权限

  8. 选择“确定”,然后再选择“确定”。 关闭“corp”属性窗口。

现已完成 Active Directory 和用户对象的配置,可以创建自己的 SQL Server VM。

创建 SQL Server VM

配置 AD、DNS 和用户帐户后,即可创建 SQL Server VM。 为简单起见,请使用市场中的 SQL Server VM 映像。

但是,在创建 SQL Server VM 之前,请考虑以下设计决策:

可用性 - 可用性区域

为实现最高级别的冗余、复原能力和可用性,请将 VM 部署在单独的可用性区域中。 可用性区域是 Azure 区域中独特的物理位置。 每个局部区域由一个或多个数据中心组成,这些数据中心配置了独立的电源、散热系统和网络。 对于尚不支持可用性的 Azure 可用性区域,请改为使用可用性集。 请将所有 VM 放在同一可用性集内。

存储:Azure 托管磁盘

将 Azure 托管磁盘用作虚拟机存储。 Azure 建议将托管磁盘用于 SQL Server 虚拟机,因为它们会在后台处理存储。 有关详细信息,请参阅 Azure 托管磁盘概述

网络:生产环境中的专用 IP 地址

本教程为虚拟机使用公共 IP 地址。 使用公共 IP 地址可以通过 Internet 直接远程连接到虚拟机,从而使配置过程更加轻松。 在生产环境中,Azure 建议仅使用专用 IP 地址,以减少 SQL Server 实例 VM 资源的漏洞涉及面。

网络 - 每个服务器一个 NIC

每个服务器(群集节点)使用单个 NIC。 Azure 网络具有物理冗余,因此在部署到 Azure 虚拟机的故障转移群集上不需要额外的 NIC。 群集验证报告上有警告,提示你只能在一个网络上访问节点。 故障转移群集位于 Azure 虚拟机上时,可以忽略此警告。

若要创建 VM,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择“+ 创建”。
  2. 在“市场”中搜索并选择“Windows Server 2016 上的 SQL Server 2016 SP2 Enterprise”映像。

使用下表填写“创建虚拟机”页上的值,以创建这两台 SQL Server VM(例如“SQL-VM-1”和“SQL-VM-2”),你的 IP 地址可能与表中的示例不同 :

配置 SQL-VM-1 SQL-VM-2
库映像 Windows Server 2016 上的 SQL Server 2016 SP2 Enterprise Windows Server 2016 上的 SQL Server 2016 SP2 Enterprise
VM 基本信息 名称 = SQL-VM-1
用户名 = DomainAdmin
密码 = Contoso!0000
订阅 = 自己的订阅
资源组 = SQL-HA-RG
位置 = 你的 Azure 位置
名称 = SQL-VM-2
用户名 = DomainAdmin
密码 = Contoso!0000
订阅 = 自己的订阅
资源组 = SQL-HA-RG
位置 = 你的 Azure 位置
VM 大小 大小 = E2ds_v4(2 个 vCPU, 16 GB RAM)
大小 = E2ds_v4(2 个 vCPU,16 GB RAM)
VM 设置 可用性选项 = 可用性区域
可用性区域 = 1
公共入站端口 = 允许所选端口
选择入站端口 = RDP (3389)
OS 磁盘类型 = 高级 SSD(本地冗余存储)
虚拟网络 = SQLHAVNET
子网 = SQL-subnet-1(10.38.1.0/24)
公共 IP 地址 = 自动生成。
NIC 网络安全组 = Basic
公共入站端口 = 允许所选端口
选择入站端口 = RDP (3389)
启动诊断 = 使用托管存储帐户启用(推荐)
可用性选项 = 可用性区域
可用性区域 = 2
公共入站端口 = 允许所选端口
选择入站端口 = RDP (3389)
OS 磁盘类型 = 高级 SSD(本地冗余存储)
虚拟网络 = SQLHAVNET
子网 = SQL-subnet-2(10.38.2.0/24)
公共 IP 地址 = 自动生成。
NIC 网络安全组 = Basic
公共入站端口 = 允许所选端口
选择入站端口 = RDP (3389)
启动诊断 = 使用托管存储帐户启用(推荐)
SQL Server 设置 SQL 连接 = 专用(虚拟网络内部)
端口 = 1433
SQL 身份验证 = 禁用
Azure Key Vault 集成 = 禁用
存储优化 = 事务处理
SQL 数据 = 1024 GiB,5000 IOPS,200 MB/s
SQL 日志 = 1024 GiB,5000 IOPS,200 MB/s
SQL TempDb = 使用本地 SSD 驱动器
自动修补 = 星期日 2:00
自动备份 = 禁用
SQL 连接 = 专用(虚拟网络内部)
端口 = 1433
SQL 身份验证 = 禁用
Azure Key Vault 集成 = 禁用
存储优化 = 事务处理
SQL 数据 = 1024 GiB,5000 IOPS,200 MB/s
SQL 日志 = 1024 GiB,5000 IOPS,200 MB/s
SQL TempDb = 使用本地 SSD 驱动器
自动修补 = 星期日 2:00
自动备份 = 禁用

注意

这些建议的计算机大小仅用于测试 Azure 虚拟机中的可用性组。 若要查看关于优化生产工作负荷的信息,请参阅 Azure VM 上针对 SQL Server 性能的最佳做法中的大小建议。

配置 SQL Server VM

VM 创建完成后,请配置 SQL Server VM:为每台 VM 添加辅助 IP 地址,并将它们加入域。

将辅助 IP 添加到 SQL Server VM

在多子网环境中,将辅助 IP 地址分配给每个 SQL Server VM 以用于可用性组侦听程序,对于 Windows Server 2016 及更早版本,为群集 IP 地址分配每台 SQL Server VM 的辅助 IP 地址。 这样做消除了使用 Azure 负载均衡器的需要,以及位于单个子网环境中的要求。

在 Windows Server 2016 及更早的版本中,需要为每个 SQL Server VM 分配一个额外的辅助 IP 地址,用于 Windows 群集 IP,因为群集使用群集网络名称而不是 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,请执行以下步骤:

  1. Azure 门户中转到资源组,并选择第一个 SQL Server VM,例如 SQL-VM-1。

  2. 在“设置”窗格中选择“网络”,然后选择“网络接口”:

    在“设置”窗格中选择“网络”,然后选择“网络接口”

  3. 在“网络接口”页上,在“设置”窗格中选择“IP 配置”,然后选择“+ 添加”以添加其他 IP 地址:

    IP 配置

  4. 在“添加 IP 配置”页上,执行以下操作:

    1. 指定 Windows 群集 IP 的名称,例如为 Windows 2016 及更早版本指定 windows-cluster-ip。 如果使用 Windows Server 2019 或更高版本,请跳过此步骤。
    2. 将“分配”设置为“静态”。
    3. 输入与 SQL Server VM (SQL-VM-1) 位于同一子网 (SQL-subnet-1) 中的未使用的 IP 地址,例如 10.38.1.10
    4. 将“公共 IP 地址”保留为默认值“解除关联”。
    5. 选择“确定”完成 IP 配置的添加。

    通过输入第一个 SQL Server VM 的子网中的已使用 IP 地址来添加群集 IP

  5. 再次选择“+ 添加”以便为可用性组侦听程序(其名称类似 availability-group-listener)配置其他 IP 地址,并再次指定 SQL-subnet-1 中未使用的 IP 地址,例如 10.38.1.11

    再次选择“+ 添加”以便为可用性组侦听程序(其名称类似 availability-group-listener)配置其他 IP 地址,并再次使用 SQL-subnet-1 中未使用的 IP 地址,例如 10.31.1.11

  6. 为第二个 SQL Server VM(例如 SQL-VM-2)重复上述步骤。 分配位于 SQL-subnet-2 中的两个未使用的辅助 IP 地址。 使用下表中的值添加 IP 配置:

    字段 输入 输入
    名称 windows-cluster-ip availability-group-listener
    Allocation 静态 静态
    IP 地址 10.38.2.10 10.38.2.11

现在,你已准备好加入 corp.contoso.com。

将服务器加入域

在将两个辅助 IP 地址分配到这两个 VM SQL Server 后,请将各个 SQL Server VM 加入corp.contoso.com 域。

要加入 corp.contoso.com 域,请对 SQL Server VM 执行与使用辅助域控制器加入域时相同的步骤。

等待各个 SQL Server VM 重启,然后可以添加帐户。

添加帐户

在每个 VM 上以管理员身份添加安装帐户,向 SQL Server 中的安装帐户和本地帐户授予权限,并更新 SQL Server 服务帐户。

添加安装帐户

这两个 SQL Server VM 都加入域后,将“CORP\Install”添加为本地管理员组的成员。

提示

请确保使用域管理员帐户登录。 在前面的步骤中,使用的是 BUILTIN 管理员帐户。 既然服务器已加入域,就请使用域帐户。 在 RDP 会话中,指定“域\用户名”,例如“CORP\DomainAdmin” 。

要将帐户添加为管理员,请执行以下步骤:

  1. 等待 VM 重启,并从第一个 SQL Server VM 重新启动 RDP 文件,以使用 CORP\DomainAdmin 帐户登录到 SQL-VM-1。
  2. 在“服务器管理器”中,选择“工具”,然后选择“计算机管理”。
  3. 在“计算机管理”窗口中,展开“本地用户和组”,并选择“组”。
  4. 双击“管理员”组。
  5. 在“管理员属性”对话框中,选择“添加”按钮。
  6. 输入用户 CORP\Install,然后选择“确定”。
  7. 选择“确定”以关闭“管理员属性”对话框。
  8. 对 SQL-VM-2 重复上述步骤。

将帐户添加到 sysadmin

用于配置可用性组的安装帐户 (CORP\install) 必须属于各个 SQL Server VM 上的 sysadmin 固定服务器角色。

若要向安装帐户授予 sysadmin 权限,请执行以下步骤:

  1. 使用 <MachineName>\DomainAdmin 帐户通过远程桌面协议 (RDP) 连接到服务器,例如 SQL-VM-1\DomainAdmin
  2. 打开 SQL Server Management Studio,并连接到 SQL Server 的本地实例。
  3. 在“对象资源管理器”中,选择“安全性”。
  4. 右键单击“登录名”。 选择“新建登录名”。
  5. 在“登录名 - 新建”中,选择“搜索”。
  6. 选择“位置”。
  7. 输入域管理员的网络凭据。
  8. 使用安装帐户 (CORP\install)。
  9. 将该登录名设置为 sysadmin 固定服务器角色的成员。
  10. 选择“确定” 。
  11. 对第二个 SQL Server VM(例如 SQL-VM-2)重复这些步骤,使用相关计算机名称帐户(例如 SQL-VM-2\DomainAdmin)进行连接。

添加系统帐户

在更高版本的 SQL Server 中,[NT AUTHORITY\SYSTEM] 帐户在默认情况下不具备 SQL Server 权限,所以必须手动授予。

若要添加 [NT AUTHORITY\SYSTEM] 并授予适当的权限,请执行以下步骤:

  1. 使用 <MachineName>\DomainAdmin 帐户(例如 SQL-VM-1\DomainAdmin)通过远程桌面协议 (RDP) 连接到第一个 SQL Server VM。

  2. 打开 SQL Server Management Studio,并连接到 SQL Server 的本地实例。

  3. 通过使用以下 Transact-SQL (T-SQL) 命令在每个 SQL Server 实例上创建 [NT AUTHORITY\SYSTEM] 帐户:

    USE [master]
    GO
    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    GO 
    
  4. 在每个 SQL Server 实例上向 [NT AUTHORITY\SYSTEM] 授予以下权限:

    • ALTER ANY AVAILABILITY GROUP
    • CONNECT SQL
    • VIEW SERVER STATE

    要授予这些权限,请使用以下 Transact-SQL (T-SQL) 命令:

    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 
    
  5. 对第二个 SQL Server VM(例如 SQL-VM-2)重复这些步骤,使用相关计算机名称帐户(例如 SQL-VM-2\DomainAdmin)进行连接。

设置 SQL Server 服务帐户

每个 VM 上的 SQL Server 服务都需要使用专用的域帐号。 使用前面创建的域帐户:Corp\SQLSvc 用于 SQL-VM-1 和 SQL-VM-2。

若要设置服务帐户,请执行以下步骤:

  1. 使用 <MachineName>\DomainAdmin 帐户(例如 SQL-VM-1\DomainAdmin)通过远程桌面协议 (RDP) 连接到第一个 SQL Server VM。
  2. 打开“SQL Server 配置管理器”。
  3. 右键单击 SQL Server 服务,然后选择“属性”。
  4. 提供帐户 (Corp\SQLSvc) 和密码。
  5. 选择“应用”以提交更改并重启 SQL Server 服务。
  6. 在其他 SQL Server VM (SQL-VM-1) 上重复这些步骤,使用计算机域帐户(例如 SQL-VM-2\DomainAdmin)登录,并提供服务帐户 (Corp\SQLSvc)。

创建 Azure 存储帐户

要部署双节点 Windows Server 故障转移群集,需要第三个成员来建立仲裁。 在 Azure VM 上,云见证是推荐的仲裁选项。 若要配置云见证,需要有一个 Azure 存储帐户。 有关详细信息,请参阅部署故障转移群集的云见证

若要在门户中创建 Azure 存储帐户,请执行以下操作:

  1. 在门户中打开 SQL-HA-RG 资源组,并选择“+ 创建”

  2. 搜索“存储帐户”。

  3. 选择“存储帐户”,然后选择“创建”,并配置以下值 :

    1. 选择订阅并选择资源组 SQL-HA-RG。
    2. 为存储帐户输入“存储帐户名称”。 存储帐户名称必须为 3 到 24 个字符,并且只能包含数字和小写字母。 存储帐户名称在 Azure 中也必须是唯一的。
    3. 选择自己的区域。
    4. 在“性能”处选择“标准:建议用于大多数方案(常规用途 v2 帐户)” 。 云见证不支持 Azure 高级存储。
    5. 对于“冗余”,请选择“本地冗余存储(LRS)”。故障转移群集使用 blob 文件作为仲裁点,这在读取数据时需要一些一致性保证。 因此,对于“复制”类型,必须选择“本地冗余存储”。
    6. 选择“查看 + 创建”

配置防火墙

可用性组功能依赖于通过以下 TCP 端口的流量:

  • SQL Server VM:端口 1433,用于 SQL Server 的默认实例。
  • 数据库镜像终结点: 任何可用端口。 示例中经常使用 5022。

在两个 SQL Server VM 上打开这些防火墙端口。 打开端口的方法取决于采用的防火墙解决方案,并且可能与本部分提供的 Windows 防火墙示例有所不同。

若要在 Windows 防火墙上这些端口,请执行以下步骤:

  1. 在第一个 SQL Server 的“开始”屏幕中,启动“高级安全 Windows 防火墙”。

  2. 在左窗格中,选择“入站规则”。 在右窗格上,选择“新建规则”。

  3. 对于“规则类型”,请选择“端口”。

  4. 对于端口,请指定“TCP”,并键入相应的端口号。 请参阅以下示例:

    SQL 防火墙

  5. 选择“下一页”。

  6. 在“操作”页中,选择“允许连接”,然后选择“下一步” 。

  7. 在“配置文件”页上,接受默认设置,然后选择“下一步”。

  8. 在“名称”页的“名称”文本框中指定一个规则名称(如 SQL Inbound),并选择“完成”。

  9. 在另一个 SQL Server VM 上重复上述步骤。

后续步骤

配置先决条件后,请开始在多个子网中配置可用性组

若要了解更多信息,请参阅以下文章: