Synchronisation des données de réplica de disponibilité

Microsoft.SQLServer.Linux.Monitor.AvailabilityReplica.DataSynchronizationHealth (UnitMonitor)

Ce moniteur cumule l'état de synchronisation des données de tous les réplicas de base de données du réplica de disponibilité. Le moniteur est défectueux quand un réplica de base de données n'est pas dans l'état de synchronisation des données attendu. Sinon, le moniteur est sain.

Knowledge Base article:

Récapitulatif

Ce moniteur cumule l'état de synchronisation des données de tous les réplicas de base de données du réplica de disponibilité. Le moniteur est défectueux quand un réplica de base de données n'est pas dans l'état de synchronisation des données attendu. Sinon, le moniteur est sain.

Causes

Au moins une base de données de disponibilité sur ce réplica de disponibilité a un état de synchronisation de données défectueux. S'il s'agit d'un réplica de disponibilité en validation asynchrone, toutes les bases de données de disponibilité doivent être dans l'état SYNCHRONISATION. S'il s'agit d'un réplica de disponibilité en validation synchrone, toutes les bases de données de disponibilité doivent être dans l'état SYNCHRONISÉ.

Résolutions

Recherchez le réplica de base de données avec un état de synchronisation de données défectueux à l'aide du moniteur du réplica de base de données, et résolvez le problème dans le réplica de base de données.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Génère des alertes

Définit si le flux de travail génère une alerte.

Non

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

900

Heure de synchronisation

Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise.

 

Délai d'expiration (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué.

300

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.AvailabilityReplica
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.AlwaysOnSystemPolicy
RemotableTrue
AccessibilityPublic
Alert MessageMicrosoft.SQLServer.Linux.Monitor.AvailabilityReplica.DataSynchronizationHealth.AlertMessage
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.AvailabilityReplica.DataSynchronizationHealth" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.AvailabilityReplica" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.AlwaysOnSystemPolicy" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.AvailabilityReplica.DataSynchronizationHealth.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.AvailabilityReplica"]/AvailabilityGroupName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="HealthState" HealthState="Success"/>
<OperationalState ID="Critical" MonitorTypeStateID="ErrorState" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<PolicyName>AlwaysOnArDataSynchronizationHealthPolicy</PolicyName>
<BagKey>2-$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.AvailabilityReplica"]/UniqueId$</BagKey>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>