작업 단계 관리Manage Job Steps

작업 단계는 데이터베이스나 서버에서 작업이 수행하는 동작입니다.A job step is an action that the job takes on a database or a server. 모든 작업에는 작업 단계가 하나 이상 있어야 합니다.Every job must have at least one job step. 작업 단계가 될 수 있는 항목은 다음과 같습니다.Job steps can be:

  • 실행 프로그램 및 운영 체제 명령Executable programs and operating system commands.

  • Transact-SQLTransact-SQL 문(저장 프로시저 및 확장 저장 프로시저 포함) statements, including stored procedures and extended stored procedures.

  • PowerShell 스크립트PowerShell scripts.

  • MicrosoftMicrosoft ActiveX 스크립트 ActiveX scripts.

  • 복제 태스크Replication tasks.

  • Analysis ServicesAnalysis Services 태스크 tasks.

  • Integration ServicesIntegration Services 패키지 packages.

모든 작업 단계는 특정 보안 컨텍스트에서 실행됩니다.Every job step runs in a specific security context. 작업 단계에서 프록시를 지정하면 해당 작업 단계는 프록시의 자격 증명 보안 컨텍스트에서 실행됩니다.If the job step specifies a proxy, the job step runs in the security context of the credential for the proxy. 작업 단계에서 프록시를 지정하지 않으면 작업 단계는 SQL ServerSQL Server 에이전트 서비스 계정의 컨텍스트에서 실행됩니다.If a job step does not specify a proxy, the job step runs in the context of the SQL ServerSQL Server Agent service account. sysadmin 고정 서버 역할의 멤버만이 프록시를 명시적으로 지정하지 않는 작업을 만들 수 있습니다.Only members of the sysadmin fixed server role can create jobs that do not explicitly specify a proxy.

작업 단계는 특정 MicrosoftMicrosoft Windows 사용자의 컨텍스트에서 실행되기 때문에 해당 사용자는 작업 단계를 실행하는 데 필요한 권한과 구성이 있어야 합니다.Because job steps run in the context of a specific MicrosoftMicrosoft Windows user, that user must have the permissions and configuration necessary for the job step to execute. 예를 들어 드라이브 문자나 UNC(Universal Naming Convention) 경로가 필요한 작업을 만드는 경우 작업 단계는 태스크를 테스트하는 동안 사용자의 Windows 사용자 계정으로 실행됩니다.For example, if you create a job that requires a drive letter or a Universal Naming Convention (UNC) path, the job steps may run under your Windows user account while testing the tasks. 그러나 해당 작업 단계의 Windows 사용자도 필요한 권한, 드라이브 문자 구성 또는 필요한 드라이브에 대한 액세스 권한이 있어야 합니다.However, the Windows user for the job step must also have the necessary permissions, drive letter configurations, or access to the required drive. 그렇지 않으면 작업 단계가 실패합니다.Otherwise, the job step fails. 이런 문제가 발생하지 않도록 각 작업 단계의 프록시에 작업 단계에서 수행하는 태스크에 필요한 권한이 있는지 확인하십시오.To prevent this problem, ensure that the proxy for each job step has the necessary permissions for the task that the job step performs. 자세한 내용은 보안 및 보호(데이터베이스 엔진)를 참조하세요.For more information, see Security and Protection (Database Engine).

작업 단계 로그Job Step Logs

SQL ServerSQL Server 에이전트에서는 일부 작업 단계의 출력을 운영 체제 파일이나 msdb 데이터베이스의 sysjobstepslogs 테이블에 기록할 수 있습니다. Agent can write output from some job steps either to an operating system file or to the sysjobstepslogs table in the msdb database. 다음은 두 대상에 모두 출력을 기록할 수 있는 작업 단계 유형입니다.The following job step types can write output to both destinations:

  • 실행 프로그램 및 운영 체제 명령Executable programs and operating system commands.

  • Transact-SQLTransact-SQL 문을 통해 데이터를 대량으로 가져오는 데 서식 파일을 사용하는 방법을 보여 줍니다. statements.

  • Analysis ServicesAnalysis Services 태스크 tasks.

