다음을 통해 공유


SQL Server 에이전트

SQL Server 에이전트 예약된 관리 작업을 실행하는 Microsoft Windows 서비스로, 2014년 SQL Server 작업이라고 합니다.

항목 내용

SQL Server 에이전트의 이점

SQL Server 에이전트는 SQL Server를 사용하여 작업 정보를 저장합니다. 작업에는 하나 이상의 작업 단계가 포함됩니다. 각 단계에는 자체 태스크(예: 데이터베이스 백업)가 포함됩니다.

SQL Server 에이전트는 특정 이벤트에 대한 응답이나 요청에 따라 일정에 있는 작업을 실행할 수 있습니다. 예를 들어 평일 근무 시간 이후에 회사 서버를 모두 백업하려는 경우 이 태스크를 자동화할 수 있습니다. 월요일부터 금요일까지 밤 10시 이후 백업이 실행되도록 일정을 만듭니다. 이 백업에 문제가 발생하면 SQL Server 에이전트가 이 이벤트를 기록하여 사용자에게 알릴 수 있습니다.

참고

기본적으로 사용자가 서비스를 자동으로 시작하도록 명시적으로 선택하지 않는 한 SQL Server 2014가 설치되면 SQL Server 에이전트 서비스가 비활성화됩니다.

SQL Server Agent Components

SQL Server 에이전트에서는 다음 구성 요소를 사용하여 수행될 작업, 작업을 수행할 시기, 작업의 성공 또는 실패를 보고하는 방법을 정의합니다.

작업

‘작업’은 SQL Server 에이전트에서 수행하도록 지정된 일련의 동작입니다. 작업을 사용하여 두 번 이상 실행할 수 있으며 성공 또는 실패를 모니터링하는 관리 작업을 정의합니다. 하나의 로컬 서버 또는 여러 원격 서버에서 작업을 실행할 수 있습니다.

중요

SQL Server 장애 조치(failover) 클러스터 인스턴스에서 장애 조치 이벤트가 발생할 때 실행하고 있던 SQL Server 에이전트 작업은 다른 장애 조치 클러스터 노드로 장애 조치(failover)된 후 다시 시작되지 않습니다. Hyper-V 노드가 일시 중지될 때 실행되고 있던 SQL Server 에이전트 작업은 일시 중지로 인해 다른 노드로 장애 조치(failover)될 경우 다시 시작되지 않습니다. 시작되었지만 장애 조치(failover) 이벤트로 인해 완료되지 못한 작업은 시작된 것으로 기록되지만 완료 또는 실패의 추가 로그 항목이 표시되지 않습니다. SQL Server 에이전트 작업은 종료되지 않은 것처럼 나타납니다.

작업을 실행하는 방법은 다음과 같습니다.

  • 1회 이상의 일정에 따라 실행됩니다.

  • 하나 이상의 경고에 응답하여 실행됩니다.

  • sp_start_job 저장 프로시저를 실행하는 방법으로 실행됩니다.

작업 내 각 동작은 작업 단계입니다. 예를 들어 Transact-SQL 문을 실행하거나 SSIS 패키지를 실행하거나 Analysis Services 서버로 명령을 실행하는 것으로 작업 단계를 구성할 수 있습니다. 작업 단계는 작업의 일부로 관리됩니다.

각 작업 단계는 특정 보안 컨텍스트에서 실행됩니다. Transact-SQL을 사용하는 작업 단계의 경우 EXECUTE AS 문을 사용하여 해당 작업 단계에 대한 보안 컨텍스트를 설정합니다. 다른 작업 단계 유형의 경우에는 프록시 계정을 사용하여 해당 작업 단계에 대한 보안 컨텍스트를 설정합니다.

일정

일정 은 작업이 실행되는 시기를 지정합니다. 동일한 일정에 따라 둘 이상의 작업을 실행할 수 있으며, 둘 이상의 일정을 동일한 작업에 적용할 수 있습니다. 일정은 작업이 실행되는 시기에 대해 다음 조건을 정의할 수 있습니다.

  • SQL Server 에이전트가 시작될 때마다

  • 컴퓨터의 CPU 사용률이 유휴로 정의한 수준에 있을 때마다

  • 특정 날짜와 특정 시간에 한 번

  • 되풀이 일정.

자세한 내용은 일정을 만들고 작업에 연결을 참조하세요.

경고

경고 는 특정 이벤트에 대한 자동 응답입니다. 예를 들어 이벤트는 시작되는 작업 또는 특정 임계값에 도달한 시스템 리소스일 수 있습니다. 경고가 발생할 조건을 정의합니다.

경고는 다음 조건 중 하나에 대해 응답할 수 있습니다.

  • SQL Server 이벤트

  • SQL Server 성능 조건

  • SQL Server 에이전트가 실행 중인 컴퓨터의 Microsoft WMI(Windows Management Instrumentation) 이벤트

경고는 다음 동작을 수행할 수 있습니다.

  • 한 명 이상의 운영자에게 알림

  • 작업 실행

자세한 내용은 경고를 참조하세요.

연산자

