WMI 데이터 판독기 태스크
안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)
이번 시간에는 [WIM 데이터 판독기 태스크]에 대해서 알아 보도록 하겠습니다.
WMI는 OS에서 Windows Management Instrumentation 서비스를 통해 OS에서 관리 됩니다.
WMI 정보를 사용하기 위해서는 WMI 정보를 읽어올 서버에 대한 연결과 WMI 정보를 읽어올 명령어가 필요합니다. WMI 연결은 SSIS의 연결 관리자에서 지정할 수 있으며 WMI정보는 SQL쿼리와 유사한 형태인 WQL(WMI Query Language)이라는 스크립트 언어를 이용하여 읽어올 수 있습니다.
이번 실습에서는 서버의 CPU사용률이 30% 미만일 때 현재 실행 중인 모든 프로세스의 이름과 경과된 시간, 스레드 수 등을 읽어서 텍스트 파일로 저장하는 작업을 구현 합니다.
[BIDS]를 실행하여 [Intergration Services 프로젝트]를 실행 합니다.
[제어 흐름] 탭에서 [WMI 데이터 판독기 태스크]를 마우스를 이용하여 드래그 앤 드롭으로 끌어다 놓습니다.
[WMI 데이터 판독기 태스크]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.
[WMI 데이터 판독기 태스크 편집기]창이 나타납니다.
[일반] 탭에서는 태스크의 이름과 설명을 지정 할 수 있습니다.
[WMI 옵션]창에서는 연결 방법 및 작업 속성을 지정 합니다.
WMI 옵션
- WmiConnection - WMI연결을 지정 합니다.
- WqlQuerySourceType – 데이터를 판독하기 위해 수행하는 쿼리인 WQL쿼리의 입력형태를 지정. 직접 입력하도록 하거나 변수에 WQL 쿼리를 저장한 후 이 변수를 사용하도록 지정할 수 있으며 별도의 파일로 만든 후 이 파일을 사용하도록 지정할 수 도 있습니다.
- WqlQuerySource – 직접 입력으로 지정한 경우 WQL 쿼리를 입력. (본 예제에서는 _Total에 대한 값만 읽어오도록 설정 합니다.)
SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE NAME = '_Total' |
- OutputType – 결과 형태를 설정. 데이터 테이블인 경우 결과가 테이블 형태로 출력, 이외에도 [속성 이름 및 값] 또는 [속성 값]만 출력되도록 설정 가능. 결과가 데이터 테이블인 경우 대상은 파일 형태이거나 Object형 변수이어야 하며 속성 이름 및 값 또는 값인 경우에는 파일 형태이거나 String형 또는 Object형 변수이어야 합니다.
- OverwriteDwstination – 기존의 파일 또는 변수의 값이 있는 경우에 대한 처리 유형 지정.
- DestinationType – 결과를 저장할 유형을 지정. 파일 또는 변수에 저장할 수 있습니다.
- Destination – 결과를 파일에 저장하도록 설정한 경우에는 파일 연결을 지정하며 변수로 저장하도록 설정한 경우에는 저장할 변수 이름을 지정.
WQL쿼리를 이용하여 현재 서버의 %Process Time정보를 읽어 들인 후 이 값을 ProcessorTime라는 변수에 저장하는 작업이 완료 되었습니다.
이제 CPU의 사용량이 30 미만인지를 판단한 후 현재 수행되는 프로세스 정보를 수집하는 작업을 구성하도록 하겠습니다.
[제어 흐름] 탭에서 [WMI 데이터 판독기 태스크]를 추가합니다. 이름을 [프로세스 정보 수집]으로 변경 합니다.
[프로세스 정보 수집]에서 마우스 오른쪽을 클릭하여 편집을 선택 합니다.
SELECT Name, IDProcess, PageFileBytes, VirtualBytes, ElapsedTime, ThreadCount FROM Win32_PerfFormattedData_PerfProc_Process |
파일 연결 관리자 편집기에서 사용 유형을 파일 만들기로 지정한 후 새로운 파일 이름을 지정하거나 기존 파일로 지정한 경우 해당 파일을 선택 합니다.
두 개의 WMI작업을 연결합니다. 이제 CPU 사용량이 30%미만일 때 실행되도록 선행 제약 조건을 추가해야 합니다. 녹샌선을 더블 클릭하여 [선행 제약 조건 편집기]를 실행 합니다.
평가 작업을 [식 및 제약 조건]으러 변경합니다.
식(X)부분에 다음과 같은 조건을 입력 합니다.
@ProcessorTime<"30" |
[편집]이 완료 되었으면 패키지를 실행 합니다.
늘 그러듯!
녹색 : 정상 실행
빨간색 : 오류 발생
(CPU 사용률이 30미만이어야 패키지가 실행 됩니다.!)
패키지가 정상적으로 완료 되었으면 해당 파일을 열어 정상적으로 기록되었는지 확인 합니다.
해당 정보가 저장된 것을 확인 할 수 있습니다.
이 작업을 통해서 CPU 사용률이 높을 때 실행 중인 프로세스들의 정보를 남기는 모니터링 작업이나 특정 디스크의 여유 공간이 부족할 때 지정한 파일들을 삭제하는 시스템 관리 작업을 구현할 수 있습니다.
[데이터 판독기에서 사용할 수 있는 WQL]
--논리적디스크정보를반환
SELECT Name, FileSystem, FreeSpace, Size FROM Win32_LogicalDisk
--시스템의페이지파일정보를반환
SELECT Description, FileSize FROM Win32_PageFIle
--성능모니터의Logical Disk에포함된카운터의값출력
SELECT * FROM Win32_PerfWawData_PerfDisk_LogicalDisk
--CPU 정보를출력
SELECT Caption, CpuStatus, DeviceID FROM Win32_Processor
'SQL Server > SSIS 강좌' 카테고리의 다른 글
SQL 실행 작업 (0) | 2015.07.16 |
---|---|
WMI 이벤트 감시자 작업 (0) | 2015.07.16 |
FTP 작업 (0) | 2015.07.16 |
파일 시스템 작업 – 폴더 생성, 삭제, 파일 복사, 파일 삭제 (0) | 2015.07.16 |
오류 메시지 전송 작업 (0) | 2015.07.16 |