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

Откуда: Spb
Сообщений: 35
Доброго времени суток
Озадачился тут вопросом

Если вкратце

Есть SQL сервер с агентом и заданием назовем его к примеру Backup
Задание крутится по расписанию, если не срабатывает присылает уведомления, вроде все замечательно
В один прекрасный момент захожу на сервер, смотрю лог выполнения задания и вижу пропуски расписании запуска
Например
Запускалось в понедельник, вторник, среду, пятницу и воскресение. Хотя по расписанию этих пропусков не должно быть.
Никаких уведомлений о том что оно не запускалось ессно нет (корень проблемы уже нашел и поправил).

Собственно вопрос
Как запилить такой скриптик который контролировал бы выполнение этого задания?
Серверов много, боюсь такие проблемы еще имеются.
6 июн 13, 13:22    [14399499]     Ответить | Цитировать Сообщить модератору
 Re: Просмотреть задания  [new]
Gexan
Member

Откуда: Spb
Сообщений: 35
Название темы забыл поправить
6 июн 13, 13:25    [14399517]     Ответить | Цитировать Сообщить модератору
 Re: Просмотреть задания  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gexan
Никаких уведомлений о том что оно не запускалось ессно нет

Уведомление может быть только об ошибках при работе
Не бывает уведомлений о не запуске.
6 июн 13, 13:27    [14399533]     Ответить | Цитировать Сообщить модератору
 Re: Просмотреть задания  [new]
Gexan
Member

Откуда: Spb
Сообщений: 35
Это я прекрасно знаю.
Как бы написать скрипт, который смотрел бы к примеру в sys.jobhistory и при пропуске отправлял бы письмецо)
И повесить его допустим на тот же самый сервер, с расписанием запуска раз в час.
6 июн 13, 13:34    [14399589]     Ответить | Цитировать Сообщить модератору
 Re: Просмотреть задания  [new]
Gexan
Member

Откуда: Spb
Сообщений: 35
извините) конечно же sysjobhistory
6 июн 13, 13:36    [14399605]     Ответить | Цитировать Сообщить модератору
 Re: Просмотреть задания  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gexan
Как бы написать скрипт, который смотрел бы к примеру в sys.jobhistory и при пропуске отправлял бы письмецо)

напишите скрипт, который вам покажет разницу между текущей датой и датой последего бэкапа базы
6 июн 13, 13:37    [14399612]     Ответить | Цитировать Сообщить модератору
 Re: Просмотреть задания  [new]
Gexan
Member

Откуда: Spb
Сообщений: 35
Набросал на скорую руку скрипт
может кому-нибудь пригодится

USE msdb
DECLARE 
@today nvarchar (50), 
@tableHTML as nvarchar (max),
@subject_text as nvarchar (max),
@server as varchar(50)

SELECT @today = CONVERT(nvarchar(32), getdate(),112)
SELECT @server = HOST_NAME()
SET @tableHTML = 
   N'<H2>Отчет проверки запуска задания на сервере "'+@server+'"</H2>' +
   N'<table border="1">' +
   N'<tr>' +
   N'<td> Задание "Backup" на сервере '+@server+' не было запущено в назначенное время.</td>' +   
   N'</tr>' +               
   N'</table>';
SET @subject_text = 'Ошибка запуска задания "Backup" на сервере:"'+@server+'".'


IF NOT EXISTS(
SELECT NAME, RUN_DATE, RUN_TIME FROM sysjobhistory 
JOIN sysjobs ON sysjobhistory.job_id = sysjobs.job_id
WHERE NAME = 'Backup' AND run_date = @today)
BEGIN
	EXEC msdb.dbo.sp_send_dbmail 
	@profile_name='IT', --Название почтового профиля
	@recipients='mail@123.com', --Получатель
    @subject = @subject_text, 
    @body = @tableHTML,
    @body_format = 'HTML' 
END
10 июн 13, 18:42    [14417180]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить