准备 SQL Server 2016 先决条件 - Azure SQL 托管实例链接

适用于:Azure SQL 托管实例

本文介绍如何在具有 Windows Server 故障转移群集 (WSFC) 的情况下在 SQL Server 2016 上启用 Always On,这是为托管实例链接准备环境的额外步骤。

本指南中所述的额外步骤仅适用于 SQL Server 2016,因为如果主机 Windows OS 计算机上没有 Windows Server 故障转移群集,则此版本的 SQL Server 无法启用可用性组。 在 SQL Server 2016 上启用可用性组的最低要求是创建本地单节点(单台计算机)群集。 不需要多个节点,因此不需要其他 SQL Server。 但是,链接还可支持多节点群集配置作为可选配置,以防任何 SQL Server 版本 (2016-2022) 具有这种类型的环境。

在 Windows Server 上安装 WSFC 模块

在托管 SQL Server 的 Windows Server 上以管理员身份运行以下 PowerShell 命令,来安装 Windows Server 故障转移群集模块。

# Run as Administrator in PowerShell on Windows Server OS hosting the SQL Server
# This installs WSFC module on the host OS
Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools

或者,也可使用服务器管理器通过图形用户界面安装 WSFC 模块。

创建单节点群集

下一步是在托管 SQL Server 的 Windows OS 上创建群集。 这可使用下面两种方法来实现:

  1. 简单 PowerShell 命令 - 下面列出了某些限制,或者
  2. 故障转移群集管理器应用程序 - 提供完整的配置灵活性。

这两种方法都在下面进行了介绍。

使用 PowerShell 创建群集

要创建本地单节点群集,最简单的方法是在托管 SQL Server 的 Windows Server OS 上执行简单的 PowerShell 命令。 此方法具有限制,因为它适用于未加入域中的单服务器计算机。 如果使用此方法创建群集,则无法使用图形用户界面故障转移群集管理器对其进行管理。

如果需要在计算机上快速创建单节点群集,请执行下面提供的 PowerShell 命令。 将:

  • 脚本中的 <ClusterName> 替换为所需的群集名称。 名称应为单个单词,不带空格或特殊字符(例如 WSFCluster
# Run as Administrator in PowerShell on Windows Server OS hosting the SQL Server
# This creates a single-node cluster on the host OS, not joined in the domain
New-Cluster -Name "<ClusterName>" -AdministrativeAccessPoint None -Verbose -Force

如果将来需要移除群集,出于某种原因,只能使用 PowerShell 命令 Remove-Cluster 完成此操作。

如果已使用此方法成功创建群集,请跳转到在 WSFC SQL Server 中授予权限

使用故障转移群集管理器应用程序创建群集

或者,在托管 SQL Server 的 Windows OS 上创建群集的更灵活方法是使用故障转移群集管理器应用程序通过图形用户界面操作。 请执行下列步骤:

  1. 通过从命令提示符执行 hostname 命令来查找 Windows Server 名称。

  2. 请记录此命令的输出(下图中标记的示例输出),或者将此窗口保持在打开状态,因为将在后面某一步骤中使用此名称。

    Screenshot of finding out Windows Server hostname through the command prompt.

  3. 在键盘上按 Windows 键 + R 打开故障转移群集管理器,键入 %windir%\system32\Cluadmin.msc,然后按下“确定”。

    • 或者,可打开服务器管理器,在右上角选择“工具”,然后选择“故障转移群集管理器”来访问故障转移群集管理器。
  4. 在 Windows 群集管理器中,按下“创建群集”选项。

    Screenshot of accessing the create cluster option.

  5. 在“开始之前”屏幕上,按下“下一步”。

  6. 在“选择服务器”屏幕上,输入 Windows Server 名称(键入或复制之前执行的 hostname 命令的输出),按下“添加”,然后按下“下一步”。

    Screenshot of entering Windows Server hostname when creating WSFC.

  7. 在“验证警告”屏幕上,继续选中“是”,再按下“下一步”。

  8. 在“开始之前”屏幕上,单击“下一步”。

  9. 在“测试选项”屏幕上,继续选中“运行所有测试”,然后单击“下一步”。

  10. 在“确认”屏幕上,单击“下一步”。

  11. 在“验证”屏幕上,等待验证完成。

  12. 在“摘要”屏幕中,单击“完成”。

  13. 在“管理群集的访问点”屏幕上,键入你的群集名称(例如 WSFCluster),然后按下“下一步”。

    Screenshot of entering the cluster name.

  14. 在“确认”屏幕上,按下“下一步”。

  15. 在“新建群集”屏幕上,等待创建完成。

  16. 在“摘要”屏幕中,单击“完成”。

通过上述步骤,你已创建本地单节点 Windows Server 故障转移群集。

验证

若要验证是否已创建单节点 WSFC 群集,请执行以下步骤:

  1. 在故障转移群集管理器中,单击左侧的群集名称,然后单击 > 箭头将其展开。

    • 如果在创建故障转移群集管理器之后,先关闭再重新打开该管理器,那么群集名称可能不会显示在左侧(请参阅下图)。
  2. 单击右侧的“连接到群集”,选择连接到 <Cluster on this server...>,然后单击“确定”。

  3. 按下“节点”。

    Screenshot of validating the WSFC creation.

    • 你应该能够看到已添加到此群集的本地计算机单节点,其状态为 Up。 此验证确认 WSFC 配置已成功完成。 现在可关闭“故障转移群集管理器”工具。

接下来,按照以下步骤验证是否可在 SQL Server 上启用 Always On 选项:

  1. 打开 SQL Server 配置管理器

  2. 双击 SQL Server

  3. 按下“Always On 高可用性”选项卡

    Screenshot of validating that Always On option is enabled in SQL Server.

    • 你应该能够查看已创建的 WSFC 的名称,并且应该能够选中“启用 Always On 可用性组”选项。 此验证确认已成功完成配置。

在 WSFC SQL Server 中授予权限

重要

必须向 Windows OS 系统帐户授予 SQL Server 2016 中的权限。 这些权限使 SQL Server 能够与 Windows Server 故障转移群集配合使用。 如果没有这些权限,那么在 SQL Server 2016 上创建可用性组将失败。

接下来,向 Windows 主机 OS 系统帐户 NT Authority \ System 授予对 SQL Server 的权限,以便使用 WSFC 在 SQL Server 中创建可用性组。 在 SQL Server 上执行以下 T-SQL 脚本:

  1. 使用客户端(如 SSMS)登录到 SQL Server
  2. 执行以下 T-SQL 脚本
-- Run on SQL Server
-- Grant permissions to NT Authority \ System to create AG on this SQL Server
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

后续步骤