Sincronización de datos de base de datos de disponibilidad

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

Este monitor comprueba el estado de sincronización de datos de la réplica de base de datos. El estado del monitor es malo cuando el estado de sincronización de datos es NOT SYNCHRONIZING o cuando no es SYNCHRONIZED para la réplica de base de datos de confirmación sincrónica.

Knowledge Base article:

Resumen

Este monitor comprueba el estado de sincronización de datos de la réplica de base de datos. El estado del monitor es malo cuando el estado de sincronización de datos es NOT SYNCHRONIZING o cuando no es SYNCHRONIZED para la réplica de base de datos de confirmación sincrónica.

Causas

El estado de sincronización de datos de esta base de datos de disponibilidad no es correcto. En una réplica de disponibilidad de confirmación asincrónica, cada base de datos de disponibilidad debe estar en el estado SYNCHRONIZING. En una réplica de confirmación asincrónica, cada base de datos de disponibilidad debe estar en el estado SYNCHRONIZED.

Soluciones

Resuelva cualquier problema de suspensión de conexión o de movimiento de datos. Compruebe los eventos para el problema mediante SSMS, busque el error de la base de datos y siga la solución de problemas del error específico para solucionarlo.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Genera alertas

Define si el flujo de trabajo genera una alerta.

No

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

900

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

300

Element properties:

TargetMicrosoft.SQLServer.2016.AlwaysOn.DatabaseReplica
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.DbrDataSynchronizationState" 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.DatabaseReplica" 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.DatabaseReplica"]/AvailabilityGroupName$-$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/Name$-AlwaysOnDbrDataSynchronizationState</PolicyName>
<InstanceName>$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/AvailabilityReplicaServerName$</InstanceName>
</Configuration>
</UnitMonitor>