web-dev-qa-db-ja.com

これら2つのHADR DMVが異なる状態を報告するのはなぜですか?

SQL Server 2012(11.0.5058.0)Enterprise Edition

2(HA)+1(DR)クラスターに8つの可用性グループがあり、監視DMVが結果を報告して混乱を招きます。 6つの可用性グループはHAおよびDR用に構成され、1つはHA専用に構成され、1つはDR専用に構成されます。

6つのHA/DR可用性グループのそれぞれには、プライマリとして「SQLB」、セカンダリ(同期)HAレプリカとして「SQLA」、セカンダリ(非同期)レプリカとして「SQLC」があります。

両方のセカンダリで:

SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags

すべての可用性グループレプリケーションの同期状態がNOT_HEALTHYおよび

select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states

すべてのレプリカの同期状態はHEALTHYであると報告されています。

プライマリレプリカは、HEALTHYの同期状態を持つすべての可用性グループとレプリカを報告します。

1つはレプリカ同期の正常性に関するレポートで、もう1つはAG同期の正常性に関するレポートであることを理解していますが、より細かい(AG)状態が正常でない場合、より広いコンテキスト(レプリカ)の全体的な正常性に影響を与えることは当然のようです。各レベルでヘルスがどのように決定されるかを説明するMSDNドキュメントが見つかりません。

なぜセカンダリが報告するのかNOT_HEALTHYは可用性グループの同期の正常性を示しますが、HEALTHYはレプリカの同期の正常性を示します。なぜこれがプライマリのレポートと異なるのですか?

8
swasheck

残念ながら、sys.dm_hadr_availability_replicaの状態は、レプリカの状態を示す信頼できる指標ではありません。 ここに接続項目があります DMVが更新を停止するバグに遭遇しました-DMV sys.dm_hadr_database_replica_statesのlog_send_queue_sizeが、送信されるログデータがある場合でも0を示すというコメントに注意してください。

[接続]アイテムが[修正されない]としてマークされていることに注意してください。悲しいトロンボーン。

5
Brent Ozar