可用性レプリカ データ同期

Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplicaDataSynchronizationHealth (UnitMonitor)

このモニターは、可用性レプリカ内のすべてのデータベース レプリカのデータ同期状態をロールアップします。モニターが異常となるのは、期待されるデータ同期状態になっていないデータベース レプリカが 1 つ以上ある場合です。それ以外の場合は、モニターは正常となります。

Knowledge Base article:

概要

このモニターは、可用性レプリカ内のすべてのデータベース レプリカのデータ同期状態をロールアップします。モニターが異常となるのは、期待されるデータ同期状態になっていないデータベース レプリカが 1 つ以上ある場合です。それ以外の場合は、モニターは正常となります。

原因

この可用性レプリカの少なくとも 1 つの可用性データベースのデータ同期状態が正常ではありません。これが非同期コミット可用性レプリカである場合は、すべての可用性データベースが SYNCHRONIZING 状態である必要があります。同期コミットの可用性レプリカである場合、すべての可用性データベースが SYNCHRONIZED 状態であることが必要です。

解決方法

データベース レプリカ モニターを使用してデータ同期状態が異常であるデータベース レプリカを見つけてから、そのデータベース レプリカでの問題を解決します。

上書き可能なパラメーター

名前

説明

既定値

有効

ワークフローを有効または無効にします。

はい

アラートを生成する

ワークフローがアラートを生成するかどうかを定義します。

いいえ

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

900

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

300

Element properties:

TargetMicrosoft.SQLServer.2014.AlwaysOn.AvailabilityReplica
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveFalse
Monitor TypeMicrosoft.SQLServer.2014.AlwaysOn.SystemPolicyScriptMonitorType
RemotableTrue
AccessibilityPublic
RunAsMicrosoft.SQLServer.2014.AlwaysOn.MonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplicaDataSynchronizationHealth" RunAs="Microsoft.SQLServer.2014.AlwaysOn.MonitoringAccount" TypeID="Microsoft.SQLServer.2014.AlwaysOn.SystemPolicyScriptMonitorType" Accessibility="Public" Enabled="true" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Target="AlwaysOnDisc!Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplica" Priority="Normal">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="HealthState" HealthState="Success"/>
<OperationalState ID="Critical" MonitorTypeStateID="ErrorState" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<Interval>900</Interval>
<TimeoutSeconds>300</TimeoutSeconds>
<PolicyName>$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2014.AlwaysOn.AvailabilityReplica"]/AvailabilityGroupName$-$Target/Property[Type="System!System.Entity"]/DisplayName$-AlwaysOnArDataSynchronizationHealthPolicy</PolicyName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
</Configuration>
</UnitMonitor>