Dieser Monitor überprüft, ob die folgenden Replikations-Agent-Aufträge sich in einem fehlerfreien Zustand befinden: Verteilungs-Agent, Merge-Agent und Momentaufnahmen-Agent. Wenn sich einer der Agents in einem fehlerhaften Zustand befindet, wird der Monitor ausgelöst.
Dieser Monitor überprüft, ob die folgenden Replikations-Agent-Aufträge sich in einem fehlerfreien Zustand befinden: Verteilungs-Agent, Merge-Agent und Momentaufnahmen-Agent. Wenn sich einer der Agents in einem fehlerhaften Zustand befindet, wird der Monitor ausgelöst.
Ein Fehler der Aufträge des Replikations-Agents kann zahlreiche Ursachen besitzen:
Fehler des SQL Server-Agents.
Agent-Konfigurationsprobleme, z. B. falsche Parameterwerte.
Ein Netzwerkproblem, das den Zugriff auf den Abonnenten oder Verteiler verhindert oder verlangsamt.
Datenintegritätsfehler, z. B. "Zeile auf Abonnenten nicht gefunden".
Abfragetimeouts
Versuchen Sie Folgendes, um das Problem zu beheben:
Stellen Sie sicher, dass der SQL Server-Agent ausgeführt wird.
Überprüfen Sie den Replikationsmonitor oder den Verlauf des Agent-Auftrags auf Fehlermeldungen, und untersuchen/beheben Sie Probleme entsprechend.
Aktivieren Sie ausführliche Protokollierung, und führen Sie den Auftrag erneut aus, um ausführliche Fehlerinformationen abzurufen.
So aktivieren Sie Replikations-Agents für die Protokollierung in Ausgabedateien in SQL Server:
http://support.microsoft.com/kb/312292
Name | Beschreibung | Standardwert |
Warnungspriorität | Definiert die Warnungspriorität. | Normal |
Warnungsschweregrad | Definiert den Warnungsschweregrad. | Warnung |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Der Schwellenwert für die Anzahl fehlerhafter Aufträge. | Der Schwellenwert für die Anzahl fehlerhafter Aufträge. | 1 |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert. | Ja |
Intervall (Sekunden) | Gibt das Wiederholungsintervall in Sekunden für die Ausführung des Workflows an. | 300 |
Schwellenwert pro Auftrag | Schwellenwert pro Auftrag | 1 |
Synchronisierungszeit | Synchronisierungszeit |
|
Timeout (Sekunden) | Gibt an, wie lange der Workflow ausgeführt werden kann, bevor er geschlossen und als fehlerhaft markiert wird. | 200 |
Timeout für Datenbankverbindung (Sekunden) | Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann. | 15 |
Target | Microsoft.SQLServer.Replication.Windows.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.Replication.Windows.MonitorType.DistributorFailJobs | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Core.RunAs.Monitoring |
<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.ReplicationAgentFailJobs" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.DistributorFailJobs" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.ReplicationAgentFailJobs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/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>
<MachineName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<ThresholdCountOfFailsForJob>1</ThresholdCountOfFailsForJob>
<ThresholdCountOfFailedJobs>1</ThresholdCountOfFailedJobs>
<CategoryList>Distribution, LogReader, Merge, QueueReader, Snapshot</CategoryList>
<ExcludeCategoryList/>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
</Configuration>
</UnitMonitor>