sys.dm_hadr_availability_replica_states (Transact-SQL)

適用対象:SQL Server

ローカル レプリカごとに 1 行のデータと、ローカル レプリカと同じ AlwaysOn 可用性グループに含まれるリモート レプリカごとに 1 行のデータを返します。 各行には、特定のレプリカの状態に関する情報が含まれています。

重要

特定の可用性グループ内のすべてのレプリカに関する情報を取得するには、プライマリ レプリカをホストしているサーバー インスタンスで sys.dm_hadr_availability_replica_states クエリを実行します。 可用性グループのセカンダリ レプリカをホストしているサーバー インスタンスに対してクエリを実行した場合、この動的管理ビューはその可用性グループのローカル情報のみを返します。

列名 データ型 説明
replica_id uniqueidentifier レプリカの一意識別子。
group_id uniqueidentifier 可用性グループの一意識別子。
is_local bit レプリカがローカルかどうかに関係なく、次のいずれかになります。

0 = プライマリ レプリカがローカル サーバー インスタンスによってホストされている可用性グループ内のリモート セカンダリ レプリカを示します。 この値は、プライマリ レプリカの場所でのみ発生します。

1 = ローカル レプリカを示します。 セカンダリ レプリカの場合、これはそのレプリカが属する可用性グループに対して使用できる唯一の値です。
role tinyint ローカル レプリカまたは接続されたリモート レプリカの現在のAlways On可用性グループ ロール。次のいずれかです。

0 = 解決中

1 = プライマリ

2 = セカンダリ

Always On 可用性グループ のロールについては、「Always On 可用性グループの概要 (SQL Server)」を参照してください。
role_desc nvarchar(60) ロールの説明。次のいずれか。

RESOLVING

PRIMARY

SECONDARY
operational_state tinyint レプリカの現在の操作状態。次のいずれかです。

0 = 保留中のフェールオーバー

1 = 保留中

2 = オンライン

3 = オフライン

4 = 失敗

5 = 失敗、クォーラムなし

NULL = レプリカがローカルでない

詳細については、このトピックで後述 する「ロールと運用状態」を参照してください。
operational_state_desc nvarchar(60) operational_stateの説明。次のいずれかです。

PENDING_FAILOVER

PENDING

ONLINE

OFFLINE

FAILED

FAILED_NO_QUORUM

NULL
recovery_health tinyint sys.dm_hadr_database_replica_states動的管理ビューのdatabase_state列のロールアップ。 使用できる値とその説明を次に示します。

0 : 進行中です。 少なくとも 1 つの結合データベースに ONLINE 以外のデータベース状態があります (database_state は 0 ではありません)。

1: オンライン。 結合されたすべてのデータベースのデータベース状態は ONLINE です (database_state は 0 です)。

NULL : is_local = 0
recovery_health_desc nvarchar(60) recovery_healthの説明。次のいずれか。

ONLINE_IN_PROGRESS

ONLINE

NULL
synchronization_health tinyint 結合されたすべての可用性データベース (レプリカとも呼ばれます) とレプリカの可用性モード (同期コミットまたは非同期コミット モード) のデータベース同期状態 (synchronization_state) のロールアップを反映します。 ロールアップには、レプリカ上のデータベースの最も正常な累積状態が反映されます。 使用可能な値とその説明を次に示します。

0 : 正常ではありません。 少なくとも 1 つの結合データベースが NOT SYNCHRONIZING 状態です。

1 : 部分的に正常です。 一部のレプリカが目標の同期状態ではありません: 同期コミット レプリカは SYNCHRONIZED である必要があり、非同期コミット レプリカは SYNCHRONIZING である必要があります。

2 : 正常です。 すべてのレプリカがターゲット同期状態です。同期コミット レプリカは同期され、非同期コミット レプリカは同期されます。
synchronization_health_desc nvarchar(60) synchronization_healthの説明。次のいずれかです。

NOT_HEALTHY

PARTIALLY_HEALTHY

健康
connected_state tinyint セカンダリ レプリカが現在プライマリ レプリカに接続されているかどうか。 使用可能な値とその説明を次に示します。

0 : 切断されています。 DISCONNECTED 状態に対する可用性レプリカの応答は、その役割によって異なります。プライマリ レプリカでは、セカンダリ レプリカが切断されている場合、セカンダリ データベースはプライマリ レプリカで NOT SYNCHRONIZED としてマークされ、セカンダリが再接続するまで待機します。セカンダリ レプリカでは、切断されていることを検出すると、セカンダリ レプリカはプライマリ レプリカへの再接続を試みます。

1 : 接続されています。

各プライマリ レプリカでは、同じ可用性グループに含まれるすべてのセカンダリ レプリカの接続状態を追跡します。 セカンダリ レプリカでは、プライマリ レプリカの接続状態のみを追跡します。
connected_state_desc nvarchar(60) connection_stateの説明。次のいずれかです。

DISCONNECTED

CONNECTED
last_connect_error_number int 最後の接続エラーの番号。
last_connect_error_description nvarchar(1024) last_connect_error_number メッセージのテキスト。
last_connect_error_timestamp datetime last_connect_error_number エラーが発生した日時を示す日付と時刻のタイムスタンプ。

ロールと運用状態

ロール ロールは、特定の可用性レプリカの状態と運用状態 (operational_state) を反映し、レプリカが可用性レプリカのすべてのデータベースに対するクライアント要求を処理する準備ができているかどうかを示します。 各ロールで可能な操作状態の概要を次に示します。RESOLVING、PRIMARY、SECONDARY。

解決: 可用性レプリカが RESOLVING ロールにある場合、考えられる操作状態は次の表のようになります。

動作状態 説明
PENDING_FAILOVER 可用性グループに対するフェールオーバー コマンドを処理しています。
OFFLINE WSFC クラスターおよびローカル メタデータ内の可用性レプリカのすべての構成データが更新されたが、可用性グループには現在プライマリ レプリカがありません。
FAILED WSFC クラスターから情報を取得しようとすると、読み取りエラーが発生しました。
FAILED_NO_QUORUM ローカルの WSFC ノードに、クォーラムがありません。 これは推論された状態です。

プライマリ: 可用性レプリカが PRIMARY ロールを実行している場合、現在はプライマリ レプリカです。 次の表に示すように、考えられる動作状態を示します。

動作状態 説明
PENDING これは一時的な状態ですが、ワーカーを使用して要求を処理できない場合、プライマリ レプリカがこの状態になることがあります。
ONLINE 可用性グループ リソースはオンラインであり、すべてのデータベース ワーカー スレッドが取得されています。
FAILED 可用性レプリカは、WSFC クラスターに対して読み取りまたは書き込みを行うことができません。

セカンダリ: 可用性レプリカがセカンダリ ロールを実行している場合、現在はセカンダリ レプリカです。 次の表に示すように、考えられる動作状態を示します。

動作状態 説明
ONLINE ローカル セカンダリ レプリカはプライマリ レプリカに接続されています。
FAILED ローカル セカンダリ レプリカが WSFC クラスターに対して読み取りまたは書き込みを行うことができません。
NULL プライマリ レプリカでは、行がセカンダリ レプリカに関係する場合に、この値が返されます。

アクセス許可

サーバーに対する VIEW SERVER STATE 権限が必要です。

SQL Server 2022 以降のアクセス許可

サーバーに対する VIEW SERVER PERFORMANCE STATE 権限が必要です。

関連項目

Always On 可用性グループの概要 (SQL Server)
可用性グループの監視 (Transact-SQL)