반응형

이벤트 로그에서 패키지 실행 기록 분리하기

 

한대성

Microsoft Premier Field Engineer

 

 

SSIS 패키지가 수행되면 기본적으로 이벤트 로그의 어플리케이션 로그 부분에 수행 시작 및 종료 이벤트를 발생시킵니다.



 

만약 30초마다 수행되는 패키지가 있다면 2 * 30 * 120 * 24 = 86400 즉 하루에 172800 개의 이벤트 로그가 찍히게 됩니다. 이 정도의 이벤트 로그라면 로그로써의 기능을 상실했다라고 볼 수 있겠지요.^^

 

SQL 2005에서는 이러한 로그를 기록하는 기능을 비활성화 시킬 수는 없습니다.

 

http://technet.microsoft.com/ko-kr/library/cc966389(en-us).aspx

Custom Log Provider

To facilitate operations management, SSIS packages always write some basic logging information to the Windows event log, even for packages that do not incorporate logging. SSIS packages write events for package initiation and package completion and they can be identified using either the SQLISPackage or SQLISService event sources.

 

 

SQL 2008 SSIS 패키지에서는 다음과 같이 기본적으로 SSIS 패키지가 실행될 때 이벤트 로그를 발생시키지 않도록 설정되었으며, 레지스트리 값을 변경함으로써 로그를 남기도록 설정할 수 있습니다.

http://msdn.microsoft.com/en-us/library/ms143731.aspx

By default, in a new installation, Integration Services is configured not to log events that are related to the running of packages to the Application event log. This setting prevents too many event log entries when you use the Data Collector feature of SQL Server 2008. The events that are not logged are EventID 12288, "Package started," and EventID 12289, "Package finished successfully." To log these events to the Application event log, open the registry for editing. Then, in the registry, locate the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS node, and change the DWORD value of the LogPackageExecutionToEventLog setting from 0 to 1.

 

 

그럼 SQL 2005 SSIS 패키지는 절대 불가능한 것일까요?

 

다음과 같은 방법이 있습니다.

 

[주의] 아래에 설명드릴 방법은 Microsoft에서 권장하는 공식적인 방안은 아니며, 제 개인적인 의견으로 설명 드리는 것입니다. 기본적으로 설정된 시스템 레지스트리의 항목을 변경하고 시스템을 재시작 해야 하는 단계가 필요하기 때문에 적용 전에 반드시 충분히 검토하시기 바랍니다.

 

 

1.     실행 à regedit 를 실행시켜 레지스트리 편집기를 엽니다.

2.     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog 키를 엽니다.

 

3.     EventLog 항목에서 마우스 오른쪽 버튼을 눌러 새로 만들기 Key를 선택한 후, 다음과 같이 이름을 SSIS로 바꿉니다.

 

4.     SSIS 아래에 SQLISPackage 라는 Key를 추가합니다.

 

5.     이제 확인할 것이 있습니다. EventLog 항목 아래에 Application 항목 아래에 보면 SQLISPackage 부분이 있습니다. Key를 선택한 후, 오른쪽 부분을 보면 EventMessageFile이라는 항목이 있습니다. 이 값을 더블 클릭해서 Data 부분의 값을 메모장 같은 곳에 복사합니다.

 


 

6.     SQLISPackage를 선택한 후, 오른쪽의 창에서 새로 만들기를 선택한 후 문자열 값(String Value)를 선택하고 이름을 EventMessageFile로 변경합니다. 또한 이 값을 더블 클릭해서 5단계에서 복사한 값을 채워 넣습니다.


 

7.     이제 5단계 부분의 항목인 Event à Application à SQLISPackage 항목을 삭제합니다.

 

8.     시스템을 재 시작 합니다.

 

9.     이제 이벤트 로그 부분을 확인해 보면 다음과 같이 SSIS 항목이 새로 나타나는 것을 볼 수 있습니다. (PC OSWindows 2008이라 Windows 2003과는 다를 수 있습니다.)

 

 

 

10.   SSIS 패키지 수행 관련 로그는 이제 SSIS 항목에만 기록됩니다.



반응형

+ Recent posts