데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

SSIS - 검사점

jevida(강성욱) 2013.04.19 16:46 Views : 8352

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

 

안녕하세요 강성욱 입니다.(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 명령문을 수정 합니다.

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

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

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


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp



No. Subject Author Date Views
» SSIS - 검사점 jevida(강성욱) 2013.04.19 8352
1532 SSIS - 패키지 구성 [1] jevida(강성욱) 2013.04.19 10120
1531 SSIS - 프로세스 실행 태스크 [2] jevida(강성욱) 2013.04.19 10350
1530 SSIS - 변수 – 다양한 사용자 변수를 만들어 보자 [3] jevida(강성욱) 2013.04.19 10802
1529 SQL Server Version별 Sample Database Download 경로 [2] 쓸만한게없네(윤선식) 2013.04.17 6810
1528 InstrCount함수와 InstrCountRev함수를 한번 만들어봤습니다. [5] Light 2013.03.27 6094
1527 구분자에 의해 구분되어 반환되는 split함수가 없어서 한번 만들어 봤습니다. [2] Light 2013.03.27 7537
1526 Microsoft.ACE.OLEDB.12.0 을 이용한 엑셀 2010 직접쿼리하기 [3] 열이 2013.03.20 42139
1525 Online restore [1] jevida(강성욱) 2013.03.15 6308
1524 SQL Server User Connections [1] jevida(강성욱) 2013.03.15 10598
1523 스크립트 구성 요소 – [데이터 대상] 사용 [1] jevida(강성욱) 2013.03.13 6763
1522 스크립트 구성 요소 – [데이터 변환] 사용 jevida(강성욱) 2013.03.13 6128
1521 SSIS - 스크립트 구성 요소 – [데이터 원본] 사용 jevida(강성욱) 2013.03.12 7832
1520 SSIS - 피벗 해제 변환 - 피봇된 데이터를 테이블 형태로 변환 하자! jevida(강성욱) 2013.03.12 7199
1519 SQL Server 단일 사용자 설정 시 SSMS로 로그인하기 [1] 쓸만한게없네(윤선식) 2013.02.25 12284
1518 SELECT 가 Deadlock? [2] 이스트럭(강동운) 2013.02.16 11695
1517 한글 초성 관련 [4] 건우아빠 2012.12.26 13133
1516 .NET 4.5 (VS2012) 설치 후 SSMS 에서 원격 MSSQL 2008 등이 접속 안될 경우! [2] 컴포지트 2012.12.11 17398
1515 SQL프로시저들의 매개변수를 한번에 샥 보여줍니다 [3] 차주언 2012.12.10 9268
1514 SSIS - 피봇 변환 - 데이터를 행렬 변환 하자! jevida(강성욱) 2012.11.30 10004





XE Login