Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Агент SQL Server — это служба Microsoft Windows, которая выполняет запланированные административные задачи, которые называются заданиями в SQL Server 2014.
В этом разделе
Преимущества агента SQL Server
Агент SQL Server использует SQL Server для хранения сведений о задании. Задания содержат один или несколько шагов задания. Каждый шаг содержит собственную задачу, например резервное копирование базы данных.
Агент SQL Server может выполнять задание по расписанию, в ответ на определенное событие или по запросу. Например, если вы хотите создать резервную копию всех серверов компании каждый день недели после часов, эту задачу можно автоматизировать. Планирование резервного копирования для запуска после 22:00 в понедельник по пятницу; Если резервная копия столкнулась с проблемой, агент SQL Server может записать событие и уведомить вас.
Замечание
По умолчанию служба агента SQL Server отключена при установке SQL Server 2014, если пользователь явно не выбирает автоматическое запуск службы.
Компоненты агента SQL Server
Агент SQL Server использует следующие компоненты, чтобы определить выполняемые задачи, когда выполнять задачи и как сообщить об успешном выполнении или сбое задач.
Вакансии
Задание — это указанный ряд действий, выполняемых агентом SQL Server. Используйте задания, чтобы определить задачу администрирования, которую можно запустить один или несколько раз и отслеживать ее успешное выполнение или сбой. Задание может выполняться на одном локальном или на нескольких удаленных серверах.
Это важно
Задания агента SQL Server, активные во время отказа в экземпляре отказоустойчивого кластера SQL Server, не продолжают выполнение после переключения на другой узел кластера. Задания агента SQL Server, которые выполняются в момент приостановки узла Hyper-V, не возобновляются, если пауза приводит к переключению на резервный узел. Задания, которые начинаются, но завершаются сбоем из-за переключения на резервную систему, регистрируются как начатые, однако не отображают дополнительные записи в журнале о завершении или сбое. Задания агента SQL Server в этих сценариях, как представляется, никогда не завершались.
Задания можно выполнять несколькими способами:
Согласно одному или нескольким расписаниям.
В ответ на одно или несколько оповещений.
Выполнив хранимую процедуру sp_start_job.
Каждое действие в задании — это шаг задания. Например, шаг задания может состоять из выполнения инструкции Transact-SQL, выполнения пакета служб SSIS или выдачи команды серверу Служб Analysis Services. Этапы задания управляются как часть задания.
Каждый шаг задания выполняется в определенном контексте безопасности. Для действий задания, использующих Transact-SQL, используйте инструкцию EXECUTE AS, чтобы задать контекст безопасности для шага задания. Для других типов действий задания используйте учетную запись прокси-сервера, чтобы задать контекст безопасности для шага задания.
Расписание
Расписание указывает, когда выполняется задание. Несколько заданий могут выполняться по тому же расписанию, а несколько расписаний могут применяться для одного задания. Расписание может определить следующие условия для времени выполнения задания:
При каждом запуске агента SQL Server.
Всякий раз, когда загрузка ЦП компьютера достигает уровня, который вы определили как бездействие.
Один раз в определенный день и время.
На регулярной основе.
Дополнительные сведения см. в разделе Создание и присоединение расписаний к заданиям.
Уведомления
Оповещение — это автоматический ответ на определенное событие. Например, событием может быть задание, которое начинается, или достижение системными ресурсами определенного порогового значения. Вы определяете условия, при которых происходит оповещение.
Оповещение может реагировать на одно из следующих условий:
События SQL Server
Условия производительности SQL Server
События инструментария управления Microsoft Windows (WMI) на компьютере, на котором запущен агент SQL Server
Оповещение может выполнять следующие действия:
Уведомление одного или нескольких операторов
Выполнение задания
Дополнительные сведения см. в статье Оповещения.
Операторы
Оператор определяет контактные данные для отдельного лица, ответственного за обслуживание одного или нескольких экземпляров SQL Server. В некоторых предприятиях обязанности оператора назначаются одному человеку. На предприятиях с несколькими серверами многие пользователи могут совместно использовать обязанности оператора. Оператор не содержит сведений о безопасности и не определяет субъект безопасности.
SQL Server может уведомлять операторов оповещений с помощью одного или нескольких из следующих элементов:
Эл. почта
Пейджер (по электронной почте)
net send
Замечание
Чтобы отправлять уведомления с помощью net send, служба Windows Messenger должна быть запущена на компьютере, на котором находится агент SQL Server.
Это важно
Параметры Pager и net send будут удалены из Агент SQL Server в будущей версии SQL Server. Избегайте использования этих функций при разработке новых приложений и планируйте изменять приложения, которые в настоящее время используют эти функции.
Чтобы отправлять уведомления операторам с помощью электронной почты или пейджеров, необходимо настроить агент SQL Server для использования компонента Database Mail. Дополнительные сведения см. в разделе Database Mail.
Оператор можно определить как псевдоним для группы отдельных лиц. Таким образом, все члены этого псевдонима одновременно уведомляются. Дополнительные сведения см. в статье Операторы.
Безопасность для администрирования агента SQL Server
Агент SQL Server использует роли базы данных SQLAgentUserRole, SQLAgentReaderRole и SQLAgentOperatorRole в базе данных msdb для управления доступом к агенту SQL Server для пользователей, которые не являются членами sysadmin предопределенной роли сервера. Помимо этих фиксированных ролей базы данных, подсистемы и прокси-серверы помогают администраторам базы данных обеспечить выполнение каждого шага задания с минимальными разрешениями, необходимыми для выполнения задачи.
Роли
Члены предопределенных ролей базы данных SQLAgentUserRole, SQLAgentReaderRole и SQLAgentOperatorRole в msdb и члены предопределенной sysadmin роли сервера имеют доступ к агенту SQL Server. Пользователь, который не принадлежит ни одной из этих ролей, не может использовать агент SQL Server. Дополнительные сведения о ролях, используемых агентом SQL Server, см. в разделе "Реализация безопасности агента SQL Server".
Подсистемы
Подсистема — это предопределенный объект, представляющий функциональные возможности, доступные для шага задания. Каждый прокси-сервер имеет доступ к одной или нескольким подсистемам. Подсистемы обеспечивают безопасность, так как они разделяют доступ к функциям, доступным прокси-серверу. Каждый шаг задания выполняется в контексте прокси, за исключением шагов задания Transact-SQL. Transact-SQL шаги задания используют команду EXECUTE AS, чтобы установить контекст безопасности.
SQL Server определяет подсистемы, перечисленные в следующей таблице:
| Имя подсистемы | Описание |
|---|---|
| Скрипт Microsoft ActiveX | Выполните шаг задания со сценариями ActiveX. **Важный** Подсистема сценариев ActiveX будет удалена из агента SQL Server в будущей версии MicrosoftSQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. |
| Операционная система (CmdExec) | Запустите исполняемую программу. |
| PowerShell | Запустите шаг выполнения скрипта PowerShell. |
| Распространитель репликации | Выполните шаг задания, который активирует Агент распределения репликации. |
| Объединение репликаций | Выполните шаг задания, который активирует агент слияния репликации. |
| Средство чтения очередей репликации | Запустите шаг задания, который активирует агент чтения очереди репликации. |
| Снимок репликации | Запустите шаг задания для активации агента репликации мгновенного снимка. |
| Читатель журнала транзакций репликации | Выполните шаг задания, который запускает агент репликации для чтения журналов. |
| Команда Analysis Services | Выполните команду Analysis Services. |
| Запрос в серверах Analysis Services | Запустите запрос службы Analysis Services. |
| Выполнение пакетов служб SSIS | Запустите пакет служб SSIS. |
Замечание
Так как Transact-SQL действия задания не используют прокси-серверы, для Transact-SQL действий задания нет подсистемы агента SQL Server.
Агент SQL Server применяет ограничения подсистемы, даже если субъект безопасности прокси-сервера обычно имеет разрешение на выполнение задачи на шаге задания. Например, прокси-сервер для пользователя, являющегося членом предопределенной роли сервера sysadmin, не может выполнять шаг задания SSIS, если прокси-сервер не имеет доступа к подсистеме служб SSIS, даже если пользователь может запускать пакеты служб SSIS.
Прокси
Агент SQL Server использует прокси-серверы для управления контекстами безопасности. Прокси-сервер можно использовать в нескольких шагах задания. Члены sysadmin предопределенных ролей сервера могут создавать прокси.
Каждый прокси-сервер соответствует учетным данным безопасности. Каждый прокси-сервер может быть связан с набором подсистем и набором имен входа. Прокси-сервер можно использовать только для шагов задания, использующих подсистему, связанную с прокси-сервером. Чтобы создать шаг задания, использующий конкретный прокси-сервер, владелец задания должен использовать имя входа, связанное с этим прокси-сервером, или быть членом роли с неограниченным доступом к прокси-серверам. Члены фиксированной серверной роли имеют неограниченный доступ к прокси. Члены SQLAgentUserRole, SQLAgentReaderRole или SQLAgentOperatorRole могут использовать только прокси-серверы, к которым они получили определенный доступ. Каждому пользователю, являющегося членом любой из этих предопределенных ролей агента SQL Server, необходимо предоставить доступ к определенным прокси-серверам, чтобы пользователь смог создать шаги задания, использующие эти прокси-серверы.
Связанные задачи
Чтобы автоматизировать администрирование SQL Server, выполните следующие действия.
Определите, какие административные задачи или события сервера выполняются регулярно и могут ли эти задачи или события выполняться программным способом. Задача является хорошим кандидатом для автоматизации, если она включает в себя прогнозируемую последовательность шагов и происходит в определенное время или в ответ на определенное событие.
Определите набор заданий, расписаний, оповещений и операторов с помощью SQL Server Management Studio, Transact-SQL скриптов или объектов управления SQL Server (SMO). Дополнительные сведения см. в разделе "Создание заданий".
Запустите процессы агента SQL Server, которые вы определили.
Замечание
Для экземпляра SQL Server по умолчанию служба SQL Server называется SQLSERVERAGENT. Для именованных экземпляров служба агента SQL Server называется SQLAgent$instancename.
Если выполняется несколько экземпляров SQL Server, можно использовать многосерверное администрирование для автоматизации задач, распространенных во всех экземплярах. Дополнительные сведения см. в статье "Автоматическое администрирование по всей организации".
Используйте следующие задачи, чтобы приступить к работе с агентом SQL Server:
| Описание | Тема |
| Описывает настройку агента SQL Server. | Настройка агента SQL Server |
| Описание запуска, остановки и приостановки службы агента SQL Server. | Запуск, остановка или приостановка службы агента SQL Server |
| Описывает рекомендации по указанию учетной записи для службы агента SQL Server. | Выбор учетной записи для службы агента SQL Server |
| Описывает использование журнала ошибок агента SQL Server. | журнал ошибок агента SQL Server |
| Описывает использование объектов производительности. | Использование объектов производительности |
| Описывает мастер плана обслуживания, который является служебной программой, которую можно использовать для создания заданий, оповещений и операторов для автоматизации администрирования экземпляра SQL Server. | Использование мастера планов обслуживания |
| Описывает, как автоматизировать административные задачи с помощью агента SQL Server. | Задачи автоматизированного администрирования (агент SQL Server) |