태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


2009/02/03 10:23

SQL Server 2005 Agent Job 수행 결과 조회 후 실패 알림

SQL Server Agent Job(이후 작업으로 통일)이 성공하거나 실패했을 때 운영자에게 알릴 수 있는 방법이 있습니다.

다음 그림과 같이 작업 속성 중에 알림 탭을 보면 전자메일, 호출, Net Send, Windows 응용 프로그램 이벤트로그에 쓰기… 등의 알림 방법을 선택할 수 있습니다.


 

각각의 알림을 설정하는 방법은 SQL Server 2005 도움말이나 관련 웹사이트를 참조하세요.

이 글에서는 위 알림 설정을 사용할 수 없고(Net Send는 막혀있고 SMTP 메일 서버에 접속 불가능 할 때) ,

SMS와 메일을 DB의 테이블에 레코드를 추가하는 방식으로 전송할 수 있는 상용솔루션이 설치되어 있다고 가정합니다.

  1. 새로운 작업을 생성합니다.
  2. 작업속성에서 단계 탭을 선택한 후 유형을 "Transact-SQL 스크립트(T-SQL)"을 선택합니다.
  3. 명령 입력박스에 다음의 구문을 입력합니다.

     

declare @run_status tinyint

    ,    @message nvarchar(1024)

 

select @run_status = null

 

select

        @run_status = h.run_status

    ,    @message = h.message

    from msdb.dbo.sysjobhistory h

        inner join msdb.dbo.sysjobs j

            on h.job_id = j.job_id

    where step_id = 0    -- 작업결과단계

        and j.name = '작업이름'

        and h.run_date = convert(char(8), getdate(), 112)

    order by h.run_date desc, h.run_time desc

 

select @run_status

 

-- 작업실패

if isnull(@run_status, 0) = 0    -- 0:실패, 1:성공, 2:...

begin

 

    메일전송SP 실행(오류메시지= @message)

end

 

@j.name = '작업이름' 부분에 실제 체크할 작업이름을 정확히 입력하시고,

메일전송SP 실행하는 부분을 적절히 수정하시면 됩니다.

 

  1. 일정 탭에서 체크할 작업이 수행된 이후의 시간을 설정합니다.

    예를 들면 체크할 작업이 매일 오전 1시에 수행될 때 매일 오전 2시로 설정하면 됩니다.  

  2. 저장합니다.
Trackback 0 Comment 0