Ce moniteur vérifie l'état des services de l'agent de fusion de réplication pour l'abonnement. Notez que le service Windows SQL Server Agent n'est pris en charge par aucune édition de SQL Server Express. Par conséquent, ce moniteur ne s'applique pas aux cas SQL Server Express.
L'agent de fusion de réplication est un exécutable qui applique l'instantané initial contenu dans les tables de base de données aux abonnés. Il fusionne également les changements de données incrémentiels survenus sur le serveur de publication après la création de l'instantané initial. L'agent résout aussi les conflits à l'aide des règles configurées ou d'un programme de résolution personnalisé. Notez que le service Windows SQL Server Agent n'est pris en charge par aucune édition de SQL Server Express. Par conséquent, ce moniteur ne s'applique pas aux cas SQL Server Express.
Un agent de fusion peut échouer pour l'une des raisons suivantes :
L'agent de fusion ne peut pas se connecter à la base de données du serveur de publication (abonnement par extraction)
L'agent de fusion ne peut pas se connecter à la base de données d'abonné (abonnement par émission de données)
Les métadonnées de réplication de fusion sont supprimées sur l'abonné, car l'agent de fusion n'a pas été synchronisé durant la période de rétention
L'abonnement est marqué comme ayant expiré.
Erreurs de dépassement du délai d'attente de la requête.
Erreurs de connectivité réseau.
L'Agent de fusion ne peut pas démarrer en raison d'un épuisement de la mémoire pour le segment de Bureau non-interactif
Paramètres incorrects passés à l'exécutable de l'Agent.
Ce problème peut être résolu en s'assurant que :
L'agent de fusion ne peut pas se connecter à la fois au serveur de publication et à l'abonné. Configurez l'accès à dbo pour le compte de l'agent de fusion sur les bases de données de serveur de publication et d'abonné
Si l'abonnement est marqué comme ayant expiré, réinitialisez-le
Résolvez les problèmes de réseau ou de connectivité entre les serveurs quand l'Agent de fusion est en cours d'exécution
Si les métadonnées de l'abonnement sont supprimées sur le serveur de publication, supprimez et recréez l'abonnement. Cela peut se produire quand l'agent de fusion n'a pas été synchronisé avec l'abonné ou le serveur de publication durant le double de la période de rétention.
Vérifiez que les paramètres transmis à l'exécutable de l'Agent sont corrects.
Augmentez le segment de Bureau comme décrit dans http://support.microsoft.com/kb/949296
Interrogez les tables msmerge_agents et msmerge_history sur la base de données de distribution pour obtenir plus d'informations sur l'échec de l'Agent. La table Msrepl_errors contient également des informations sur les échecs d'agents.
Problème de tas du Bureau
http://support.microsoft.com/kb/949296
Agent de fusion de la réplication
http://msdn.microsoft.com/library/ms147839.aspx
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 |
Activé | Active ou désactive le flux de travail. | Oui |
Durée estimée du travail | Seuil utilisé pour vérifier la conformité de la planification du travail | 15 |
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 |
Afficher les travaux avec un état inconnu | Incluez les travaux dont l’état est inconnu dans la sortie de l’analyse et le contexte de l’alerte. Cela affecte l’intégrité. | Non |
Heure de synchronisation | Heure de synchronisation |
|
Délai d'attente (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.Replication.Windows.Subscription | ||
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.Replication.Windows.MonitorType.ReplicationAgentState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Core.RunAs.Monitoring |
<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscription" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$</ConnectionString>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<XPathName>Merge$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$$Target/Host/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscriber']/ConnectionString$$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/SubscriptionName$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
<CheckMachineAndInstanceName>false</CheckMachineAndInstanceName>
</Configuration>
</UnitMonitor>