可用性グループを作成するときのエラー 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. 可用性グループ内の[NT AUTHORITY\SYSTEM]レプリカをホストする各SQL Server コンピューター上のアカウントのSQL Serverにログインを作成します。

  2. アカウントに次の [NT AUTHORITY\SYSTEM] サーバー レベルのアクセス許可を付与します。

    • ALTER any availability group

    • 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
    

詳細

アカウントは[NT AUTHORITY\SYSTEM]、SQL Server コンピューターに接続し、正常性を監視するために、SQL Server Always On正常性検出によって使用されます。 可用性グループを作成し、可用性グループ内のプライマリ レプリカがオンラインになると、正常性検出が開始されます。 アカウントが [NT AUTHORITY\SYSTEM] 存在しない場合、または十分なアクセス許可を持っている場合は、正常性検出を開始できません。また、作成プロセス中に可用性グループをオンラインにすることはできません。

可用性グループのプライマリ レプリカをホストできる各SQL Server コンピューターに、これらのアクセス許可が存在することを確認します。

注:

SQL Resource.dll をホストするリソース ホスト モニター サービス プロセス (RHS.exe) は、システム アカウントでのみ実行できます。

詳細については、「SQL Server Always On環境での自動フェールオーバーの問題のトラブルシューティング」を参照してください。