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모니터링, 트랜잭션 커밋, 활성 로그
'SQL Server > SQL Server Tip' 카테고리의 다른 글
Temp table 객체 생성시 세션간 충돌하지 않는 이유 (0) | 2015.07.23 |
---|---|
SQL Server 데이터베이스 메일 계정 수정 (0) | 2015.07.23 |
특정 사용자에 대한 트랜잭션 로그 찾기 (0) | 2015.07.23 |
SQL Server I/O 서브시스템 레이턴시 확인 (0) | 2015.07.23 |
실행계획의 물리 및 논리연산자 설명 (0) | 2015.07.23 |