SQL Server/SQL Server Tip

XEvent(확장이벤트)를 활용한 활성 로그 모니터링 하기

SungWookKang 2015. 7. 23. 10:45
반응형

XEvent(확장이벤트)를 활용한 활성 로그 모니터링 하기

 

  • Version : SQL Server 2012, 2014

 

XEvent의 file_wirte_complete, transaction_log 이벤트를 사용하여 트랜잭션이 커밋될 때 트랜잭션 로그 파일에 기록되는 것을 모니터링할 수 있다.

 

실습을 위해 테스트 테이블을 생성한다.

CREATE TABLE TestTable (

c1 INT IDENTITY,

c2 CHAR (1000) DEFAULT 'a');

GO

 

INSERT INTO [TestTable] DEFAULT VALUES;

GO

 

XEvent를 설정한다.

-- Drop the session if it exists.

IF EXISTS (

SELECT * FROM sys.server_event_sessions

WHERE [name] = N'MonitorLog')

DROP EVENT SESSION [MonitorLog] ON SERVER

GO

 

-- Create the event session

CREATE EVENT SESSION [MonitorLog] ON SERVER

ADD EVENT [sqlserver].[file_write_completed],

ADD EVENT [sqlserver].[transaction_log]

ADD TARGET [package0].[ring_buffer]

WITH (MAX_MEMORY = 50MB, max_dispatch_latency = 1 seconds)

GO

 

-- Start the session

ALTER EVENT SESSION [MonitorLog] ON SERVER

STATE = START;

GO

 

 

SSMS에서 XEvent의 라이브데이터 감시를 UI를 통해서 확인할 수 있다.

 

 

라이브데이터 감시가 시작되면 상단의 컬럼탭에서 마우스 오른쪽을 클릭하여 [열 선택]을 클릭한다.

 

 

[열 선택] 창이 나타나면 필요한 열을 추가하여 모니터링에 표시할 수 있도록 한다.

 

데이터를 입력하면 트랜잭션 로그가 커밋 될 때 트랜잭션로그파일에 기록되는 것을 확인할 수 있다.

 

 

[참고자료]

http://www.sqlskills.com/blogs/paul/t-sql-tuesday-67-monitoring-log-activity-with-extended-events/

 

 

2015-06-10 / 강성욱 / http://sqlmvp.kr

 

SQL Server, MSSQL, DB, 확장이벤트, XEvent, Extended Event, 트랜잭션로그, 로그 모니터링, DB모니터링, 트랜잭션 커밋, 활성 로그

반응형