Ein SQL Server-Agent-Auftrag ist fehlgeschlagen. Die Durchführung von zu bestimmten Zeiten oder Intervallen geplanten SQL Server-Aufgaben sowie der Ermittlung bestimmter Bedingungen, für die Administratoren eine Aktion, wie die Warnung durch Seiten oder E-Mails oder einer Aufgabe zum Umgang mit den Bedingungen definiert haben, gehört zum Funktionsumfang von SQL Server-Agent. Der SQL Server-Agent dient auch der Durchführung von Replikationsaufgaben, welche von Administratoren definiert wurden. Hinweis: Diese Regel ist standardmäßig deaktiviert. Verwenden Sie, falls erforderlich, Überschreibungen, um diese zu aktivieren.
Fehler bei einem SQL Server-Agent-Auftrag. Der SQL Server-Agent ist für das Ausführen von SQL Server-Tasks verantwortlich, die so geplant sind, dass sie zu bestimmten Zeiten oder in bestimmten Intervallen auftreten und bestimmte Bedingungen feststellen, für die Administratoren eine Aktion definiert haben, z. B. Warnungen über Pager oder E-Mail oder ein Task, der die Bedingungen angeht. Der SQL Server-Agent wird auch zum Ausführen von Replikationstasks verwendet, die von Administratoren definiert wurden.
Mit dieser Regel werden Fehler nur bei Aufträgen mit Ereignisprotokollbenachrichtigung über den Auftragsfehler erkannt. Sie können den Auftrag wie folgt mit Ereignisprotokollbenachrichtigung konfigurieren:
Führen Sie SQL Server Management Studio aus.
Erweitern Sie eine Servergruppe, und erweitern Sie dann einen Server.
Erweitern Sie "Verwaltung", und erweitern Sie dann "SQL Server-Agent".
Klicken Sie mit der rechten Maustaste auf den entsprechenden Auftrag, und wählen Sie "Eigenschaften" aus.
Wählen Sie den Abschnitt "Benachrichtigungen".
Aktivieren Sie das Kontrollkästchen "In das Windows-Anwendungsereignisprotokoll schreiben".
Wählen Sie "Bei Fehlschlagen des Auftrags" oder "Beim Abschluss des Auftrags".
Um diesen Fehler zu beheben, überprüfen Sie das mit der Warnung verbundene Ereignis, um erkennen zu können, welche Aufträge und Auftragsschritte genau fehlgeschlagen sind. Überprüfen Sie auch die Verlaufsergebnisse des Auftrags, um festzustellen, zu welchem Datum der Auftrag zuletzt korrekt ausgeführt wurde. Beim Verlauf der Auftragsausführung können Sie wie folgt vorgehen:
Führen Sie SQL Server Management Studio aus.
Erweitern Sie eine Servergruppe, und erweitern Sie dann einen Server.
Erweitern Sie "Verwaltung", und erweitern Sie dann "SQL Server-Agent".
Klicken Sie mit der rechten Maustaste auf den entsprechenden Auftrag, und wählen Sie dann "Auftragsverlauf anzeigen" aus.
Überprüfen Sie auch, ob es sich bei dem vom SQL Server-Agenten genutzten Dienstkonto um ein Mitglied der Gruppe "Domänenbenutzer" handelt. Das Konto "Lokales System" verfügt über keine Zugriffsrechte auf das Netzwerk. Wenn Sie also für den Auftrag Ressourcen im Netzwerk benötigen oder Operatoren per E-Mail oder Pager benachrichtigen möchten, müssen Sie das vom SQL Server-Agenten ausgeführte Konto als Mitglied der Gruppe "Domänenbenutzer" festlegen.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Nein |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 2 |
Target | Microsoft.SQLServer.2016.Agent | ||
Category | EventCollection | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2016ID='{8CCE3391-B79E-4182-922E-BB540ED8396E}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2016.A_SQL_job_failed_to_complete_successfully_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.Agent" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{8CCE3391-B79E-4182-922E-BB540ED8396E}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>208</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Agent"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Params/Param[3]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>Failed</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.A_SQL_job_failed_to_complete_successfully_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Params/Param[1]$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>