État de la sauvegarde de base de données

Microsoft.SQLServer.Linux.Monitor.Database.DBBackupStatus (UnitMonitor)

Ce moniteur vérifie l'état de la sauvegarde de base de données signalé par Microsoft SQL Server. Remarque : Ce moniteur est désactivé par défaut. Utilisez des remplacements pour l'activer en cas de besoin.

Knowledge Base article:

Récapitulatif

Ce moniteur vérifie l'existence et l'âge de la sauvegarde de base de données, comme indiqué par Microsoft SQL Server. Cette opération est effectuée en exécutant une requête sur la base de données master de l'instance SQL et en retournant l'âge de la sauvegarde de base de données.

Causes

La base de données n'a pas été sauvegardée depuis trop longtemps.

Résolutions

Vous devez effectuer une sauvegarde de base de données pour résoudre le problème.

Pour éviter que le problème se répète à l'avenir, planifiez une sauvegarde automatique en fonction des besoins de l'application et de l'entreprise.

Supplémentaire

La surveillance du statut de la sauvegarde n'a pas de logique pour savoir si la base de données est ou non un réplica secondaire.

Puisqu'AOG a une logique de sauvegarde avancée qui nécessite la sauvegarde d'au moins une des bases de données impliquées, le moniteur peut générer des fausses alertes.

Le moniteur est désactivé par défaut et, si vous voulez activer le scénario de monitoring pour votre environnement, gardez le moniteur désactivé pour tous les serveurs qui ne sont pas utilisés pour le stockage de la sauvegarde de base de données.

Externe

Recommandations relatives aux sauvegardes de base de données SQL Server

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité d'alerte

Définit la priorité de l'alerte.

Normale

Gravité d'alerte

Définit la gravité de l'alerte.

Erreur (error)

Période de sauvegarde (jours)

Fréquence cible de sauvegarde, en jours. Doit être définie conformément à votre objectif de point de récupération.

7

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.

Oui

Intervalle (en secondes)

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

86400

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.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.Database.DBBackupStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL sur Linux : La sauvegarde de la base de données doit être effectuée
La base de données « {2} » dans l'instance SQL Server « {1} » sur l'ordinateur « {0} » n'a pas été sauvegardée depuis {3} jours.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Database.DBBackupStatus" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.DBBackupStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Database.DBBackupStatus.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</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.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='DaysSinceBackup']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
</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>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<Threshold>7</Threshold>
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>