AlwaysOn ポリシーを使用した可用性グループの正常性の確認 (SQL Server)

適用対象:SQL Server

このトピックでは、 SQL Server Management Studio の AlwaysOn ポリシーまたは SQL Serverの PowerShell を使用して、AlwaysOn 可用性グループの運用状態の正常性を確認する方法について説明します。 Always On ポリシー ベースの管理の詳細については、Always On 可用性グループでの運用上の問題の Always On ポリシー (SQL Server) に関する記事を参照してください。

重要

AlwaysOn ポリシーでは、カテゴリの名前が ID として使用されます。 AlwaysOn カテゴリの名前を変更すると、正常性評価の機能を使用できなくなります。 このため、AlwaysOn カテゴリの名前は変更しないでください。

アクセス許可

CONNECT、VIEW SERVER STATE、および VIEW ANY DEFINITION 権限が必要です。

AlwaysOn ダッシュボードの使用

AlwaysOn ダッシュボードを開くには

  1. オブジェクト エクスプローラーで、可用性レプリカの 1 つをホストするサーバー インスタンスに接続します。 可用性グループ内のすべての可用性レプリカについての情報を表示するには、プライマリ レプリカをホストするサーバー インスタンスを使用してください。

  2. サーバー名をクリックし、サーバー ツリーを展開します。

  3. [AlwaysOn 高可用性] ノードを展開します。

    [可用性グループ] ノードを右クリックするか、このノードを展開し、特定の可用性グループを右クリックします。

  4. [ダッシュボードの表示] をクリックします。

Always On ダッシュボードの使用方法の詳細については、「Always On ダッシュボードの使用 (SQL Server Management Studio)」を参照してください。

PowerShell の使用

Use Always On policies to view the health of an availability group

  1. 可用性レプリカの 1 つをホストするサーバー インスタンスを既定の操作対象に設定 (cd) します。 可用性グループ内のすべての可用性レプリカについての情報を表示するには、プライマリ レプリカをホストするサーバー インスタンスを使用してください。

  2. 次のコマンドレットを使用します。

    Test-SqlAvailabilityGroup
    SQL Server のポリシー ベースの管理 (PBM) のポリシーを評価することによって、可用性グループの正常性を査定します。 このコマンドレットを実行するには、CONNECT、VIEW SERVER STATE、および VIEW ANY DEFINITION 権限が必要です。

    たとえば、次のコマンドでは、サーバー インスタンス Computer\Instance上で正常性状態が "Error" の可用性グループすべてを表示します。

    Get-ChildItem SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups `   
    | Test-SqlAvailabilityGroup | Where-Object { $_.HealthState -eq "Error" }  
    

    Test-SqlAvailabilityReplica
    SQL Server のポリシー ベースの管理 (PBM) のポリシーを評価することによって、可用性レプリカの正常性を査定します。 このコマンドレットを実行するには、CONNECT、VIEW SERVER STATE、および VIEW ANY DEFINITION 権限が必要です。

    たとえば、次のコマンドは、可用性グループ MyReplica 内の MyAg という名前の可用性レプリカの正常性を評価し、概要を出力します。

    Test-SqlAvailabilityReplica `   
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica  
    

    Test-SqlDatabaseReplicaState
    SQL Server のポリシー ベースの管理 (PBM) のポリシーを評価することによって、参加しているすべての可用性レプリカ上の可用性データベースの正常性を査定します。

    たとえば、次のコマンドは、可用性グループ MyAg 内のすべての可用性データベースの正常性を評価し、各データベースの概要を出力します。

    Get-ChildItem SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\DatabaseReplicaStates `   
     | Test-SqlDatabaseReplicaState  
    

    これらのコマンドレットでは、次のオプションを使用できます。

    オプション 説明
    AllowUserPolicies AlwaysOn ポリシーのカテゴリにあるユーザー ポリシーを実行します。
    InputObject 可用性グループ、可用性レプリカ、または可用性データベースの状態 (使用するコマンドレットに応じて異なります) を表すオブジェクトのコレクションです。 コマンドレットを実行すると、指定されたオブジェクトの正常性が計算されます。
    NoRefresh このパラメーターを設定した場合、コマンドレットを実行すると、 -Path パラメーターまたは -InputObject パラメーターで指定されたオブジェクトが手動で最新の情報に更新されません。
    パス 可用性グループ、1 つ以上の可用性レプリカ、または可用性データベースのデータベース レプリカ クラスターの状態へのパス (使用するコマンドレットに応じて異なります) です。 これは省略可能なパラメーターです。 このパラメーターの値を指定しない場合、既定では、現在の場所に設定されます。
    ShowPolicyDetails このコマンドレットで実行された各ポリシー評価の結果を表示します。 コマンドレットを実行すると、ポリシー評価ごとに 1 つのオブジェクトが出力されます。このオブジェクトには評価の結果を表すフィールド (ポリシーが渡されるかどうかに関係なく、ポリシー名、カテゴリなど) があります。

    たとえば、次の Test-SqlAvailabilityGroup コマンドは、 -ShowPolicyDetails パラメーターを指定して、可用性グループ MyAg上で実行されたポリシー ベースの管理 (PBM) のポリシーごとに、このコマンドレットによって実行されたそれぞれのポリシー評価の結果を表示します。

    Test-SqlAvailabilityGroup `   
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\AgName `  
    -ShowPolicyDetails  
    
    

    注意

    コマンドレットの構文を表示するには、 PowerShell 環境で Get-Help SQL Server コマンドレットを使用します。 詳細については、「 Get Help SQL Server PowerShell」を参照してください。

SQL Server PowerShell プロバイダーを設定して使用するには

関連コンテンツ

SQL Server Alway On チームのブログ: PowerShell を使用した AlwaysOn 正常性状態の監視:

参照

Always On 可用性グループの概要 (SQL Server)
可用性グループの管理 (SQL Server)
可用性グループの監視 (SQL Server)
AlwaysOn 可用性グループでの運用上の問題のポリシー ベースの管理 (SQL Server)