Управление шагами задания

Область применения: SQL Server Управляемый экземпляр SQL Azure

Внимание

В Управляемом экземпляре Azure SQL в настоящее время поддерживается большинство функций агента SQL Server (но не все). Подробные сведения см. в статье Различия в T-SQL между Управляемым экземпляром SQL Azure и SQL Server.

Шаг задания — это действие, производимое заданием над базой данных или сервером. Каждое задание должно иметь, по крайней мере, один шаг. Шагами задания могут быть:

  • Исполняемые программы и команды операционной системы.

  • Инструкции Transact-SQL, содержащие хранимые процедуры и расширенные хранимые процедуры.

  • Скрипты PowerShell.

  • Сценарии Microsoft ActiveX.

  • Задачи репликации.

  • Задачи служб Analysis Services.

  • Пакеты служб Integration Services.

Каждый шаг задания выполняется в определенном контексте безопасности. Если шаг задания указывает учетную запись-посредник, он выполняется в контексте безопасности учетных данных для учетной записи-посредника. Если на шаге задания не указывается учетная запись-посредник, этот шаг выполняется в контексте учетной записи службы агента SQL Server. Только члены предопределенной роли сервера "sysadmin" могут создавать задания, которые не указывают учетную запись-посредник явным образом.

Так как действия задания выполняются в контексте определенного пользователя Microsoft Windows, этот пользователь должен иметь разрешения и конфигурацию, необходимые для выполнения шага задания. Например, если создается задание, в котором требуется буква диска или путь в формате UNC, шаги задания могут выполняться под учетной записью пользователя Windows во время проверки задач. Однако для шага задания пользователь Windows должен иметь необходимые разрешения, конфигурации буквы диска или доступ к требуемому диску. В противном случае шаг задания завершится ошибкой. Во избежание этой проблемы нужно, чтобы учетная запись-посредник для каждого шага задания имела необходимые разрешения для задачи, которую выполняет шаг задания. Дополнительные сведения см. в разделе Защита и обеспечение безопасности (компонент Database Engine).

Журналы шагов задания

агент SQL Server может записывать выходные данные из некоторых шагов задания в файл операционной системы или в таблицу sysjobstepslogs в базе данных msdb. Следующие шаги задания могут записывать выходные данные в оба адресата:

  • Исполняемые программы и команды операционной системы.

  • Инструкции Transact-SQL

  • Задачи служб Analysis Services.

Только шаги задания, которые выполняются пользователями, являющимися членами предопределенной роли сервера "sysadmin", могут записывать выходные данные шагов задания в файлы операционной системы. Если шаги задания выполняются пользователями, которые являются членами предопределенной роли базы данных SQLAgentUserRole, SQLAgentReaderRole или SQLAgentOperatorRole в базе данных "msdb", то выходные данные этих шагов задания могут быть записаны только в таблицу "sysjobstepslogs".

Журналы шагов задания автоматически удаляются при удалении заданий или шагов заданий.

Примечание.

Задача репликации и ведение журнала этапов заданий пакетов служб Integration Services обрабатываются соответствующими подсистемами. Вы не можете использовать агент SQL Server для настройки ведения журнала шагов выполнения для этих типов действий задания.

Исполняемые программы и команды операционной системы в качестве шагов задания

В качестве шагов задания можно использовать исполняемые программы и команды операционной системы. Эти файлы могут иметь расширения BAT, CMD, COM и EXE.

При использовании исполняемой программы или команды операционной системы в качестве шага задания необходимо указать следующее.

  • Код завершения процесса, возвращаемый при успешном выполнении команды.

  • Команда для выполнения. Чтобы выполнить команду операционной системы, необходимо просто выполнить саму команду. Для внешней программы это ее имя и аргументы, например: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Примечание.

    Необходимо предоставить полный путь к исполняемой программе, если только она не размещена в каталоге, указанном в системном пути или в пути пользователя, от имени которого выполняется шаг задания.

Шаги задания Transact-SQL

При создании шага задания Transact-SQL необходимо выполнить следующие действия.

  • Указать базу данных, в которой нужно выполнить задание.

  • Ввести инструкцию Transact-SQL для выполнения. Инструкция может вызывать хранимую процедуру или расширенную хранимую процедуру.

При необходимости можно открыть существующий файл Transact-SQL в качестве команды для шага задания.

Transact-SQL в шагах задания не использует учетные записи-посредники агента SQL Server. Вместо этого шаг задания выполняется как владелец шага задания или как учетная запись службы агент SQL Server, если владелец шага задания является членом предопределенных ролей сервера sysadmin. Члены предопределенной роли сервера sysadmin также могут настроить выполнение шагов задания Transact-SQL в контексте другого пользователя, указав параметр database_user_name в хранимой процедуре sp_add_jobstep. Дополнительные сведения см. в разделе sp_add_jobstep (Transact-SQL).

Примечание.

Один шаг задания Transact-SQL может содержать несколько пакетов. Шаги задания Transact-SQL могут содержать внедренные команды GO.

Шаги заданий со скриптами PowerShell

При создании шага задания со скриптом PowerShell необходимо указать в качестве команды для шага одно из двух.

  • Текст скрипта PowerShell.

  • Существующий файл скрипта PowerShell.

Подсистема PowerShell агент SQL Server открывает сеанс PowerShell и загружает оснастки SQL Server PowerShell. Скрипт PowerShell, используемый в качестве команды шага задания, может ссылаться на поставщик и командлеты SQL Server PowerShell. Дополнительные сведения о написании скриптов PowerShell с помощью оснастки SQL Server PowerShell см. в sql Server PowerShell.