‘운영자’는 하나 이상의 SQL Server 인스턴스를 유지 관리하는 개인에 대한 연락처 정보를 정의합니다. 일부 기업의 경우 운영자의 업무는 한 명에게 할당되기도 합니다. 다중 서버를 사용하는 기업의 경우에는 여러 명이 운영자의 업무를 분담할 수 있습니다. 운영자는 보안 정보를 포함하지 않으며 보안 주체를 정의하지 않습니다.

SQL Server 다음 중 하나 이상을 통해 운영자에게 경고를 알릴 수 있습니다.

  • 전자 메일

  • 호출기(전자 메일 사용)

  • Net Send

참고

Net Send를 사용하여 알림을 보내려면 SQL Server 에이전트가 상주하는 컴퓨터에서 Windows Messenger 서비스를 시작해야 합니다.

중요

호출기 및 net send 옵션은 이후 버전의 SQL Server SQL Server 에이전트 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.

메일 또는 호출기를 사용하여 운영자에게 알림을 보내려면 데이터베이스 메일을 사용하도록 SQL Server 에이전트를 구성해야 합니다. 자세한 내용은 데이터베이스 메일을 참조하세요.

개인으로 구성된 그룹의 별칭으로 운영자를 정의할 수 있습니다. 이런 방법으로 해당 별칭에 속하는 모든 멤버는 동시에 알림을 받습니다. 자세한 내용은 연산자를 참조하세요.

SQL Server 에이전트 관리 보안

SQL Server 에이전트 msdb 데이터베이스의 SQLAgentUserRole, SQLAgentReaderRoleSQLAgentOperatorRole 고정 데이터베이스 역할을 사용하여 고정 서버 역할의 sysadmin 멤버가 아닌 사용자의 SQL Server 에이전트 대한 액세스를 제어합니다. 이러한 고정 데이터베이스 역할 외에도 데이터베이스 관리자는 하위 시스템과 프록시를 사용하여 각 작업 단계가 태스크 수행에 필요한 최소 권한으로 실행되도록 합니다.

역할

msdbSQLAgentUserRole, SQLAgentReaderRoleSQLAgentOperatorRole 고정 데이터베이스 역할의 멤버와 고정 서버 역할의 sysadmin 멤버는 SQL Server 에이전트 액세스할 수 있습니다. 이러한 역할에 속하지 않는 사용자는 SQL Server 에이전트 사용할 수 없습니다. SQL Server 에이전트에서 사용하는 역할에 대한 자세한 내용은 SQL Server 에이전트 보안 구현을 참조하세요.

하위 시스템

하위 시스템은 작업 단계에서 사용할 수 있는 기능을 나타내는 미리 정의된 개체입니다. 각 프록시는 하나 이상의 하위 시스템에 액세스할 수 있습니다. 하위 시스템은 프록시에 사용할 수 있는 기능에 대한 액세스를 구분하므로 보안을 제공합니다. Transact-SQL 작업 단계를 제외한 각 작업 단계는 프록시 컨텍스트에서 실행됩니다. Transact-SQL 작업 단계에서는 EXECUTE AS 명령을 사용하여 보안 컨텍스트를 설정합니다.

SQL Server는 다음 표에 나열된 하위 시스템을 정의합니다.

하위 시스템 이름 설명
Microsoft ActiveX 스크립트 ActiveX 스크립팅 작업 단계를 실행합니다.

**중요** ActiveX 스크립팅 하위 시스템은 향후 버전의 MicrosoftSQL Server에서 SQL 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 프록시를 만들 수 있습니다.

각 프록시는 보안 자격 증명에 해당됩니다. 각 프록시는 하위 시스템 집합 및 로그인 집합과 연결할 수 있으며 프록시는 해당 프록시와 연결된 하위 시스템을 사용하는 작업 단계에서만 사용할 수 있습니다. 특정 프록시를 사용하는 작업 단계를 만들려면 작업 소유자가 해당 프록시와 연결된 로그인을 사용하거나 프록시에 무제한 액세스할 수 있는 역할의 멤버여야 합니다. 고정 서버 역할의 sysadmin 멤버는 프록시에 무제한으로 액세스할 수 있습니다. SQLAgentUserRole, SQLAgentReaderRole또는 SQLAgentOperatorRole 의 멤버는 특정 액세스 권한이 부여된 프록시만 사용할 수 있습니다. 이러한 SQL Server 에이전트 고정 데이터베이스 역할의 멤버인 각 사용자에게 특정 프록시에 대한 액세스 권한을 부여해야만 사용자가 해당 프록시를 사용하는 작업 단계를 만들 수 있습니다.

다음 단계를 사용하여 SQL Server 관리를 자동화하도록 SQL Server 에이전트를 구성합니다.

  1. 정기적으로 발생하는 관리 태스크나 서버 이벤트를 설정하고 이러한 작업 또는 이벤트를 프로그래밍 방식으로 관리할 수 있는지 여부를 설정합니다. 태스크가 예측 가능한 단계 순서를 포함하고 특정 시간에 또는 특정 사건에 대한 응답으로 발생하는 경우 자동화될 수 있습니다.

  2. SQL Server Management Studio, Transact-SQL 스크립트 또는 SMO(SQL Server 관리 개체)를 사용하여 작업, 일정, 경고, 운영자 세트를 정의합니다. 자세한 내용은 작업 만들기를 참조하세요.

  3. 정의한 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 에이전트)

참고 항목

노출 영역 구성