Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проверить успешность выполнения запланированых заданий (t-sql)  [new]
Рабинович
Member

Откуда:
Сообщений: 58
Доброго времени суток.
Подскажите, пожалуйста, реально ли с помощью t-sql узнать успешно ли выполнились таски в шелулере MS SQL 2008 R2 ?
И если реально, то как?
14 май 14, 11:21    [16014202]     Ответить | Цитировать Сообщить модератору
 Re: Проверить успешность выполнения запланированых заданий (t-sql)  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Рабинович
реально ли с помощью t-sql узнать успешно ли выполнились таски в шелулере

чего?
14 май 14, 11:43    [16014354]     Ответить | Цитировать Сообщить модератору
 Re: Проверить успешность выполнения запланированых заданий (t-sql)  [new]
andy st
Member

Откуда:
Сообщений: 899
Рабинович,

exec msdb.dbo.sp_help_job
?
14 май 14, 12:01    [16014485]     Ответить | Цитировать Сообщить модератору
 Re: Проверить успешность выполнения запланированых заданий (t-sql)  [new]
Гузы
Guest
Рабинович,
А лучше ли настроить DbMail на случай аварийного завершения?
14 май 14, 12:03    [16014504]     Ответить | Цитировать Сообщить модератору
 Re: Проверить успешность выполнения запланированых заданий (t-sql)  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Гузы
Рабинович,
А лучше ли настроить DbMail на случай аварийного завершения?
Иногда почта не отрабатывает, например после к-л манипуляций с доменом (н-р перезагрузка осн. контроллера).

У нас так пару раз в месяц бывает (на почту должен приходить отчет о бекапе). :) СКЛ2005/Вин2003/Аутлук2003.
Приходится смотреть Джоб Хистори и обычно просто перегружать скл-агент.
14 май 14, 12:17    [16014621]     Ответить | Цитировать Сообщить модератору
 Re: Проверить успешность выполнения запланированых заданий (t-sql)  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Вот "рыба" для составления такого запроса:
;with JobHistory
as
(
select
	j.name
	, replace(convert(varchar, convert(datetime, cast(jh.run_date as varchar), 102), 102), '.', '-')
		+ ' ' 
		+ left(right('000000' + cast(jh.run_time as varchar), 6), 2) + ':'
		+ substring(right('000000' + cast(jh.run_time as varchar), 6), 3, 2) + ':'
		+ right(right('000000' + cast(jh.run_time as varchar), 6), 2) as RunDate
	, case jh.run_status
		when 0 then 'Failed'
		when 1 then 'Succeeded'
		when 2 then 'Retry'
		when 3 then 'Canceled'
		end as RunStatus
	, row_number() over(partition by jh.job_id order by jh.[instance_id] desc) as RN
from msdb.[dbo].[sysjobhistory] jh
join msdb.dbo.sysjobs j on jh.job_id = j.job_id
where run_date >= cast(convert(varchar, getdate(), 112) as int) - 1
and jh.step_id = 0
--and jh.run_status <> 1
	)
select
	name
	, RunDate
	, RunStatus
from JobHistory
where RN = 1
--and RunStatus <> 'Succeeded'
order by RunDate desc
Обычно мы его используем для получения списка "ошибочно" отработавших джобов для всех серверов сразу, убрав последний комментарий, естественно - (если мне не изменяет склероз) начиная с SSMS 2008R2 один запрос можно применять к нескольким серверам одновременно.
14 май 14, 12:29    [16014731]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить