Dieser Monitor überprüft den Status der Momentaufnahme-Agent-Dienste für alle Veröffentlichungen für den Verteiler.
Der Replikationsmomentaufnahme-Agent ist eine ausführbare Datei, die Momentaufnahmedateien vorbereitet, die das Schema und Daten veröffentlichter Tabellen und Datenbankobjekte enthalten. Er speichert die Dateien im Momentaufnahmeordner und zeichnet Synchronisierungsaufträge in der Verteilungsdatenbank auf.
Fehler eines Momentaufnahme-Agents können eine der folgenden Ursachen besitzen:
Im Momentaufnahmeordner ist kein freier Speicherplatz verfügbar.
Fehlende Schreibberechtigungen für den Momentaufnahmeordner.
Es kann keine Verbindung mit der Verlegerdatenbank hergestellt werden.
Die Ursache kann sein, dass das Konto des Verleger-Agents nicht Mitglied der festen Datenbankrolle "db_owner" für die Verteilerdatenbank ist.
Der Agent kann keine Verbindung mit dem Verteilungsserver herstellen.
Abfragetimeouts
Stellen Sie Folgendes sicher, um die Agent-Probleme zu beheben:
Stellen Sie sicher, dass der Momentaufnahme-Agent Lese-/Schreibberechtigungen für den Momentaufnahmeordner besitzt.
Stellen Sie sicher, dass ausreichend freier Speicherplatz auf den Medien für den Momentaufnahmeordner verfügbar ist.
Stellen Sie sicher, dass das Konto des Verleger-Agents Mitglied der festen Datenbankrolle "db_owner" ist.
Stellen Sie sicher, dass der Momentaufnahme-Agent nicht durch einen anderen Prozess (SPID) blockiert wird. Verwenden Sie den Aktivitätsmonitor oder die gespeicherten sp_who2-Prozeduren sys.dm_exec_requests DMV und sys.dm_os_waiting_tasks.
Die mssnapshot_agents- und mssnapshot_history-Tabellen können für die Verteilungsdatenbank abgefragt werden, um weitere Informationen zum Agent-Fehler zu erhalten. "Msrepl_errors" protokolliert ebenfalls Informationen zu Fehlermeldungen von Agents.
http://technet.microsoft.com/library/ms146939.aspx
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Generiert Benachrichtigungen. | Definiert, ob der Workflow eine Benachrichtigung generiert. | Ja |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 300 |
Aufträge mit unbekanntem Status anzeigen | Aufträge mit unbekanntem Status in die Monitorausgabe und den Benachrichtigungskontext einschließen. Wirkt sich auf die Integrität aus. | Nein |
Timeout (Sekunden) | Timeout (Sekunden) | 300 |
Synchronisierungszeit | Synchronisierungszeit |
|
Target | Microsoft.SQLServer.2014.Replication.Distributor | ||
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.2014.Replication.MonitorType.ReplicationAgentState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2014.Replication.Monitor.SnapshotAgentState" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2014.Replication.Distributor" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.Replication.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Replication.Monitor.SnapshotAgentState.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>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<XPathName>Snapshot$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>