可用性グループの作成時にエラー 41131 が発生する

この記事では、Microsoft SQL Serverで可用性グループを作成するときにエラー 41131 が発生する問題の解決策について説明します。

元の製品バージョン: SQL Server
元の KB 番号: 2847723

現象

Microsoft SQL Serverで高可用性グループを作成しようとすると、次のエラー メッセージが表示されます。

Msg 41131、レベル 16、状態 0、行 2
可用性グループ 'availability_group' をオンラインにできませんでした。 操作がタイムアウトしました。ローカル Windows サーバー フェールオーバー クラスタリング (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
    

詳細情報

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

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

注意

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

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