Status des SQL Server-Agents für Verteiler

Microsoft.SQLServer.Replication.Windows.Monitor.Distributor.SQLServerAgentState (UnitMonitor)

Dieser Monitor überprüft, ob der SQL Server-Agent für den Verteiler ausgeführt wird.

Knowledge Base article:

Zusammenfassung

Der SQL Server-Agent-Dienst wird automatisch während des SQL Server-Setups installiert. Dieser Windows-Dienst wird von der Replikation zum Starten und Beenden der Aufträge des Replikations-SQL Server-Agents verwendet, die für die Datenverschiebung verantwortlich sind.

Ursachen

Der SQL Server-Agent-Dienst wurde ggf. manuell oder als Ergebnis eines Fehlers des Agents beendet. Untersuchen Sie das Windows-Anwendungsereignisprotokoll auf mögliche Ursachen für einen unerwartet beendeten Agent-Dienst.

Wenn die Eigenschaft "Startmodus" des Agents auf "Manuell" anstatt auf "Automatisch" festgelegt ist, wird der SQL Server-Agent-Dienst bei einem Neustart des Servers nicht automatisch neu gestartet.

Lösungen

Starten Sie den SQL Server-Agent-Dienst unter den Windows-Diensten, dem SQL Server-Konfigurations-Manager oder über SQL Server Management Studio. Wenn der "Startmodus" des Agents auf "Manuell" festgelegt ist, erwägen Sie eine Änderung in "Automatisch".

Starten, Beenden oder Anhalten des SQL Server-Agent-Diensts http://technet.microsoft.com/library/ms190695.aspx

Zusätzlich

Verwenden Sie den folgenden Link, um das Fehlerprotokoll des SQL Server-Agents anzuzeigen: http://msdn.microsoft.com/library/ms175488.aspx

In diesem Thema wird beschrieben, wie der Microsoft SQL Server-Agent für den automatischen Neustart konfiguriert wird, wenn er in SQL Server unter Windows unerwartet beendet werden sollte: https://msdn.microsoft.com/library/ms178130.aspx

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Warnungspriorität

Definiert die Warnungspriorität.

Normal

Warnungsschweregrad

Definiert den Warnungsschweregrad.

Fehler

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

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.

600

Synchronisierungszeit

Die Synchronisierungszeit, angegeben im 24-Stunden-Format. Dieser Wert kann ausgelassen werden.

 

Timeout (Sekunden)

Gibt an, wie lange der Workflow ausgeführt werden kann, bevor er geschlossen und als fehlerhaft markiert wird.

300

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

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Distributor
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL unter Windows-Replikation: Verteiler: Der SQL Server-Agent-Windows-Dienst wurde beendet.
Der SQL Server-Agent-Windows-Dienst wurde für die SQL Server-Instanz "{1}" auf dem Computer "{0}" für den Verteiler beendet.
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.Distributor.SQLServerAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.Distributor.SQLServerAgentState.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>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Running" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="RunningManualOrUnableToDetectStatus" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="NotRunning" HealthState="Error"/>
</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>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>