SQL Server/SSIS 강좌

검사점 – 패키지 오류 위치를 확인하자

SungWookKang 2015. 7. 16. 10:18
반응형

검사점 – 패키지 오류 위치를 확인하자

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com)

이번 시간에는 [검사점]에 대해서 알아보도록 하겠습니다.

 

[검사점]작업은 패키지가 실행 중 실패했을 때 오류가 발생한 작업 개체에 대한 정보와 정상적으로 처리된 작업들의 정보가 별도의 파일에 기록 됩니다. 이 기록파일에는 수행시점에서 적용된 변수의 값도 포함 됩니다.

검사점이 존재하는 경우에는 패키지가 다시 수행되어도 이미 수행한 작업들에 대해서는 다시 수행하지 않으며 오류가 발생한 작업부터 수행 합니다.

패키지의 모든 작업이 정상적으로 진행된 경우에는 검사점 파일이 생성되지 않습니다. 따라서 관리자는 작업 실패가 발생되었는지를 확인하기 위한 방법으로 검사섬 파일의 생성 여부를 확인하면 됩니다.

 

[BIDS]를 실행하여 [Integration Services 프로젝트]를 생성합니다.

 

[제어 흐름] 탭에서 다음과 같이 [SQL 실행 태스크]를 끌어다 놓습니다.

 

[SQL 실행 태스크]에서 마우스 오른쪽을 클릭하여 [Connection]를 선택하고 [SQLStatement]에 쿼리를 입력 합니다. (실습에서는 "SELECT 1" 입력)

 

오류를 발생 시킬 작업에서 다음과 같이 임의로 오류를 발생 시키는 SQL 명령문을 입력 합니다.

(실습에서는 3번째 작업에서 실패 하도록 "SELECT 0/0" 입력)

 

검사점은 [제어 흐름]영역에서 설정 합니다. 검사점에서 관리하는 최소 작업 단위는 개별 작업(작업 호스트)단위 입니다. 트랜잭션이 설정된 컨테이너인 경우 해당 컨테이너가 최소 작업 개체가 됩니다.

  • CheckPointFileName – 검사점 파일을 지정 합니다.
  • CheckPointUsage – 검사점 사용 여부를 설정 합니다.
    • Never – 검사점을 사용하지 않습니다.
    • Always – 검사점 파일을 항상 사용합니다. 오류가 발생하지 않더라도 검사점 파일이 있어야 합니다.
    • IfExists – 검사점 파일이 있는 경우 해당 파일을 사용 합니다.

 

 

검사점 기능을 구현하기 위해서는 제어 흐름에 있는 각 작업의 [FailPakageOnFailure]속성이 [True]로 설정 되어 있어야 합니다.

 

 

검사점 설정이 완료 되었으면 패키지를 실행 합니다.

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

 

패키지를 실행하면 세번째 작업에서(SELECT 0/0) 오류가 난 것을 확인 할 수 있습니다.

이 때 검사점에서 지정한 폴더를 확인하여 보면 검사점 파일(CheckPoint.chk)이 생성된 것을 확인 할 수 있습니다.

 

 

검사점 파일을 메모장을 이용하여 열어보면 다음과 같이 오류 작업과 패키지의 속성, 사용된 변수 등을 확인 할 수 있습니다.

 

이제 다시 3번째 작업을 정상적으로 실행 될 수 있도록 SQL 명령문을 수정 합니다.

그리고 다시 패키지를 실행합니다.

오류가 난 작업부터 패키지가 실행되는 것을 확인 할 수 있습니다.

검사점을 이용하면 오류가 난 위치를 정확하게 파악할 뿐만 아니라 오류가 난 작업에 대해서 재실행 할 때에도 관리자의 특별한 설정 없이 자동으로 검사점으로 확인하여 실행되므로 중복 실행을 방지 할 수 있습니다.

 

 

반응형