반응형

로깅

 

SSIS에는 패키지가 실행될 때의 이벤트 정보를 기록할 수 있는 로깅 기능을 제공합니다. 패키지가 시작되는 시간 및 종료되는 시간, 에러가 발생했을 때의 정보, 패키지 내의 개별 작업의 수행 시간 등 패키지를 관리하는데 필요한 여러 운영 기록을 남길 수 있습니다. SSIS에서 발생되는 모든 이벤트에 대해 로그를 남길 수 있으며, 각각의 이벤트에 대해 스키마라 불리는 열 정보에 이벤트와 관련된 사항이 저장됩니다.

 

이벤트 정보에 대한 스키마 정보는 다음과 같습니다.

요소

설명

Computer

로그 이벤트가 발생한 컴퓨터의 이름입니다.

Operator

패키지를 시작한 사용자의 ID입니다.

SourceName

로그 이벤트가 발생한 컨테이너 또는 작업의 이름입니다.

SourceID

로그 이벤트가 발생한 패키지, For Loop, Foreach Loop, 시퀀스 컨테이너 또는 작업의 고유 식별자입니다.

ExecutionID

패키지 실행 인스턴스의 GUID입니다.

MessageText

로그 항목과 관련된 메시지입니다.

DataBytes

로그 항목과 관련된 바이트 배열입니다. 이 필드의 의미는 로그 항목에 따라 다릅니다.

 

 

스키마 정보 외에도 이벤트 명, 이벤트 발생 시작 시간, 이벤트 종료 시간이 기록됩니다.

 

하나의 패키지 내에 있는 모든 작업에 대해 일괄적으로 로그를 남길 수도 있으며, 필요한 작업에 대해서만 로그를 남기도록 설정할 수도 있습니다.

 

 

 

로그 설정

 

패키지 또는 각 개체의 속성에는 해당 개체에 대한 로깅 설정을 할 수 있는 LoggingMode라는 항목이 있습니다.

 

 

기본값은 UseParentSetting이며, 현재 작업 개체가 포함된 컨테이너의 로그 설정을 따른다는 의미입니다. LoggingMode 값을 Disable로 설정하게 되면 패키지에서 로그를 남기도록 설정을 하여도 로그 정보를 발생시키지 않습니다.

 

 

 

로그 구성

 

로그를 구성하기 위해서는 Visual Studios 개발 화면 상단에 있는 SSIS(S) 메뉴에서 로깅(L)을 클릭합니다.

 

 

위의 그림과 같이 로그를 구성할 수 있는 창이 나타납니다. 왼쪽의 컨테이너(C) 부분에서는 패키지 내에서 로그를 남길 요소를 선택합니다. 상위 개체가 선택되면 자동으로 하위 개체는 로그를 남기게 되며 비활성화 됩니다. 만약 일부 작업에 대해서만 로그를 남기도록 설정할 경우, 이 부분에서 해당 개체에 대해서만 선택하면 됩니다.

 

공급자 및 로그 탭에서 로그를 남길 유형을 설정할 수 있습니다.  위의 그림과 같이 텍스트 파일이나 프로파일러용 로그파일, XML 파일 등 다양한 형태의 로그 유형을 설정할 수 있습니다. 각 유형에 대한 예는 아래 부분에서 자세히 살펴보도록 하겠습니다.

 

 

 

자세히 탭에서는 로그를 남길 이벤트를 선택할 수 있으며, 아래에 있는 고급(N)>> 버튼을 누르면 각 이벤트에 대해 저장할 열 정보(스키마 정보)를 선택할 수 있습니다.

 

또한 저장(S)을 이용하여 현재 구성한 로그 설정 사항을 XML 형태의 파일로 저장할 수 있으며, 이미 저장된 로그 구성 파일이 있는 경우, 로드(L)을 이용하여 불러올 수 있습니다.

 

 

 

로그 유형

 

SSIS에서는 기본적으로 5개의 로그 공급자 유형을 제공합니다. 동시에 여러 로그 공급자를 설정하여 로그를 남길 수도 있습니다. 로그를 남길 유형을 추가한 후, 해당 로그를 선택하고 구성을 눌러 로그 공급자가 사용할 로그 파일에 대한 연결을 설정해 줘야 합니다. 텍스트 파일용 로그 공급자SQL 프로파일러용 SSIS 로그 공급자, XML 파일용 로그 공급자인 경우에는 파일 연결 관리자를 이용하여 로그 파일을 지정해 주며, SQL Server SSIS 로그 공급자인 경우에는 OLE DB 연결 관리자를 이용해서 지정해 줘야 합니다.

 

 

1.      텍스트 파일용 SSIS 로그 공급자 – CSV(쉼표로 구분된 형태) 파일로 저장됩니다. 일반 메모장과 같은 텍스트 편집기에서 확인할 수 있으며, 엑셀에서 해당 파일을 읽어올 수도 있습니다.



2.      SQL 프로파일러용 SSIS 로그 공급자 – SQL Server 2005 프로파일러에서 읽어올 수 있는 형태의 로그 파일을 생성합니다. 기본 확장자는 .trc 입니다.



3.      SQL Server SSIS 로그 공급자 로그 구성 화면에서 설정된 OLE DB 연결에 해당하는 DBsysdtslog90이라는 테이블이 생성되며 이 테이블에 로그 정보를 기록합니다. 이미 DB에 이 테이블이 있는 경우에는 새로 생성하지는 않습니다. 테이블에 저장된 로그의 경우 SQL 쿼리를 이용해서 쉽게 조회하고 관리할 수 있는 장점이 있습니다.



4.      Windows 이벤트 로그용 SSIS 로그 공급자 – Windows의 이벤트 로그 정보에 로그 정보가 기록됩니다. Microsoft Operations Manager나 이와 비슷한 로그 파일을 관리하는 프로그램을 사용하는 경우, 다른 어플리케이션의 로그와 같이 관리할 수 있는 장점이 있습니다.



5.      XML 파일용 SSIS 로그 공급자 – XML 형태의 파일로 로그 정보가 기록됩니다. XML 형태로 저장된 파일은 XML Viewer나 기타 관리 프로그램을 이용하여 쉽게 관리할 수 있으며, SQL 쿼리문을 통해서도 쉽게 조작할 수 있는 장점이 있습니다.



 

 

 

SSIS의 로깅 기능은 매우 간편하고 다양한 정보를 남길 수 있는 장점이 있습니다. 하지만, 다양하고 세밀하게 설정할 수 있는 반면 사용자가 쉽고 간결하게 결과를 조회하기에는 부족한 부분이 있습니다. 필자의 경험으로는 가장 단순하면서도 필요한 기능으로, 패키지의 시작 / 종료 시간, 소요 시간, 패키지 내의 개별 작업들에 대한 시작 / 종료 시간을 쉽게 조회하는 것이었습니다. 위에서 설명한 로깅 기능을 이용하더라도 이러한 결과를 구할 수는 있지만, 이벤트 처리기를 통해 보다 간결하게 결과를 생성할 수 있습니다. 실제 운영환경에서 효과적으로 사용할 수 있는 로그 관리 기능은 별도의 강좌를 통해 소개하도록 하겠습니다.

 

 

반응형

+ Recent posts