Синхронизация данных реплики доступности

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

Этот монитор сворачивает состояние синхронизации данных всех реплик баз данных в реплике доступности. Монитор принимает неисправное состояние, если хотя бы одна реплика базы данных не находится в ожидаемом состоянии синхронизации. В противном случае монитор находится в состоянии "Исправно".

Knowledge Base article:

Сводка

Этот монитор сворачивает состояние синхронизации данных всех реплик баз данных в реплике доступности. Монитор принимает неисправное состояние, если хотя бы одна реплика базы данных не находится в ожидаемом состоянии синхронизации. В противном случае монитор находится в состоянии "Исправно".

Причины

Как минимум одна база данных доступности в этой реплике доступности имеет неисправное состояние синхронизации данных. Если это реплика доступности с асинхронной фиксацией, все базы данных доступности должны находиться в состоянии SYNCHRONIZING. Если эта реплика доступности настроена для синхронной фиксации, все базы данных доступности должны быть в состоянии SYNCHRONIZED.

Решения

Найдите реплику базы данных с нерабочим состоянием синхронизации данных с помощью ее монитора и устраните проблему.

Переопределяемые параметры

Название

Описание

Значение по умолчанию

Включено

Включает или отключает рабочий процесс.

Да

Создает предупреждения

Определяет, создает ли рабочий процесс предупреждения.

Нет

Интервал (в секундах)

Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс.

900

Время ожидания (в секундах)

Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный.

300

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplicaDataSynchronizationHealth" RunAs="GPMP!Microsoft.SQLServer.MonitoringAccount" TypeID="Microsoft.SQLServer.2016.AlwaysOn.SystemPolicyScriptMonitorType" Accessibility="Public" Enabled="true" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Target="AlwaysOnDisc!Microsoft.SQLServer.2016.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.2016.AlwaysOn.AvailabilityReplica"]/AvailabilityGroupName$-$Target/Property[Type="System!System.Entity"]/DisplayName$-AlwaysOnArDataSynchronizationHealthPolicy</PolicyName>
<InstanceName>$Target/Property[Type="System!System.Entity"]/DisplayName$</InstanceName>
</Configuration>
</UnitMonitor>