Управление шагами задания
Шаг задания — это действие, производимое заданием над базой данных или сервером. Каждое задание должно иметь, по крайней мере, один шаг. Шагами задания могут быть:
Исполняемые программы и команды операционной системы.
Инструкции Transact-SQL, содержащие хранимые процедуры и расширенные хранимые процедуры.
Скрипты PowerShell.
Microsoft скрипты ActiveX.
Задачи репликации.
Службы Analysis Services задачи.
Службы Integration Services пакеты.
Каждый шаг задания выполняется в определенном контексте безопасности. Если шаг задания указывает учетную запись-посредник, он выполняется в контексте безопасности учетных данных для учетной записи-посредника. Если шаг задания не указывает учетную запись-посредник, этот шаг выполняется в контексте учетной записи службы агента SQL Server . Только члены предопределенной роли сервера "sysadmin" могут создавать задания, которые не указывают учетную запись-посредник явным образом.
Так как шаги задания выполняются в контексте определенного пользователя Microsoft Windows, этот пользователь должен иметь разрешения и конфигурацию, необходимые для выполнения шага. Например, если создается задание, в котором требуется буква диска или путь в формате UNC, шаги задания могут выполняться под учетной записью пользователя Windows во время проверки задач. Однако для шага задания пользователь Windows должен иметь необходимые разрешения, конфигурации буквы диска или доступ к требуемому диску. В противном случае шаг задания завершится ошибкой. Во избежание этой проблемы нужно, чтобы учетная запись-посредник для каждого шага задания имела необходимые разрешения для задачи, которую выполняет шаг задания. Дополнительные сведения см. в разделе Центр безопасности для ядра СУБД SQL Server и базы данных Azure SQL.
Журналы шагов задания
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 в следующей версии MicrosoftSQL 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 или XML-файл для метода Discover служб Службы 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.
Связанные задачи
Описание | Раздел |
Описывает создание шага задания с помощью исполняемой программы. | Create a CmdExec Job Step |
Описывает, как сбросить разрешения агента SQL Server . | Настройка пользователя для создания заданий агента SQL Server и управления заданиями |
Описывает создание шага задания Transact-SQL. | Создание шага задания Transact-SQL |
Описывает определение параметров для шагов заданий Transact-SQL агента Microsoft SQL Server . | Определение параметров для шагов заданий Transact-SQL |
Описывает создание шага задания скрипта ActiveX. | Create an ActiveX Script Job Step |
Описывает процесс создания и определения шагов заданий агента SQL Server , выполняющих команды и запросы служб SQL Server Analysis Services. | Create an Analysis Services Job Step |
Описывает, какое действие будет выполнять SQL Server , если при выполнении задания происходит ошибка. | Настройка потока действий системы при успешном или неуспешном выполнении шага задания |
Описывает, как просмотреть сведения о шаге задания в окне «Свойства шага задания». | View Job Step Information |
Описывает, как удалить журнал шага задания агента SQL Server . | Delete a Job Step Log |
См. также:
dbo.sysjobstepslogs (Transact-SQL)
Создание заданий
sp_add_job (Transact-SQL)