Ce moniteur détecte quand la source d'une copie des journaux de transaction n'a pas eu ses journaux sauvegardés avant le seuil défini dans le cadre de la configuration de la copie des journaux de transaction.
Notez que la copie des journaux de transaction n'est pas prise en charge par les éditions de SQL Server Express.
Ce moniteur détecte quand la source d'une copie des journaux de transaction n'a pas eu ses journaux sauvegardés avant le seuil défini dans le cadre de la configuration de la copie des journaux de transaction. Quand cette situation se produit, le moniteur passe à l'état critique. Quand les sauvegardes de journal reprennent dans les seuils définis, le moniteur retourne à l'état sain. Par défaut, ce moniteur génère des alertes quand il est dans un état d'erreur.
La copie des journaux de transaction n'est pas synchronisée au-delà du seuil de sauvegarde. Le seuil de sauvegarde est le nombre de minutes pouvant s'écouler entre les travaux de sauvegarde de copie des journaux de transaction avant qu'une alerte soit générée. Ce message n'indique pas nécessairement un problème avec la copie des journaux de transaction, mais peut indiquer l'un des problèmes suivants :
Le travail de sauvegarde n'est pas exécuté. Les causes possibles sont notamment les suivantes : le service SQL Server Agent sur l'instance du serveur principal n'est pas en cours d'exécution, le travail est désactivé ou la planification du travail a été changée.
Le travail de sauvegarde est défectueux. Les causes possibles sont notamment les suivantes : le chemin du dossier de sauvegarde n'est pas valide, le disque est saturé ou toute autre raison pouvant expliquer l'échec de l'instruction BACKUP.
Pour résoudre ce problème :
Assurez-vous que le service Agent SQL Server est en cours d'exécution pour l'instance du serveur principal et que le travail de sauvegarde pour cette base de données primaire est activé et est planifié pour s'exécuter à la fréquence appropriée.
Le travail de sauvegarde sur le serveur principal est peut-être défectueux. Dans ce cas, examinez l'historique du travail de sauvegarde pour rechercher la cause.
Le travail de sauvegarde de copie des journaux de transaction, qui s'exécute sur l'instance du serveur principal, ne peut peut-être pas se connecter à l'instance du serveur moniteur pour mettre à jour la table log_shipping_monitor_primary. Il peut s'agir d'un problème d'authentification entre l'instance du serveur moniteur et l'instance du serveur principal.
Le seuil d'alerte de sauvegarde a peut-être une valeur incorrecte. Idéalement, cette valeur est définie sur au moins trois fois la fréquence du travail de sauvegarde. Si vous changez la fréquence du travail de sauvegarde une fois la copie des journaux de transaction configurée et opérationnelle, vous devez mettre à jour la valeur du seuil d'alerte de sauvegarde en conséquence.
Quand l'instance du serveur moniteur est mise hors connexion, puis remise en ligne, la table log_shipping_monitor_primary n'est pas mise à jour avec les valeurs actuelles avant l'exécution du travail de message d'alerte. Pour mettre à jour les tables du moniteur avec les dernières données de la base de données primaire, exécutez sp_refresh_log_shipping_monitor sur l'instance du serveur principal.
La date ou l'heure est incorrecte sur l'instance du serveur principal ou du serveur moniteur. Cette erreur peut également générer des messages d'alerte. La date ou l'heure système a peut-être été modifiée sur une des deux instances.
Remarque : Une différence de fuseaux horaires sur les deux instances de serveur ne doit pas générer de problème.
Rubrique sur la copie des journaux de transaction dans la documentation en ligne de SQL Server :
http://go.microsoft.com/fwlink/?LinkId=799310
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) |
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. | 300 |
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é. | 200 |
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 |
Target | Microsoft.SQLServer.Linux.Database | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.Database.LogShippingSourceMonitor" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Database.LogShippingSourceMonitor.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>$Data/Context/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="SourceNotBackedUp" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="SourceBackUpComplete" MonitorTypeStateID="Good" HealthState="Success"/>
</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>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<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>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<LogShippingType>0</LogShippingType>
</Configuration>
</UnitMonitor>