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

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

原始产品版本:SQL Server
原始 KB 数: 2847723

现象

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

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

原因

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

解决方法

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

方法 1:使用手动步骤

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

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

    • 更改任何可用性组

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

请确保这些权限存在于可以承载可用性组主副本的每个 SQL Server 计算机上。

注意

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

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