安装故障转移群集前的准备工作

适用于SQL Server

安装 SQL Server 故障转移群集之前,必须选择运行 SQL Server 的硬件和操作系统。 还必须配置 Windows Server 故障转移群集 (WSFC),检查网络和安全性,并了解有关要在故障转移群集上运行的其他软件的注意事项。

如果 Windows 群集具有本地磁盘驱动器,且同一驱动器号在一个或多个群集节点上作为共享驱动器使用,则不能在该驱动器上安装 SQL Server。 此限制适用于属于 Windows 故障转移群集实例的服务器上的 SQL Server 故障转移群集实例和单独的实例。

你可能还需要通过查看以下文章来了解与 SQL Server 故障转移群集概念、功能和任务有关的更多信息。

项目说明 项目
描述 SQL Server 故障转移群集概念并提供指向关联内容和任务的链接。 AlwaysOn 故障转移群集实例 (SQL Server)
描述 SQL Server 故障转移策略概念,并提供指向配置故障转移策略以满足您的组织要求的链接。 Failover Policy for Failover Cluster Instances
描述如何维护您的现有 SQL Server 故障转移群集。 故障转移群集实例管理和维护
介绍如何在 Windows Server 故障转移群集 (WSFC) 上安装 Analysis Services 。 如何安装群集 SQL Server Analysis Services

最佳做法

查看SQL Server 2019SQL Server 2022 的发行说明。

安装必备软件。 在运行安装程序以安装或升级之前,请首先安装下列必备软件以缩短安装时间。 可以在每个故障转移群集节点上安装必备软件,然后在运行安装程序之前将这些节点重新启动一次。

  • Windows PowerShell 不再由 SQL Server 安装程序安装。 Windows PowerShell 是安装 SQL Server 数据库引擎组件和 SQL Server Management Studio 的必备组件。 如果你的计算机上没有 Windows PowerShell,你可以按照 Windows Management Framework 页上的说明启用它。

  • SQL Server 安装程序不再安装 .NET Framework 3.5 SP1,但是在较旧版本的 Windows 操作系统上安装 SQL Server 时可能需要该软件。 有关详细信息,请参阅 SQL Server 2019:硬件和软件要求

  • Microsoft 更新包:为避免在安装过程中由于安装 .NET Framework 4 而重启计算机,SQL Server 安装程序要求在计算机上安装 Microsoft 更新。 在受支持的 Windows 版本上安装 SQL Server 2014 (12.x) 及更高版本时,此更新已包含在内。 如果在更低版本的 Windows 操作系统上安装,则从 Windows Vista 和 Windows Server 2008 上的 Microsoft Update for .NET Framework 4.0上下载它。

  • .NET Framework 4:安装程序在群集化的操作系统上安装 .NET Framework 4。 为了缩短安装时间,您可以考虑在您运行安装程序之前安装 .NET Framework 4。

  • SQL Server 安装程序支持文件。 可以通过运行位于安装介质上的 SqlSupport.msi 来安装这些文件。

确认 WSFC 群集上未安装防病毒软件。 有关详细信息,请参阅 Microsoft 知识库文章 Antivirus software may cause problems with cluster services(防病毒软件可能会导致群集服务出现问题)

