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.
Diese Regel erkennt nur Fehler bei Aufträgen, für die die Ereignisprotokollbenachrichtigung zu fehlgeschlagenen Aufträgen aktiviert wurde. Zur Konfiguration eines Auftrags mit Ereignisprotokollbenachrichtigung verfahren Sie wie folgt:
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 eine Problembehandlung für diesen Fehler auszuführen, zeigen Sie die dieser Warnung zugeordneten Ereignisse an, um Informationen zu den jeweiligen fehlgeschlagenen Aufträgen und Auftragsschritten zu erhalten. Prüfen Sie außerdem die Auftragsverlaufswerte, um den Zeitpunkt der letzten fehlerfreien Ausführung zu ermitteln. Führen Sie die folgenden Schritte aus, um die Verlaufswerte des Auftrags anzuzeigen:
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 das Konto, unter dem der SQLServerAgent-Dienst ausgeführt wird, ein Mitglied der Domänenbenutzergruppe ist. Das lokale Systemkonto verfügt nicht über Netzwerkzugriffsrechte. Wenn Ihre Aufträge Ressourcen im gesamten Netzwerk erfordern oder wenn Sie Operatoren durch E-Mail oder Pager benachrichtigen möchten, müssen Sie das Konto, unter dem der SQLServerAgent-Dienst ausgeführt wird, zu einem Mitglied der Domänenbenutzergruppe machen.
Target | Microsoft.SQLServer.2008.Agent | ||
Category | EventCollection | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{8CCE3391-B79E-4182-922E-BB540ED8396E}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.A_SQL_job_failed_to_complete_successfully_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.Agent" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{8CCE3391-B79E-4182-922E-BB540ED8396E}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.A_SQL_job_failed_to_complete_successfully_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Params/Param[1]$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>