Cette analyse vérifie l’état d’intégrité des travaux suivants de l’Agent de réplication : Agent de distribution, Agent de fusion, Agent de lecture de la file d’attente, Agent de lecture du journal ou Agent de capture instantanée. Si au moins l’un des travaux des agents est en état d’échec, l’analyse est déclenchée.
Cette analyse vérifie l’état d’intégrité des travaux pour les agents de réplication suivants : Agent de distribution, Agent de fusion, Agent de lecture de la file d’attente, Agent de lecture du journal et Agent de capture instantanée. Si au moins l’un des travaux des agents est en état d’échec, l’analyse est déclenchée.
Les travaux de l'Agent de réplication peuvent échouer pour de nombreuses raisons :
Échec de SQL Server Agent.
Problèmes de configuration de l'Agent, comme des valeurs incorrectes pour les paramètres.
Problème réseau empêchant ou ralentissant l’accès à l’abonné ou au serveur de distribution.
Erreurs d’intégrité des données, telles que « ligne introuvable sur l’abonné ».
Dépassement du délai d'attente de la requête.
Pour résoudre le problème, essayez de procéder comme suit :
Vérifiez que SQL Server Agent est en cours d'exécution ;
Vérifiez le moniteur de réplication ou consultez l’historique des travaux de l’Agent pour voir s’il contient un message d’erreur, puis examinez/corrigez l’erreur en conséquence.
Activez la journalisation détaillée, puis réexécutez le travail pour obtenir des informations d'erreur détaillées.
Procédure d'activation des agents de réplication dans SQL Server en vue de la journalisation dans des fichiers de sortie :
http://support.microsoft.com/kb/312292
Nom | Description | Valeur par défaut |
Priorité de l'alerte | Définit la priorité de l'alerte. | Normal |
Gravité de l'alerte | Définit la gravité de l'alerte. | Avertissement |
Activé | Active ou désactive le flux de travail. | Oui |
Seuil du nombre de travaux en échec | Seuil du nombre de travaux en échec | 1 |
Génère des alertes | Définit si le flux de travail génère une alerte. | Oui |
Intervalle (secondes) | Intervalle de temps récurrent en secondes, pendant lequel le workflow est exécuté. | 300 |
Seuil par travail | Seuil par travail | 1 |
Heure de synchronisation | Heure de synchronisation |
|
Délai d'attente (secondes) | Spécifie la durée pendant laquelle le workflow est autorisé à être exécuté avant d'être fermé et marqué comme un échec. | 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 |
Target | Microsoft.SQLServer.2008.Replication.Distributor | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.Replication.MonitorType.DistributorFailJobs | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2008.Replication.Monitor.ReplicationAgentFailJobs" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2008.Replication.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.Replication.MonitorType.DistributorFailJobs" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.Replication.Monitor.ReplicationAgentFailJobs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='DistributorFailJobs']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Message']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>15</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<ThresholdCountOfFailsForJob>1</ThresholdCountOfFailsForJob>
<ThresholdCountOfFailedJobs>1</ThresholdCountOfFailedJobs>
<CategoryList>Distribution</CategoryList>
<ExcludeCategoryList/>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>