sysadmin 고정 서버 역할의 멤버인 사용자가 실행한 작업 단계만 작업 단계 출력을 운영 체제 파일에 기록할 수 있습니다.Only job steps that are executed by users who are members of the sysadmin fixed server role can write job step output to operating system files. msdb 데이터베이스에서 SQLAgentUserRole, SQLAgentReaderRole 또는 SQLAgentOperatorRole 고정 데이터베이스 역할의 멤버인 사용자가 작업 단계를 실행할 경우 이러한 작업 단계의 출력은 sysjobstepslogs 테이블에만 기록할 수 있습니다.If job steps are executed by users who are members of the SQLAgentUserRole, SQLAgentReaderRole, or the SQLAgentOperatorRole fixed database roles in the msdb database, then the output from these job steps can be written only to the sysjobstepslogs table.

작업이나 작업 단계가 삭제되면 자동으로 작업 단계 로그가 삭제됩니다.Job step logs are automatically deleted when jobs or job steps are deleted.

참고

복제 태스크와 Integration ServicesIntegration Services 패키지 작업 단계 로깅은 해당 하위 시스템에서 처리됩니다.Replication task and Integration ServicesIntegration Services package job step logging is handled by their respective subsystem. SQL ServerSQL Server 에이전트를 사용하여 이러한 유형의 작업 단계에 대한 작업 단계 로깅을 구성할 수 없습니다.You cannot use SQL ServerSQL Server Agent to configure jog step logging for these types of job steps.

실행 프로그램 및 운영 체제 명령을 작업 단계로 사용Executable Programs and Operating-System Commands As Job Steps

실행 프로그램과 운영 체제 명령을 작업 단계로 사용할 수 있습니다.Executable programs and operating-system commands can be used as job steps. 이러한 파일의 확장명은 .bat, .cmd, .com 또는 .exe입니다.These files may have .bat, .cmd, .com, or .exe file extensions.

