Nous avons un travail SQL Server Agent qui exécute un plan de maintenance pour réindexer toute la base de données sur le serveur. Récemment, cela a échoué, mais l'historique des travaux ne fournit pas suffisamment d'informations pour diagnostiquer le problème.
Dans l'historique du travail, il indique Le travail a échoué. Le travail a été appelé par l'utilisateur foo\bar. La dernière étape à exécuter était l'étape 1 (Reconstruire l'index).
Dans la fenêtre de détails se trouvent plusieurs messages sous la forme suivante:
Executing query "ALTER INDEX [something] ON [a...".: 0% complete End Progress Progress: 2015-03-15 22:51:23.67 Source: Rebuild Index Task
L'instruction SQL en cours d'exécution est tronquée, et je suppose que la sortie de l'instruction est également tronquée, ce qui m'empêche de pouvoir identifier quelle instruction particulière a échoué et pourquoi. Existe-t-il un moyen d'extraire le texte intégral de ces messages?
Existe-t-il un moyen d'extraire le texte intégral de ces messages?
Vous pouvez y parvenir de 2 manières - Passez à l'étape de la tâche et sélectionnez l'onglet Avancé:
une. Sortie dans un fichier (<== Ma méthode préférée)
b. "Se connecter à la table" et "Inclure la sortie de l'étape dans l'historique" (<== Vous devez supprimer msdb..sysjobhistory
À long terme car les messages sont stockés sous la forme nvarchar(max)
au lieu de nvarchar(1024)
)
Pour voir les informations supplémentaires enregistrées, vous devez utiliser cette procédure stockée sp_help_jobsteplog ou vous pouvez interroger directement la table msdb.dbo.sysjobstepslogs
.
Vous pouvez obtenir le texte intégral:
select properties
step
et cliquez sur le bouton edit
advanced
. Ici vous pouvez voir le chemin du journal.Maintenant, c'est simple, suivez le chemin.