Sql job что это
Создание задания
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
В этой статье описывается создание задания агента SQL Server в SQL Server с помощью среды SQL Server Management Studio, Transact-SQL или управляющих объектов SQL Server (SMO).
Чтобы добавить шаги заданий, расписаний, предупреждений и уведомлений, которые можно отправить операторам, см. ссылки на разделы руководства.
Перед началом работы
Для создания задания используется
Перед началом
Ограничения
Назначение задания другому имени входа не гарантирует того, что новый владелец обладает достаточными разрешениями для успешного запуска задания.
безопасность
Чтобы изменить владельца задания, необходимо быть системным администратором.
Permissions
Использование среды SQL Server Management Studio
Создание задания агента SQL Server
В обозревателе объектов щелкните знак «плюс», чтобы развернуть сервер, на котором нужно создать задание агента SQL Server.
Щелкните знак «плюс», чтобы развернуть Агент SQL Server.
Щелкните правой кнопкой мыши папку Задания и выберите пункт Создать задание….
На странице Общие в диалоговом окне Создание задания измените общие свойства задания. Дополнительные сведения о параметрах, доступных на этой странице, см. в разделе Свойства задания — создание задания (страница «Общие»)
На странице Действия задайте шаги задания. Дополнительные сведения о параметрах, доступных на этой странице, см. в разделе Свойства задания — создание задания (страница «Шаги»)
На странице Расписания задайте расписания для задания. Дополнительные сведения о параметрах, доступных на этой странице, см. в разделе Свойства задания — создание задания (страница «Расписания»)
На странице Предупреждения задайте предупреждения для задания. Дополнительные сведения о параметрах, доступных на этой странице, см. в разделе Свойства задания — создание задания (страница «Предупреждения»)
На странице Уведомления задайте действия, которые должен выполнять агент Microsoft SQL Server после завершения задания. Дополнительные сведения о параметрах, доступных на этой странице, см. в разделе Свойства задания — создание задания (страница «Уведомления»).
Страница Цели используется для управления целевыми серверами в задании. Дополнительные сведения о параметрах, доступных на этой странице, см. в разделе Свойства задания — создание задания (страница «Цели»).
После завершения нажмите кнопку ОК.
Использование Transact-SQL
Создание задания агента SQL Server
В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
Дополнительные сведения см. в разделе:
Использование управляющих объектов SQL Server
Создание задания агента SQL Server
Вызовите метод Create класса Job на любом языке программирования, таком как Visual Basic, Visual C# или PowerShell. Пример кода см. в разделе Планирование автоматических административных задач в агенте SQL Server.
View a Job
В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.
В этой статье описывается, как просматривать задания агента Microsoft SQL Server в SQL Server с помощью среды SQL Server Management Studio или Transact-SQL.
Перед началом
безопасность
Использование среды SQL Server Management Studio
Просмотр задания
В обозревателе объектов подключитесь к экземпляру компонента Компонент SQL Server Database Engineи разверните его.
Раскройте узел Агент SQL Server, а затем узел Задания.
Правой кнопкой мыши щелкните задание и выберите Свойства.
Использование Transact-SQL
Просмотр задания
В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
Использование управляющих объектов SQL Server
Просмотр задания
Воспользуйтесь классом Job на любом языке программирования, таком как Visual Basic, Visual C# или PowerShell. Дополнительные сведения см. в статье Управляющие объекты SQL Server (SMO).
Планирование заданий агента SQL Server
Система планирования, обработчик заданий, средство общения и круглосуточного администрирования для Microsoft SQL Server
Какова бы ни была целеустремленность и квалификация сотрудника, не существует людей, способных работать каждый день и год за годом по 24 часа в сутки. И тем не менее, словно именно это ежедневно требуется от администраторов баз данных: никогда не допускать промахов, быть готовым к развертыванию и запуску программных продуктов по первому требованию и выполнять важнейшие задачи обслуживания в любое время суток. Однако мы все же можем выполнить эти требования благодаря службе агента SQL Server и ее компонентам. Агент SQL Server представляет собой систему планирования, обработчик заданий, средство общения и круглосуточного администрирования для Microsoft SQL Server. Вы сможете убедиться в этом сами, ознакомившись с предлагаемым обзором данного инструмента.
Компоненты агента SQL Server
Агент SQL Server выглядит как единая служба, но состоит из нескольких компонентов:
Тема агента SQL Server весьма обширна, и потребуется несколько статей, чтобы рассмотреть каждую грань его функциональности. В первой статье мы сосредоточимся на компоненте планирования заданий.
Агент SQL Server как система планирования заданий
Когда речь идет о необходимости круглосуточного присутствия, я имею в виду функциональность агента SQL Server как планировщика заданий. Агент SQL Server позволяет создавать задания различной сложности, состоящие из одного или нескольких «шагов», на каждом из которых можно выполнять команды на различных языках, вплоть до Transact-SQL, и наборы ориентированных на SQL задач (запросы или команды SQL Server Analysis Services, пакеты SQL Server Integration Services), а также сценарии PowerShell, VB Script и задачи операционной системы. Все шаги могут быть объединены в цепочку для последовательного выполнения или запускаться в зависимости от успеха, неудачи или завершения каждого шага в цепочке. Кроме того, вы можете отправлять предупреждения, сохранять выходные данные шага и создавать файлы журнала на каждом шаге. Выполнение задач можно запланировать согласно расписанию. Как шаги, так и собственно задание могут быть настроены для рассылки предупреждений и уведомлений. Можно даже настраивать задания для выполнения на удаленных целевых объектах.
Рассмотрим для примера процесс создания простого многошагового задания, которое усекает таблицу в базе данных после создания разностной резервной копии, чтобы убедиться в возможности восстановления в случае внесения ошибочных изменений.
Функции для создания задания можно найти с помощью обозревателя объектов в среде Microsoft SQL Server Management Studio (SSMS). Разверните узел сервера, и вы увидите агент SQL Server как подузел (см. экран 1).
Экран 1. Компоненты агента SQL Server |
Щелкните правой кнопкой мыши на разделе Jobs («Задания») и выберите в контекстном меню пункт New Job («Создать задание»). Вы увидите форму, представленную на экране 2.
Экран 2. Создание нового задания |
На данном этапе я заполнил необходимые поля, чтобы сделать то, что требуется на первом шаге: создать разностную резервную копию. По умолчанию владелец задания — текущий зарегистрированный пользователь. Задание принадлежит моей учетной записи в AD, но это не значит, что у него тот же контекст выполнения. По умолчанию задание выполняется в контексте учетной записи службы агента SQL Server. Это означает, что нужно предоставить учетной записи службы все права, необходимые для выполнения требуемых задач. Кроме того, если в выполнение задачи вовлечены какие-либо локальные или удаленные диски, служба агента SQL Server (или выполняющая учетная запись, так как это определяемый параметр) должна иметь права для доступа к соответствующим томам.
На каждом шаге мы видим два окна: общих настроек и дополнительных параметров. Общие настройки показаны на экране 2, и в этом окне можно объявить, какую команду следует выполнить. В окне дополнительных параметров представлены критерии, согласно которым происходят переходы от одного шага к другому, а также регистрируемая информация о шаге (см. экран 3).
Экран 3. Окно дополнительных параметров |
Необходимо сделать так, чтобы шаг усечения (следующий в цепочке) выполнялся только в случае успеха резервного копирования. Если резервное копирование прошло неудачно, то задание должно завершиться ошибкой. Я не пытаюсь повторить этот шаг, хотя такая возможность существует. Кроме того, я хочу записать выходные данные шага (вы увидите их на вкладке сообщений окна запроса в SSMS, если выполните программный код шага) в файл, хранящийся в C:\temp. Этот файл, если он существует, будет перезаписан, и я хочу сохранить выходные данные шага в журнале. Обычно я записываю выходные данные двумя способами, так как в самом файле выходные данные не обрезаются, а для журнала шага действуют ограничения по размеру строки. Вы также видите, что можно настроить задачу на выполнение другим пользователем, а не только учетной записью службы по умолчанию для агента SQL Server.
Теперь мы повторяем процесс для шага усечения с подходящими значениями (см. экран 4).
Экран 4. Создание шага усечения базы данных |
На шаге усечения назначается контекст базы данных, указывающий на базу данных, в которой планируется выполнить усечение таблицы. Я мог бы оставить ее как основную базу данных по умолчанию, при условии что команда содержит имя базы данных и схему (см. экран 5).
Экран 5. Настройка шага усечения базы данных |
Для шага усечения я готов повторить попытку до трех раз с ожиданием в течение одной минуты между попытками. Если шаг завершается успешно, то нужно, чтобы и задание завершилось как успешное. Аналогично, если шаг завершается неудачей, то неудачно и задание. Это учитывается при настройке предупреждений и уведомлений о заданиях. И вновь я хочу записать выходные данные в файл, созданный или указанный на первом шаге, но на этот раз присоединить выходные данные к существующему заданию, чтобы увидеть упорядоченные выходные данные всех шагов в одном файле.
При планировании задания пользователям предоставляются широкие возможности. Вы можете выполнить задание один раз, как показано на экране 6, или составить расписание для повторного выполнения.
Экран 6. Планирование выполнения задания |
Наконец, мы дошли до окна настройки параметров уведомления (см. экран 7). В нашем случае я хочу, чтобы мне (Тиму Форду) было послано уведомление о сбое задания через страницу, поскольку это важно. Если задание завершается (успешно или неудачно, неважно), я хочу получить по электронной почте сообщение о состоянии. Я также хочу сохранить в журнале Windows запись о состоянии задания, и, если оно выполнено успешно, удалить задание, так как оно предназначено лишь для разового выполнения.
Экран 7. Окно настройки параметров уведомления |
Как уже подчеркивалось в начале статьи, агент SQL Server — инструмент с широкими возможностями. В следующей статье мы рассмотрим другие функции агента SQL Server, такие как:
Поделитесь материалом с коллегами и друзьями
Sql job что это
Задания ( jobs ) — это наиболее часто используемое средство автоматизации административных операций. Задания можно определить как именованные наборы действий, которые можно запланировать для выполнения по расписанию (а можно выполнять и вручную). На многих рабочих серверах на предприятиях существует сложная система заданий, при помощи которых выполняется множество операций: резервное копирование, проверка целостности, дефрагментация и перестроение индексов, загрузка и выгрузка данных, генерация страниц HTML и т. п. Задания могут создаваться и в автоматическом режиме, например, при настройке доставки журналов или репликации.
Рис. 8.1. Окно свойств задания SQL Server Agent
Очень часто возникает необходимость скопировать задания с одного сервера на другой, чтобы упростить автоматизацию выполнения схожих операций. Проще всего сделать это так: в контекстном меню для созданного задания нужно выбрать команду Script Job As | CREATE TO | New Query Editor Window (Отскриптовать задание как | Создать | Новое окно редактора запросов). В результате в окно редактора кода будет загружен скрипт с командами на создание задания с аналогичными параметрами. Вам останется только исправить некоторые параметры в этом скрипте, сохранить его и запустить на выполнение на другом сервере.
Теперь рассмотрим параметры, которые можно настроить для создаваемого задания. На вкладке General вы можете настроить или просмотреть общие параметры для задания:
q Category (Категория) — этот параметр ни на что не влияет. Используется для группировки заданий и для их сортировки при отображении в Management Studio ;
q Description (Описание) — простое описание задания, например заметки, которые администратор делает для самого себя, чтобы не забыть, для чего предназначено это задание;
q Enabled (Включено) — если задание в настоящее время вам не нужно, но может потребоваться потом, вы можете просто снять этот флажок. Отключенное задание выполняться не будет. Можно также отключить расписание для этого задания;
q Source (Источник) — в этом параметре можно просмотреть сервер, который запускает данное задание на выполнение ( master server ). Параметр используется только для мультисерверных заданий (которые могут выполняться на разных серверах). Подробнее про мультисерверные задания будет рассказываться в разд. 8.1.6;
q Created (Создано), Last modified (Изменено в последний раз), Last Executed (Запускалось в последний раз) — это, соответственно, время создания, время последнего изменения и время последнего запуска на выполнение для задания.
На вкладке Steps (Этапы) производится самая важная часть настройки заданий. Здесь нужно будет определить этапы ( steps ), т. е. действия, из которых состоит задание. Создание этапа производится при помощи кнопки New (Новый). Вам потребуется указать имя создаваемого этапа и выбрать его тип. Если отбросить типы этапов, которые начинаются с префикса Replication (задания с такими этапами практически всегда создаются автоматически при настройке репликации), то в вашем распоряжении следующие варианты:
Отметим некоторые моменты, связанные с этим типом этапов:
· если вам нужны программные конструкции — циклы, проверки значений и т. п., то нужно использовать этот тип этапа;
· лучше всего, конечно, вначале написать и отладить скрипт при помощи специализированного средства (например, Sapien PrimalScript ), а затем скопировать его в окно свойств этапа;
q SQL Server Integration Services Package (Пакет SQL Server Integration Services ) — этот тип этапов позволяет выполнить по расписанию пакет SSIS ( DTS ). Это новый тип этапа, которого не было в SQL Server 2000 (в нем пакеты DTS можно было запускать из этапа CmdExec при помощи утилиты командной строки dtsrun ). Функциональность пакетов SSIS также очень велика. Подробнее про работу с SSIS будет рассказано в модуле 10;
q SQL Server Analysis Services Command (Команда SQL Server Analysis Services ) и SQL Server Analysis Services Query (Запрос SQL Server Analysis Services ) — эти типы задания позволяют выполнить, соответственно, команду или запрос к Analysis Services (ядру баз данных OLAP на SQL Server ).
Другие важные свойства для этапов можно определить при помощи вкладки Advanced :
q On success action (Действие при успехе) и On failure action (Действие при сбое) — эти параметры позволяют определить, что должно произойти, соответственно, после успешного или неуспешного (возникла ошибка) выполнения этого этапа. В вашем распоряжении три варианта (они одинаковые как для успешного завершения, так и для неуспешного):
· Go to the next step (Перейти к следующему этапу) — этот вариант используется по умолчанию для успешно завершившихся этапов;
· Quit the job reporting success (Выйти из задания, просигнализировав об успешном выполнении) — этот вариант предлагается использовать для последнего этапа, если он завершился успешно;
· Quit the job reporting failure (Выйти из задания, просигнализировав об ошибке) — это значение по умолчанию предлагается выбирать при возникновении ошибки в ходе выполнения этапа.
Рис. 8.2. Экран выбора первого этапа при запуске задания
q Retry attempts (Попытки повтора) — сколько раз SQL Server Agent будет пытаться повторить выполнение данного этапа, если его не удалось выполнить сразу;
q Retry intervals (Интервал повтора) — какая пауза будет сделана SQL Server Agent между попытками повторного выполнения (в минутах);
q Append output to existing file (Дописать результат к существующему файлу) — обычно этот параметр используется в тех случаях, когда вы хотите накапливать результаты выполнений этапов в каком-то файле;
q Append output to existing entry in table (Добавлять вывод к существующим записям в таблице) — если этот флажок установлен, то при каждом запуске задания в таблицу sysjobstepslogs будут добавляться новые строки. Если он снят, то при запуске задания будут удаляться все существовавшие до этого записи;
После того как вы определили нужные этапы задания, можно просмотреть их на вкладке Steps окна свойств задания. Обратите внимание, что вы можете менять этапы местами при помощи стрелок в нижней части экрана, а также определить этап, который будет запускаться первым (при запуске по расписанию).
Обычно следующее, что нужно сделать при создании задания, — подумать, нужно ли вам запускать это задание по расписанию. Если да, то нужно настроить расписание на вкладке Schedules (Расписания) свойств задания. Сама настройка расписания вряд ли требует каких-либо комментариев. Отметим только следующие моменты:
q в SQL Server 2005 предусмотрено четыре типа расписания (тип выбирается при помощи списка Schedule Type (Тип расписания) в окне свойств расписания):
· Recurring — повторяющееся действие, которое будет выполняться, например, каждый день, или каждую неделю, или каждый месяц;
· One time — действие будет выполнено только один раз;
· Start automatically when SQL Server Agent starts — задание будет запускаться автоматически каждый раз при запуске SQL Server Agent ;
· Start whenever the CPU become idle — задание будет запускаться во время простоя центрального процессора. Состояние простоя определяется на вкладке Advanced свойств SQL Server Agent ;
q чтобы задание сработало в соответствии с настроенным расписанием, необходимо, чтобы служба SQL Server Agent находилась в рабочем состоянии. Проверьте, настроен для нее режим автозапуска;
q с расписаниями можно работать отдельно от заданий. Фактически, это отдельный набор объектов. Чтобы открыть список всех имеющихся расписаний (с возможностью создания новых расписаний, изменения существующих и т. п.), можно воспользоваться командой Manage Schedules (Управлять расписаниями) контекстного меню для контейнера SQL Server Agent | Jobs ;
q если у вас уже есть подходящее расписание, но определенное для другого задания, создавать его заново не нужно. Достаточно воспользоваться кнопкой Pick (Выбрать) на вкладке Schedules и выбрать существующее расписание. Однако необходимо учитывать, что у расписания и у задания должен быть один и тот же владелец, поэтому таким способом можно выбрать только те расписания, владельцы которых совпадают с владельцем задания. Для выбора расписания достаточно выбрать в открывшемся окне Pick Schedule (Выбрать расписание) нужную строчку и нажать OK ;
q для одного задания можно настроить несколько расписаний. Во многих случаях это может быть очень удобно;
Часто бывает необходимо сделать так, чтобы задание по завершении само отчиталось о своем выполнении. Например, если у вас ночью проводится резервное копирование многих баз данных на нескольких серверах, то вы можете настроить соответствующие задания так, чтобы по окончании резервного копирования каждой базы данных отчет о нем отправлялся на почтовый ящик администратора. Просмотреть почтовые сообщения в почтовом ящике обычно проще, чем смотреть логи резервного копирования на всех серверах.
Настроить параметры «отчета» задания о своем завершении можно при помощи вкладки Notifications (Уведомления) свойств задания. На этой вкладке вы можете настроить следующие параметры:
· When the job fails — отправлять предупреждение только тогда, когда при выполнении задания возникла ошибка. Этот вариант выбирается по умолчанию;
· When the job succeeds — предупреждение будет отправляться только при успешном выполнении задания;
· When the job completes — предупреждение будет отправляться в любом случае;
q Write to the Windows Application event log (Записывать информацию о выполнении задания в журнал событий приложений Windows ) — такое решение можно использовать, например, если журналы событий Windows с разных серверов автоматически переносятся в базу данных или, например, в вашей сети работает приложение, которое автоматически отслеживает появление определенных записей в журналах событий Windows и предпринимает для них какие-либо действия (например, GFI SELM или EventTracker );
q Automatically delete job (Автоматически удалять задание) — при выборе этого варианта задание после выполнения само себя удалит. Обычно такое решение используется для заданий, которые выполняют разовые операции, например, создание базы данных-копии, в которую будут передаваться данные средствами доставки журналов или репликации.
На вкладке Targets (Назначения) свойств задания вы можете определить, на каких именно серверах будет выполняться это задание. Эта возможность доступна только для заданий на серверах, на которых настроен режим мультисерверного выполнения. Подробно про настройку этого режима говорится в разд. 8.1.6.