실행 프로그램이나 운영 체제 명령을 작업 단계로 사용할 경우에는 다음을 지정해야 합니다.When you use an executable program or an operating-system command as a job step, you must specify:

  • 명령이 성공한 경우 반환되는 프로세스 종료 코드를 지정합니다.The process exit code returned if the command was successful.

  • 실행할 명령입니다.The command to execute. 운영 체제 명령을 실행하려면 명령 자체를 지정하면 되고To execute an operating system command, this is simply the command itself. 외부 프로그램을 실행하려면 프로그램 이름과 프로그램 인수를 지정합니다(예: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who").For an external program, this is the name of the program and the arguments to the program, for example: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    참고

    실행 파일이 시스템 경로나 작업 단계가 실행되는 계정의 사용자 경로에 지정된 디렉터리에 있지 않은 경우 실행 파일의 전체 경로를 지정해야 합니다.You must provide the full path to the executable if the executable is not located in a directory specified in the system path or the path for the user that the job step runs as.

Transact-SQL 작업 단계Transact-SQL Job Steps

Transact-SQLTransact-SQL 작업 단계를 만들 때는 다음을 수행해야 합니다.When you create a Transact-SQLTransact-SQL job step, you must:

  • 작업을 실행하는 데이터베이스를 확인합니다.Identify the database in which to run the job.

  • 실행할 Transact-SQLTransact-SQL 문을 입력합니다.Type the Transact-SQLTransact-SQL statement to execute. 이 문에서 저장 프로시저나 확장 저장 프로시저를 호출할 수 있습니다.The statement may call a stored procedure or an extended stored procedure.

필요에 따라 기존의 Transact-SQLTransact-SQL 파일을 작업 단계에 대한 명령으로 열 수 있습니다.Optionally, you can open an existing Transact-SQLTransact-SQL file as the command for the job step.

Transact-SQLTransact-SQL 작업 단계에서는 SQL ServerSQL Server 에이전트 프록시를 사용하지 않습니다. Agent proxies. 대신에 작업 단계가 작업 단계 소유자의 계정으로 실행되거나 작업 단계 소유자가 sysadmin 고정 서버 역할의 멤버인 경우 SQL ServerSQL Server 에이전트 서비스 계정으로 실행됩니다.Instead, the job step runs as the owner of the job step, or as the SQL ServerSQL Server Agent service account if the owner of the job step is a member of the sysadmin fixed server role. sysadmin 고정 서버 역할의 멤버는 sp_add_jobstep 저장 프로시저의 Transact-SQLTransact-SQL database_user_name 매개 변수를 사용하여 작업 단계가 다른 사용자의 컨텍스트에서 실행되도록 지정할 수도 있습니다.Members of the sysadmin fixed server role can also specify that Transact-SQLTransact-SQL job steps run under the context of another user by using the database_user_name parameter of the sp_add_jobstep stored procedure. 자세한 내용은 sp_add_jobstep(Transact-SQL)을 참조하세요.For more information, see sp_add_jobstep (Transact-SQL).

참고

단일 Transact-SQLTransact-SQL 작업 단계에는 다수의 일괄 처리가 여러 개 포함될 수 있습니다.A single Transact-SQLTransact-SQL job step can contain multiple batches. Transact-SQLTransact-SQL 작업 단계에는 포함된 GO 명령이 있을 수 있습니다. job steps can contain embedded GO commands.

PowerShell 스크립팅 작업 단계PowerShell Scripting Job Steps

PowerShell 스크립트 작업 단계를 만들 때 다음 둘 중 하나를 단계에 대한 명령으로 지정해야 합니다.When you create a PowerShell script job step, you must specify one of two things as the command for the step:

  • PowerShell 스크립트 텍스트The text of a PowerShell script.

  • 열려는 기존 PowerShell 스크립트 파일An existing PowerShell script file to be opened.

SQL ServerSQL Server 에이전트 PowerShell 하위 시스템은 PowerShell 세션을 열고 SQL ServerSQL Server PowerShell 스냅인을 로드합니다.The SQL ServerSQL Server Agent PowerShell subsystem opens a PowerShell session and loads the SQL ServerSQL Server PowerShell snap-ins. 작업 단계 명령으로 사용되는 PowerShell 스크립트는 SQL ServerSQL Server PowerShell 공급자 및 cmdlet을 참조할 수 있습니다.The PowerShell script used as the job step command can reference the SQL ServerSQL Server PowerShell provider and cmdlets. SQL ServerSQL Server PowerShell 스냅인을 사용하여 PowerShell 스크립트를 작성하는 방법에 대한 자세한 내용은 [SQL Server PowerShell](http://msdn.microsoft.com/en-us/89b70725-bbe7-4ffe-a27d-2a40005a97e7)을 참조하세요.For more information about writing PowerShell scripts using the SQL ServerSQL Server PowerShell snap-ins, see the SQL Server PowerShell.

ActiveX 스크립팅 작업 단계ActiveX Scripting Job Steps

중요

SQL ServerSQL Server 의 이후 버전에서는 MicrosoftMicrosoft SQL ServerSQL Server에이전트에서 ActiveX 스크립팅 작업 단계가 제거됩니다.The ActiveX scripting job step will be removed from SQL ServerSQL Server Agent in a future version of MicrosoftMicrosoft SQL ServerSQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

ActiveX 스크립팅 작업 단계를 만들 때는 다음을 수행해야 합니다.When you create an ActiveX scripting job step, you must:

  • 작업 단계를 작성하는 스크립트 언어를 확인합니다.Identify the scripting language in which the job step is written.

  • ActiveX 스크립트를 작성합니다.Write the ActiveX script.

기존 ActiveX 스크립트 파일을 작업 단계에 대한 명령으로 열 수도 있습니다.You can also open an existing ActiveX script file as the command for the job step. 또한 Microsoft Visual Basic 등을 사용하여 ActiveX 스크립트 명령을 외부에서 컴파일한 다음 실행 프로그램으로 실행할 수 있습니다.Alternatively, ActiveX script commands can be externally compiled (for example, using Microsoft Visual Basic) and then run as executable programs.

작업 단계 명령이 ActiveX 스크립트이면 SQLActiveScriptHost 개체를 사용하여 출력을 작업 단계 기록 로그로 인쇄하거나 COM 개체를 만들 수 있습니다.When a job step command is an ActiveX script, you can use the SQLActiveScriptHost object to print output to the job step history log or create COM objects. SQLActiveScriptHost는 SQL ServerSQL Server 에이전트 호스팅 시스템에서 스크립트 네임스페이스로 도입되는 전역 개체입니다.SQLActiveScriptHost is a global object that is introduced by SQL ServerSQL Server Agent hosting system into the script name space. 이 개체에는 두 가지 메서드(Print 및 CreateObject)가 포함됩니다.The object has two methods (Print and CreateObject). 다음 예에서는 VBScript(Visual Basic Scripting Edition)에서 ActiveX 스크립팅이 작동하는 방식을 보여 줍니다.The following example shows how ActiveX scripting works in 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  

복제 작업 단계Replication Job Steps

복제를 사용하여 게시와 구독을 만드는 경우 기본적으로 복제 작업이 만들어집니다.When you create publications and subscriptions using replication, replication jobs are created by default. 만들어지는 작업 유형은 복제 유형(스냅숏, 트랜잭션 또는 병합)과 사용되는 옵션에 따라 결정됩니다.The type of job created is determined by the type of replication (snapshot, transactional, or merge) and the options used.

복제 작업 단계는 다음 복제 에이전트 중 하나를 활성화합니다.Replication job steps activate one of these replication agents:

  • 스냅숏 에이전트(Snapshot 작업)Snapshot Agent (Snapshot job)

  • 로그 판독기 에이전트(LogReader 작업)Log Reader Agent (LogReader job)

  • 배포 에이전트(Distribution 작업)Distribution Agent (Distribution job)

  • 병합 에이전트(Merge 작업)Merge Agent (Merge job)

  • 큐 판독기 에이전트(QueueReader 작업)Queue Reader Agent (QueueReader job)

복제를 설정할 때 복제 에이전트 실행 방법을 지정할 수 있습니다. SQL ServerSQL Server 에이전트 시작 후 복제 에이전트가 연속해서 실행되도록 하거나, 요청 시 실행하거나, 일정에 따라 실행하는 세 가지 방법이 있습니다.When replication is set up, you can specify to run the replication agents in one of three ways: continuously after SQL ServerSQL Server Agent is started, on demand, or according to a schedule. 복제 에이전트에 대한 자세한 내용은 복제 에이전트 개요를 참조하세요.For more information about replication agents, see Replication Agents Overview.

Analysis Services 작업 단계Analysis Services Job Steps

SQL ServerSQL Server 에이전트는 명령 작업 단계와 쿼리 작업 단계라는 서로 다른 유형의 두 가지 Analysis Services 작업 단계를 지원합니다. Agent supports two distinct types of Analysis Services job steps, command job steps, and query job steps.

Analysis Services 명령 작업 단계Analysis Services Command Job Steps

Analysis ServicesAnalysis Services 명령 작업 단계를 만들 때는 다음을 수행해야 합니다.When you create an Analysis ServicesAnalysis Services command job step, you must:

  • 작업 단계를 실행할 데이터베이스 OLAP 서버를 확인합니다.Identify the database OLAP server in which to run the job step.

  • 실행할 문을 입력합니다.Type the statement to execute. 문은 XML for Analysis ServicesAnalysis Services Execute 메서드여야 합니다.The statement must be an XML for Analysis ServicesAnalysis Services Execute method. 전체 SOAP Envelope 또는 XML for Analysis ServicesAnalysis Services Discover 메서드를 포함할 수 없습니다.The statement may not contain a complete SOAP envelope or an XML for Analysis ServicesAnalysis Services Discover method. SQL Server Management StudioSQL Server Management Studio 에서는 전체 SOAP Envelope와 Discover 메서드를 지원하지만 SQL ServerSQL Server 에이전트 작업 단계에서는 지원하지 않습니다.Notice that, while SQL Server Management StudioSQL Server Management Studio supports complete SOAP envelopes and the Discover method, SQL ServerSQL Server Agent job steps do not.

Analysis Services 쿼리 작업 단계Analysis Services Query Job Steps

Analysis ServicesAnalysis Services 쿼리 작업 단계를 만들 때는 다음을 수행해야 합니다.When you create an Analysis ServicesAnalysis Services query job step, you must:

  • 작업 단계를 실행할 데이터베이스 OLAP 서버를 확인합니다.Identify the database OLAP server in which to run the job step.

  • 실행할 문을 입력합니다.Type the statement to execute. 이 문은 MDX(Multidimensional Expressions) 쿼리여야 합니다.The statement must be a multidimensional expressions (MDX) query.

MDX에 대한 자세한 내용은 MDX 문 기본 사항(MDX)을 참조하세요.For more information on MDX, see MDX Statement Fundamentals (MDX).

Integration Services 패키지Integration Services Packages

Integration ServicesIntegration Services 패키지 작업 단계를 만들 때는 다음을 수행해야 합니다.When you create an Integration ServicesIntegration Services package job step, you must do the following:

  • 패키지 원본을 확인합니다.Identify the source of the package.

  • 패키지 위치를 확인합니다.Identify the location of the package.

  • 패키지에 구성 파일이 필요한 경우 구성 파일을 확인합니다.If configuration files are required for the package, identify the configuration files.

  • 패키지에 명령 파일이 필요한 경우 명령 파일을 확인합니다.If command files are required for the package, identify the command files.

  • 패키지에 사용할 확인 옵션을 지정합니다.Identify the verification to use for the package. 예를 들어 패키지에 서명이나 특정 패키지 ID가 필요하도록 지정할 수 있습니다.For example, you can specify that the package must be signed, or that the package must have a specific package ID.

  • 패키지의 데이터 원본을 확인합니다.Identify the data sources for the package.

  • 패키지의 로그 공급자를 확인합니다.Identify the log providers for the package.

  • 패키지를 실행하기 전에 설정할 변수와 값을 지정합니다.Specify variables and values to set before running the package.

  • 실행 옵션을 확인합니다.Identify execution options.

  • 명령줄 옵션을 추가하거나 수정합니다.Add or modify command-line options.

SSIS 카탈로그에 패키지를 배포하고 패키지 원본으로 SSIS 카탈로그 를 지정한 경우 이러한 구성 정보의 상당 부분은 패키지에서 자동으로 가져옵니다.Note that if you deployed the package to the SSIS Catalog and you specify SSIS Catalog as the package source, much of this configuration information is obtained automatically from the package. 구성 탭에서 환경, 매개 변수 값, 연결 관리자 값, 속성 무효화 및 패키지가 32비트 런타임 환경에서 실행되는지 여부를 지정할 수 있습니다.Under the Configuration tab you can specify the environment, parameter values, connection manager values, property overrides, and whether the package runs in a 32-bit runtime environment.

Integration ServicesIntegration Services 패키지를 실행하는 작업 단계 만들기에 대한 자세한 내용은 [패키지에 대한 SQL Server 에이전트 작업](http://msdn.microsoft.com/en-us/ecf7a5f9-b8a7-47f1-9ac0-bac07cb89e31)을 참조하세요.For more information about creating job steps that run Integration ServicesIntegration Services packages, see SQL Server Agent Jobs for Packages.

DescriptionDescription 항목Topic
실행 프로그램으로 작업 단계를 만드는 방법에 대해 설명합니다.Describes how to create a job step with an executable program. CmdExec 작업 단계 만들기Create a CmdExec Job Step
SQL ServerSQL Server 에이전트 사용 권한을 다시 설정하는 방법에 대해 설명합니다.Describes how to reset SQL ServerSQL Server Agent permissions. SQL Server 에이전트 작업을 만들고 관리하도록 사용자 구성Configure a User to Create and Manage SQL Server Agent Jobs
Transact-SQLTransact-SQL 작업 단계를 만드는 방법에 대해 설명합니다.Describes how to create a Transact-SQLTransact-SQL job step. Create a Transact-SQL Job StepCreate a Transact-SQL Job Step
Microsoft SQL ServerSQL Server 에이전트 Transact-SQL 작업 단계의 옵션을 정의하는 방법에 대해 설명합니다.Describes how to define options for Microsoft SQL ServerSQL Server Agent Transact-SQL job steps. Define Transact-SQL Job Step OptionsDefine Transact-SQL Job Step Options
ActiveX 스크립트 작업 단계를 만드는 방법에 대해 설명합니다.Describes how to create an ActiveX script job step. Create an ActiveX Script Job StepCreate an ActiveX Script Job Step
SQL ServerSQL Server Analysis Services 명령과 쿼리를 실행하는 SQL ServerSQL Server 에이전트 작업 단계를 만들고 정의하는 방법에 대해 설명합니다.Describes how to create and define SQL ServerSQL Server Agent job steps that execute SQL ServerSQL Server Analysis Services commands and queries. Create an Analysis Services Job StepCreate an Analysis Services Job Step
작업 실행 중에 오류가 발생하는 경우 SQL ServerSQL Server 에서 수행해야 하는 동작에 대해 설명합니다.Describes what action SQL ServerSQL Server should take if a failure occurs during job execution. Set Job Step Success or Failure FlowSet Job Step Success or Failure Flow
작업 단계 속성 대화 상자에서 작업 단계의 세부 사항을 보는 방법에 대해 설명합니다.Describes how to view job step details in the Job Step Properties dialog. 작업 단계 정보 보기View Job Step Information
SQL ServerSQL Server 에이전트 작업 단계 로그를 삭제하는 방법에 대해 설명합니다.Describes how to delete a SQL ServerSQL Server Agent job step log. Delete a Job Step LogDelete a Job Step Log

참고 항목See Also

sysjobstepslogs(Transact-SQL)sysjobstepslogs (Transact-SQL)
작업 만들기Create Jobs
sp_add_job(Transact-SQL)sp_add_job (Transact-SQL)