对故障转移群集安装的群集组命名时,群集组名称中不能包含以下任何字符:

  • 小于运算符 (<)

  • 大于运算符 (>)

  • 双引号 (")

  • 单引号 (')

  • 与符号 (&)

    此外还要确认现有的群集组名称不包含不受支持的字符。

确保所有群集节点配置相同,包括 COM+、磁盘驱动器号和 Administrators 组中的用户。

确认已清除所有节点中的系统日志,并再次查看了系统日志。 确保在继续操作之前,日志中没有任何错误消息。

在安装或更新 SQL Server 故障转移群集之前,应禁用在安装过程中可能会使用 SQL Server 组件的所有应用程序和服务,但应使磁盘资源保持联机状态。

SQL Server 安装程序自动设置 SQL Server 群集组与将处于故障转移群集中的磁盘之间的依赖关系。 因此不要在运行安装程序之前设置磁盘的依赖关系。

  • 在 SQL Server 故障转移群集安装期间,将为 SQL Server 网络资源名称创建计算机对象(Active Directory 计算机帐户)。 在 Windows 2008 Server 群集中,群集名称帐户(群集自身的计算机帐户)需要有权创建计算机对象。 有关详细信息,请参阅 在 Active Directory 中配置帐户

  • 如果要使用 SMB 文件共享作为存储选项,则 SQL Server 安装程序帐户必须拥有对文件服务器的 SeSecurityPrivilege 权限。 为此,请使用文件服务器上的“本地安全策略”控制台将 SQL Server 安装帐户添加到“管理审核和安全日志”权限中。

验证自己的硬件解决方案

如果群集解决方案中包含地理位置分散的群集节点,则还必须验证网络延迟和共享磁盘支持之类的附加项。

确认未对要安装 SQL Server 的磁盘进行压缩或加密。 如果尝试将 SQL Server 安装到压缩驱动器或加密驱动器上, SQL Server 安装程序将失败。

Windows Server 也支持 SAN 配置(从 Windows Server 2008 和 Windows Server 2008 R2 的 Advanced Server 和 Datacenter Server 版开始)。 Windows 目录和硬件兼容性列表中的“群集/多群集设备”类别中列出了一组支持 SAN 的存储设备,这些设备已经过测试,可作为 SAN 存储单元并且附加多个 WSFC 群集。 在找到经过验证的组件后请运行群集验证。

还支持使用 SMB 文件共享来安装数据文件。 有关详细信息,请参阅 Storage Types for Data Files

警告

如果您要将 Windows 文件服务器用作 SMB 文件共享存储,则 SQL Server 安装帐户必须拥有对文件服务器的 SeSecurityPrivilege 权限。 为此,请使用文件服务器上的“本地安全策略”控制台将 SQL Server 安装帐户添加到“管理审核和安全日志”权限中。

如果要使用 Windows 文件服务器之外的 SMB 文件共享存储,请就文件服务器端的等效设置咨询存储供应商。

SQL Server 支持装入点。 通过已装入卷或装入点可以使用单个驱动器号来引用多个磁盘或卷。 如果您有一个驱动器号 D: 引用常规磁盘或卷,则您可以在附加磁盘或卷不需要拥有各自的驱动器号的情况下,在驱动器号 D: 下连接或“装入”附加磁盘或卷作为目录。

  • SQL Server 安装程序要求已装入驱动器的基准驱动器具有关联驱动器号。 如果已装载驱动器的基础驱动器没有关联的驱动器号,安装程序将向该驱动器分配下一个可用的驱动器号。

    注意

    如果所有驱动器号都已分配,则安装程序会失败。

  • SQL Server 不支持对 SQL Server 数据库使用装载卷/装入点根目录。 有关详细信息,请查看在 SQL Server 安装程序中使用卷装入点时发生权限错误

  • SQL Server 故障转移群集的其他装入点注意事项:

    • SQL Server 安装程序要求已装入驱动器的基准驱动器具有关联驱动器号。 对于故障转移群集安装,此基准驱动器必须是群集驱动器。 在此版本中,不支持卷 GUID。

    • 不能在故障转移群集实例之间共享具有驱动器号的基驱动器。 这是对故障转移群集的正常限制,而不是对独立的多实例服务器的限制。

    • SQL Server 的群集安装数取决于可用驱动器号的数量。 如果只对操作系统使用一个驱动器号,而所有其他驱动器号均可用作正常群集驱动器或群集驱动器宿主装入点,则每个故障转移群集最多只能有 25 个 SQL Server 实例。

      提示

      通过使用 SMB 文件共享选项可以超过 25 个实例的限制。 如果您使用 SMB 文件共享作为存储选项,则可以安装最多 50 个 SQL Server 故障转移群集实例。

    • 不支持在安装其他驱动器后对驱动器进行格式化。

    • SQL Server 2005 及更高版本中的 SQL Server 资源依赖于 SQL 网络名称资源和保存数据的物理磁盘资源。 装入点和主机驱动器必须显示为群集物理磁盘资源。 此外,还必须将具有驱动器号的物理磁盘和每个已装载的卷添加为 SQL Server 依赖项。

    • 如果执行新安装,则会在具有关联驱动器号的物理磁盘和装入点上设置正确的依赖项权限。 在安装过程中会自动设置依赖项权限。

    • 如果仅添加了根物理磁盘依赖项,并且未添加装入点依赖项,则在进行故障转移时会产生数据库损坏。 如果磁盘资源脱机并恢复到联机状态,那么即使未进行故障转移,SQL Server 重启期间也可能产生数据库损坏。

  • 关于装入点的最佳做法:

    • 如果将装入点从一个共享磁盘移动到另一个共享磁盘,请确保这些共享磁盘位于同一组中。

    • 请尽量将根(主机)卷安排为专用于装入点。 根卷是承载装入点的卷。 如果必须运行 Chkdsk.exe 工具,此做法可大大减少还原对已装载卷的访问权限所需的时间。 这样还能减少通过主机卷上的备份进行还原所需的时间。

    • 如果将根(主机)卷专用于装入点,则主机卷不得小于 5 MB。 这样能降低卷用于装入点以外的任何内容的可能性。

SQL Server 故障转移群集安装只支持使用本地磁盘安装 tempdb 文件。 确保为 tempdb 数据和日志文件指定的路径在所有群集节点上均有效。 在故障转移期间,如果 tempdb 目录在故障转移目标节点上不可用,则 SQL Server 资源将无法联机。 有关详细信息,请参阅 数据文件的存储类型数据库引擎配置 - 数据目录

查看安全注意事项

若要使用加密,请在 SQL Server 故障转移群集中的所有节点上安装带有完全限定的 WSFC 群集 DNS 名称的服务器证书。 例如,如果您有一个包含两个节点(节点的名称分别为“Test1.DomainName.com”和“Test2.DomainName.com”)的群集和一个名为“Virtsql”的 SQL Server 故障转移群集实例,则必须获取“Virtsql.DomainName.com”的证书,并在 test1 和 test2 节点上安装该证书。 然后,可以选中 配置管理器中的 “强制协议加密” SQL Server 复选框,以将故障转移群集配置为使用加密。

重要

在将证书安装到故障转移群集实例中的所有参与节点上之前,请勿选中 “强制协议加密” 复选框。

如果采用与早期版本并行的配置来安装 SQL Server ,则 SQL Server 服务必须只使用全局域组内的帐户。 此外, SQL Server 服务所使用的帐户不得出现在本地 Administrators 组中。 不遵守此原则会导致意外的安全行为。

若要创建故障转移群集,你必须是本地管理员,并且可以服务形式登录以及在故障转移群集实例的所有节点上使用操作系统。

在 Windows 2008 Server 及更高版本中会自动生成用于 SQL Server 服务的服务 SID。 对于从以前版本的 SQL Server 升级得到的 SQL Server故障转移群集实例,将保留现有的域组和 ACL 配置。

域组必须与计算机帐户位于同一域中。 例如,如果将安装 SQL Server 的计算机在 SQLSVR 域(MYDOMAIN 的子域)中, 则必须在 SQLSVR 域中指定一个组。 SQLSVR 域可能包含来自 MYDOMAIN 的用户帐户。

SQL Server 故障转移群集无法安装在群集节点用作域控制器的位置。

请查阅 Security Considerations for a SQL Server Installation中的内容。

若要对 SQL Server启用 Kerberos 身份验证,请参阅 知识库中的 How to use Kerberos authentication in SQL Server Microsoft (如何在 SQL Server 中使用 Kerberos 身份验证)。

SQL Server 故障转移群集实例 (FCI) 要求群集节点加入域。 不支持使用以下配置:

  • 工作组群集上的 SQL FCI。
  • 多域群集上的 SQL FCI。
  • 域和工作组群集上的 SQL FCI。

查看网络、端口和防火墙注意事项

确认在开始安装 SQL Server 之前,已对所有专用网卡禁用 NetBIOS。

SQL Server 的网络名称和 IP 地址不能用于任何其他目的,如共享文件, 如果要创建文件共享资源,请为该资源指定不同的唯一网络名称和 IP 地址。

重要

我们建议您不要在数据驱动器上使用文件共享,因为它们可能影响 SQL Server 的行为和性能。

虽然 SQL Server 在群集中支持 TCP/IP 上的命名管道和 TCP/IP 套接字,但我们建议您在群集配置中使用 TCP/IP 套接字。

ISA Server 在 Windows 群集上不受支持,在 SQL Server 故障转移群集上也不受支持。

必须启动并正在运行远程注册表服务。

必须启用远程管理。

对于使用非默认端口的 SQL Server 实例,请使用 SQL Server 配置管理器的网络配置来确定要取消阻止的 SQL Server 实例所使用的端口。 如果要使用 SQL Server Browser 服务(使用的 IP 地址不同于群集实例的 IP 地址)和 UDP 端口 1434 连接到 SQL Server 实例,请在防火墙中启用 IPALL 的 TCP 端口。

故障转移群集安装程序操作包括一个用于检查网络绑定顺序的规则。 尽管绑定顺序看起来可能是正确的,但您可能已对系统禁用或“幻像”NIC 配置。 “幻像”NIC 配置可影响绑定顺序并导致绑定顺序规则发出警告。 若要避免此问题,请使用下列步骤来标识并删除禁用的网络适配器:

  1. 在命令提示符中处,键入:set devmgr_Show_Nonpersistent_Devices=1

  2. 键入并运行:start devmgmt.msc

  3. 展开网络适配器的列表。 此列表中应仅包含物理适配器。 如果您具有禁用的网络适配器,安装程序将根据网络绑定顺序规则报告故障。 “控制面板/网络连接”还将显示适配器已禁用。 确认“控制面板”中“网络设置”显示的已启用物理适配器的列表与 devmgmt.msc 显示的列表相同。

  4. 删除禁用的网络适配器,然后再运行 SQL Server 安装程序。

  5. 安装完成后,请返回到“控制面板”中的“网络连接”,禁用当前未使用的任何网络适配器。

验证自己的操作系统

确保您的操作系统已正确安装并且支持故障转移群集。 下表列出了 SQL Server 版本和支持这些版本的操作系统。

SQL Server 版本 Windows Server 2022 Datacenter Windows Server 2022 Datacenter:Azure Edition Windows Server 2022 Standard
SQL Server 2014 (12.x) Enterprise(64 位)x64 1 No
SQL Server 2014 (12.x) Enterprise(32 位) No
SQL Server 2016 (13.x) Enterprise No
SQL Server 2016 (13.x) Standard No
SQL Server 2017 (14.x) Enterprise
SQL Server 2017 (14.x) Standard
SQL Server 2019 (15.x) Enterprise
SQL Server 2019 (15.x) Standard
SQL Server 2022 (16.x) Enterprise
SQL Server 2022 (16.x) Standard
SQL Server 版本 Windows Server 2019 Datacenter Windows Server 2019 Standard Windows Server 2016 Datacenter Windows Server 2016 标准版
SQL Server 2014 (12.x) Enterprise(64 位)x64 1
SQL Server 2014 (12.x) Enterprise(32 位)
SQL Server 2016 (13.x) Enterprise
SQL Server 2016 (13.x) Standard
SQL Server 2017 (14.x) Enterprise
SQL Server 2017 (14.x) Standard
SQL Server 2019 (15.x) Enterprise
SQL Server 2019 (15.x) Standard
SQL Server 2022 (16.x) Enterprise
SQL Server 2022 (16.x) Standard

1 在 WOW 模式下不支持 SQL Server 群集。 这包括从最初安装在 WOW 中的 SQL Server 故障转移群集的早期版本进行升级。 从早期版本进行升级时,唯一的选择是并行安装新版本,并完成迁移。

针对多子网配置的其他注意事项

下面的部分描述了在安装 SQL Server 多子网故障转移群集时要记住的要求。 多子网配置涉及跨多个子网的群集,因此,涉及使用多个 IP 地址以及对 IP 地址资源依赖关系的更改。

SQL Server Edition 和操作系统注意事项

有关 Windows 上 SQL Server 各版本支持的功能列表,请参阅:

若要创建 SQL Server 多子网故障转移群集,必须先在多个子网上创建 Windows Server 多站点故障转移群集。

SQL Server 故障转移群集依赖于 Windows Server 故障转移群集,以便确保在存在失败时 IP 依赖关系条件依然有效。

Windows Server 2008 R2 及更高版本要求所有群集服务器都必须处于同一 Active Directory 域中。 因此, SQL Server 多子网故障转移群集要求所有群集节点都位于同一 Active Directory 域中,即使它们处于不同的子网中。

IP 地址和 IP 地址资源依赖关系

  1. 在多子网配置中,IP 地址资源依赖关系设置为 OR。 有关详细信息,请参阅创建新的 SQL Server 故障转移群集(安装程序)

  2. 不支持混合的 AND-OR IP 地址依赖关系。 例如,不支持 <IP1> AND <IP2> OR <IP3>。

  3. 不支持每个子网多个 IP 地址。

    如果您决定使用为同一子网配置的多个 IP 地址,在 SQL Server 启动过程中可能会遇到客户端连接失败。

有关 Windows Server 2008 R2 多站点故障转移的详细信息,请参阅 Windows Server 2008 R2 故障转移群集站点在多站点故障转移群集中设计群集服务或应用程序

配置 Windows Server 故障转移群集

Microsoft 必须至少在服务器群集的一个节点上配置群集服务 (WSFC)。 还必须将 SQL Server Enterprise、SQL Server Business Intelligence 或 SQL Server Standard 与 WSFC 一起运行。 SQL Server Enterprise 支持最多 16 节点的故障转移群集。 SQL Server Business Intelligence 和 SQL Server Standard 支持两节点的故障转移群集。

SQL Server 服务的资源 DLL 导出两个函数,WSFC 群集管理器使用它们来检查 SQL Server 资源的可用性。 有关详细信息,请参阅 故障转移群集实例的故障转移策略

WSFC 必须能够使用 IsAlive 检查来验证故障转移群集实例是否正在运行。 这需要使用可信连接来连接到服务器。 默认情况下,在群集的节点上未将运行群集服务的帐户配置为管理员,并且 BUILTIN\Administrators 组没有登录到 SQL Server 的权限。 只有更改对群集节点的权限时,这些设置才会改变。

配置域名服务 (DNS) 或 Windows Internet 名称服务 (WINS)。 必须在要安装 SQL Server 故障转移群集的环境中运行 DNS 服务器或 WINS 服务器。 SQL Server 安装程序要求 SQL Server IP 接口虚拟引用注册动态域名服务。 DNS 服务器配置应允许群集节点动态注册映射到网络名称的联机 IP 地址。 如果无法完成动态注册,安装程序将失败,安装将回滚。 有关详细信息,请参阅 KB947048 ((已存档链接)

安装 Microsoft 分布式事务处理协调器 (MSDTC)

在故障转移群集上安装 SQL Server 之前,请确定是否必须创建 Microsoft 分布式事务处理协调器 (MSDTC) 群集资源。 如果只安装数据库引擎,则 MSDTC 群集资源不是必需的。 如果要安装数据库引擎和 SSIS、工作站组件或者要使用分布式事务,则必须安装 MSDTC。 只有 Analysis Services 实例不需要 MSDTC。

在 Windows Server 2008 及更高版本中,你可以在单个故障转移群集上安装 MSDTC 的多个实例。 安装的第一个 MSDTC 实例将是 MSDTC 的群集默认实例。 SQL Server 将通过自动使用安装到 SQL Server 本地群集资源组的 MSDTC 实例,利用该 MSDTC 实例。 但是,单个应用程序可以映射到群集上的任何 MSDTC 实例。

下面的规则适用于由 SQL Server选择的 MSDTC 的实例:

  • 使用安装到本地组的 MSDTC,否则

  • 使用 MSDTC 的映射的实例,否则

  • 使用群集的 MSDTC 的默认实例,否则

  • 使用本地计算机上安装的 MSDTC 实例

重要

如果安装到 SQL Server 的本地群集组的 MSDTC 实例失败, SQL Server 将不自动尝试使用 MSDTC 的默认群集实例或本地计算机实例。 为了使用 MSDTC 的其他实例,您将需要从 SQL Server 组中完全删除 MSDTC 的失败的实例。 同样,如果您为 SQL Server 创建一个映射并且该映射的 MSDTC 实例失败,则您的分布式事务也将失败。 如果您希望 SQL Server 使用其他 MSDTC 实例,则必须将 MSDTC 的某个实例添加到 SQL Server 的本地群集组,或删除该映射。

配置 Microsoft 分布式事务处理协调器

安装操作系统并配置群集后,您还必须使用群集管理器配置 MSDTC 以便在群集中使用。 群集 MSDTC 失败不会导致 SQL Server 安装程序停止运行,但如果未能正确配置 MSDTC,则 SQL Server 应用程序功能可能会受影响。

另请参阅

后续步骤