Поделиться через


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

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

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

  • Инструкции 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.

Подсистема агента SQL Server PowerShell открывает сеанс 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 служб Analysis Services инструкция должна быть в формате XML. Инструкция может не содержать полный конверт SOAP или метод Discover XML для служб Analysis Services. Обратите внимание, что в среде Среда SQL Server Management Studio поддерживаются полные конверты SOAP и метод Discover, но поддержки шагов заданий агента SQL Server нет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Связанные задачи

Описание

Раздел

Описывает создание шага задания с помощью исполняемой программы.

Создание шага задания «CmdExec»

Описывает, как сбросить разрешения агента SQL Server.

Настройка пользователя для создания заданий агента SQL Server и управления заданиями

Описывает создание шага задания Transact-SQL.

Создание шага задания Transact-SQL

Описывает определение параметров для шагов заданий Transact-SQL агента Microsoft SQL Server.

Определение параметров шага задания Transact-SQL

Описывает создание шага задания скрипта ActiveX.

Создание шага задания скрипта ActiveX

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

Создание шага задания служб Analysis Services

Описывает, какое действие будет выполнять SQL Server, если при выполнении задания происходит ошибка.

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

Описывает, как просмотреть сведения о шаге задания в окне «Свойства шага задания».

Просмотр сведений о шаге задания

Описывает, как удалить журнал шага задания агента SQL Server.

Удаление журнала шага задания

См. также

Справочник

dbo.sysjobstepslogs (Transact-SQL)

sp_add_job (Transact-SQL)

Основные понятия

Создание заданий