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

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>