Шаги задания скрипта ActiveX

Внимание

Шаг задания сценариев ActiveX будет удален из агент SQL Server в будущей версии Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

При создании шага задания скрипта ActiveX необходимо:

  • Указать язык скрипта, на котором будет записан шаг задания.

  • Записать скрипт ActiveX.

Также можно открыть существующий файл скрипта ActiveX как команду для шага задания. В противном случае команды скрипта ActiveX могут быть скомпилированы с помощью внешних средств (например, при помощи Microsoft Visual Basic), а затем выполнены как исполняемые программы.

Если команда шага задания является скриптом ActiveX, можно использовать объект "SQLActiveScriptHost" для печати выходных данных в журнал шагов задания или для создания объектов COM. SQLActiveScriptHost — это глобальный объект, представленный системой размещения агент SQL Server в пространстве имен скрипта. Объект содержит два метода (Print и CreateObject). Представленный пример показывает, как скрипт ActiveX работает в Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step  
' Create a Dmo.Server object. The object connects to the  
' server on which the script is running.  
  
Set oServer = CreateObject("SQLDmo.SqlServer")  
oServer.LoginSecure = True  
oServer.Connect "(local)"  
'Disconnect and destroy the server object  
oServer.DisConnect  
Set oServer = nothing  

Шаги задания репликации

При создании публикаций и подписок с помощью репликации задания репликации создаются по умолчанию. Тип создаваемого задания определяется типом репликации (моментальный снимок, транзакционная репликация или репликация слиянием) и используемыми параметрами.

Шаги задания репликации активируют один из следующих агентов репликации:

  • Агент моментальных снимков (задание Snapshot)

  • Агент чтения журнала (задание LogReader)

  • Агент распространителя (задание Distribution)

  • Агент слияния (задание Merge)

  • Агент чтения очереди (задание QueueReader)

При настройке репликации можно указать для запуска агентов репликации одним из трех способов: непрерывно после запуска агент SQL Server по запросу или по расписанию. Дополнительные сведения об агентах репликации см. в разделе Обзор агентов репликации.

Шаги задания служб Analysis Services

агент SQL Server поддерживает два разных типа шагов задания Служб Analysis Services, шаги задания команд и шаги задания запроса.

Шаги задания команды служб Analysis Services

При создании шага задания командного задания служб Analysis Services необходимо:

  • Определить сервер базы данных OLAP, на котором необходимо выполнить шаг задания.

  • Ввести инструкцию, которую необходимо выполнить. Оператор должен быть методом execute XML для служб Analysis Services. Инструкция может не содержать полный конверт SOAP или метод обнаружения XML для служб Analysis Services. Обратите внимание, что, хотя СРЕДА SQL Server Management Studio поддерживает полные конверты SOAP и метод обнаружения, агент SQL Server действия задания не выполняются.

Шаги задания запроса служб Analysis Services

При создании шага задания запроса служб Analysis Services необходимо:

  • Определить сервер базы данных OLAP, на котором необходимо выполнить шаг задания.

  • Ввести инструкцию, которую необходимо выполнить. Эта инструкция должна быть запросом многомерных выражений (MDX).

Дополнительные сведения о многомерных выражениях см. в разделе Общие сведения об инструкциях многомерных выражений.

Пакеты служб Integration Services

При создании шага задания пакета служб Integration Services необходимо выполнить следующее:

  • Указать источник пакета.

  • Указать размещение пакета.

  • Указать файлы конфигурации, если они необходимы для пакета.

  • Указать файлы команд, если они необходимы для пакета.

  • Указать необходимую для пакета проверку. Например, можно указать, что пакет должен быть подписанным или иметь определенный идентификатор пакета.

  • Указать источники данных для пакета.

  • Указать регистраторы для пакета.

  • Указать переменные и значения, которые необходимо установить до запуска пакета.

  • Указать параметры выполнения.

  • Добавить или изменить параметры командной строки.

Обратите внимание, что если пакет был развернут в каталоге служб SSIS и в качестве источника пакета был указан Каталог служб SSIS , значительная часть этих конфигурационных данных берется автоматически из пакета. На вкладке Конфигурация можно указать среду, значения параметров, значения диспетчера подключений, переопределения свойств и выполняется ли пакет в 32-разрядной среде.

Дополнительные сведения о создании шагов задания, запускающих пакеты служб Integration Services, см. в разделе агент SQL Server задания для пакетов.

Description Раздел
Описывает создание шага задания с помощью исполняемой программы. Create a CmdExec Job Step
Описывает сброс разрешений агент SQL Server. Настройка пользователя для создания заданий агента SQL Server и управления заданиями
Описывает создание шага задания Transact-SQL. Create a Transact-SQL Job Step
Описывает, как определить параметры действий задания Microsoft агент SQL Server Transact-SQL. Define Transact-SQL Job Step Options
Описывает создание шага задания скрипта ActiveX. Create an ActiveX Script Job Step
Описывает создание и определение агент SQL Server шагов задания, которые выполняют команды и запросы СЛУЖБ SQL Server Analysis Services. Create an Analysis Services Job Step
Описание действия SQL Server, если во время выполнения задания возникает сбой. Настройка потока действий системы при успешном или неуспешном выполнении шага задания
Описывает, как просмотреть сведения о шаге задания в окне «Свойства шага задания». Просмотр сведений о шаге задания
Описывает удаление журнала шагов задания агент SQL Server. Delete a Job Step Log

См. также

sysjobstepslogs (Transact-SQL)
Создание работ
sp_add_job (Transact-SQL)