SQL Server 2008: Recuperando status de execução dos jobs via script

Uma das tarefas diárias do DBA é a de examinar cuidadosamente o status de execução de todos os jobs agendados. Isso pode ser feito pela interface gráfica, é claro. Mas um bom script pode facilitar esse procedimento, ainda mais se a lista de jobs for extensa e se você precisar saber apenas aqueles que apresentaram falha na execução. Desta forma, elaborei a query abaixo disponibilizada.

use msdb

/*
Basicamente usar as tabelas sysjob e sysjobhistory do MSDB.
O step “0” não existe de verdade, ele apenas indica o status geral da execução completa do job.
Os demais steps existem e indicam o status individual de cada step.
*/

— Set para 1 caso queira que seja listado apenas os jobs que apresentaram erro
DECLARE @ListarSohErros BIT = 1;

— Set para 1 caso queira visualizar apenas o status do job e não dos steps.
DECLARE @ListarSohStep0 BIT = 1;


SELECT
j.name,
h.step_id,
h.step_name,
(CASE h.run_status
WHEN 0 THEN ‘Failed’
WHEN 1 THEN ‘Succeeded’
WHEN 2 THEN ‘Retry’
WHEN 3 THEN ‘Canceled’
WHEN 4 THEN ‘In Progress’
END) [status],
h.message,
h.run_date,
h.run_time,
h.run_duration
FROM sysjobs j
JOIN sysjobhistory h on j.job_id = h.job_id
WHERE h.run_status = (CASE WHEN @ListarSohErros = 0 THEN h.run_status ELSE 0 END)
AND h.step_id = (CASE WHEN @ListarSohStep0 = 0 THEN h.step_id ELSE 0 END)
ORDER BY j.name, h.step_id;



Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s