Un travail de SQL Server Agent a échoué. Celui-ci est responsable de l'exécution des tâches SQL Server planifiées à des heures ou à des intervalles spécifiques ainsi que de la détection de conditions particulières pour lesquelles les administrateurs ont défini une action, comme l'alerte d'une personne par radiomessagerie ou par e-mail, ou une tâche traitant les conditions. SQL Server Agent est également utilisé pour exécuter des tâches de réplication définies par des administrateurs.
Cette règle ne détecte l'échec que pour les travaux assortis d'une notification concernant les échecs de travaux dans le journal des événements. Pour configurer un travail avec notification dans le journal des événements, vous pouvez procéder comme suit :
Exécutez SQL Server Management Studio.
Développez un groupe de serveurs, puis développez un serveur.
Développez Gestion, puis développez Agent SQL Server.
Cliquez avec le bouton droit sur le travail approprié et choisissez Propriétés.
Sélectionnez la section « Notifications ».
Cochez la case « Écrire dans le journal des événements des applications Windows ».
Sélectionnez Lors de l'échec du travail ou Lorsque le travail est terminé.
Pour corriger cet incident, affichez les événements associés à cette alerte pour mieux comprendre les travaux et les étapes ayant échoué. Vérifiez également les valeurs de l'historique du travail afin de déterminer la dernière date d'exécution du travail. Pour afficher les valeurs de l'historique du travail, procédez comme suit :
Exécutez SQL Server Management Studio.
Développez un groupe de serveurs, puis développez un serveur.
Développez Gestion, puis développez Agent SQL Server.
Cliquez avec le bouton droit de la souris sur le travail approprié et choisissez « Afficher l'historique des travaux ».
De même, vérifiez si le compte utilisé par les services SQL Server Agent fait partie du groupe Utilisateurs du domaine. Le compte LocalSystem ne dispose pas de droits d'accès au réseau. Par conséquent, si vos travaux nécessitent des ressources sur le réseau, ou si vous voulez notifier les opérateurs par radiomessagerie ou par e-mail, vous devez définir le compte utilisé par le service SQL Server Agent comme membre du groupe Utilisateurs du domaine.
Nom | Description | Valeur par défaut |
Activé | Active ou désactive le flux de travail. | Non |
Priorité | Définit la priorité de l'alerte. | 1 |
Gravité | Définit la gravité de l'alerte. | 2 |
Target | Microsoft.SQLServer.2012.Agent | ||
Category | EventCollection | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{8CCE3391-B79E-4182-922E-BB540ED8396E}';MOM2012GroupID={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.2012.A_SQL_job_failed_to_complete_successfully_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.Agent" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{8CCE3391-B79E-4182-922E-BB540ED8396E}';MOM2012GroupID={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.2012.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>