创建可用性组时出现错误 41131

本文提供有关在 Microsoft SQL Server 中创建可用性组时出现错误 41131 的问题的解决方案。

原始产品版本:SQL Server
原始 KB 编号: 2847723

症状

尝试在 Microsoft SQL Server 中创建高可用性组时,会收到以下错误消息:

消息 41131,级别 16,状态 0,第 2 行
未能使可用性组“availability_group”联机。 操作超时。验证本地 Windows Server 故障转移群集 (WSFC) 节点是否处于联机状态。 然后,验证 WSFC 群集中是否存在可用性组资源。 如果问题仍然存在,可能需要删除可用性组,然后重新创建它。

原因

如果[NT AUTHORITY\SYSTEM]SQL Server登录名中缺少帐户,或者帐户缺少创建高可用性组所需的权限,则会出现此问题。

解决方案

若要解决此问题,请使用以下某种方法:

方法 1:使用手动步骤

  1. 在可用性组中托管副本 (replica) [NT AUTHORITY\SYSTEM]的每台SQL Server计算机上为帐户创建登录名SQL Server。

  2. [NT AUTHORITY\SYSTEM] 帐户授予以下服务器级权限:

    • ALTER 任何可用性组

    • 连接 SQL

    • 查看服务器状态

    注意

    确保未向帐户授予其他权限。

方法 2:使用脚本

  1. 若要创建 [NT AUTHORITY\SYSTEM] 帐户,请在查询窗口中运行以下语句:

    USE [master]
    GO
    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    GO
    
  2. 若要向帐户授予权限 [NT AUTHORITY\SYSTEM] ,请在查询窗口中运行以下语句:

    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 Always On[NT AUTHORITY\SYSTEM]运行状况检测使用该帐户连接到SQL Server计算机并监视运行状况。 创建可用性组且可用性组中的主要副本 (replica) 联机时,将启动运行状况检测。 [NT AUTHORITY\SYSTEM]如果帐户不存在或具有足够的权限,则无法启动运行状况检测,并且可用性组无法在创建过程中联机。

请确保这些权限存在于可托管可用性组的主副本 (replica) 的每台SQL Server计算机上。

注意

托管 SQL Resource.dll 的资源主机监视器服务进程 (RHS.exe) 只能在系统帐户下运行。

有关详细信息,请参阅排查SQL Server Always On环境中的自动故障转移问题