Skip to content

Commit 3bddee5

Browse files
committed
Add DBRecoveryProgress extended event
1 parent 9a2e91b commit 3bddee5

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed
+116
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
/*
2+
Original link: https://www.sqlservercentral.com/blogs/database-recovery-monitoring-with-xe
3+
Source link: https://github.com/ktaranov/sqlserver-kit/blob/master/Extended_Events/DBRecoveryProgress.sql
4+
Author: Jason Brimhall
5+
*/
6+
7+
USE master;
8+
GO
9+
-- Create the Event Session
10+
IF EXISTS
11+
(
12+
SELECT
13+
*
14+
FROM sys.server_event_sessions
15+
WHERE name = 'DBRecoveryProgress'
16+
)
17+
DROP EVENT SESSION DBRecoveryProgress ON SERVER;
18+
GO
19+
20+
CREATE EVENT SESSION DBRecoveryProgress
21+
ON SERVER
22+
ADD EVENT sqlserver.database_recovery_progress_report
23+
(ACTION
24+
(
25+
/* yes this may be overkill on the actions - it is for discovery*/
26+
sqlserver.database_id
27+
, sqlserver.session_id
28+
, sqlserver.database_name
29+
, sqlserver.tsql_stack
30+
, package0.event_sequence
31+
, sqlserver.sql_text
32+
, sqlserver.nt_username
33+
, sqlserver.username
34+
, sqlserver.session_nt_username
35+
, sqlserver.client_app_name
36+
, sqlserver.context_info
37+
, sqlserver.client_connection_id
38+
, sqlserver.query_hash
39+
, sqlserver.query_plan_hash
40+
, package0.callstack
41+
)
42+
)
43+
, ADD EVENT sqlserver.database_recovery_trace
44+
(ACTION
45+
(
46+
sqlserver.database_id
47+
, sqlserver.session_id
48+
, sqlserver.database_name
49+
, sqlserver.tsql_stack
50+
, package0.event_sequence
51+
, sqlserver.sql_text
52+
, sqlserver.nt_username
53+
, sqlserver.username
54+
, sqlserver.session_nt_username
55+
, sqlserver.client_app_name
56+
, sqlserver.context_info
57+
, sqlserver.client_connection_id
58+
, sqlserver.query_hash
59+
, sqlserver.query_plan_hash
60+
, package0.callstack
61+
)
62+
)
63+
, ADD EVENT sqlserver.database_recovery_times
64+
(ACTION
65+
(
66+
sqlserver.database_id
67+
, sqlserver.session_id
68+
, sqlserver.database_name
69+
, sqlserver.tsql_stack
70+
, package0.event_sequence
71+
, sqlserver.sql_text
72+
, sqlserver.nt_username
73+
, sqlserver.username
74+
, sqlserver.session_nt_username
75+
, sqlserver.client_app_name
76+
, sqlserver.context_info
77+
, sqlserver.client_connection_id
78+
, sqlserver.query_hash
79+
, sqlserver.query_plan_hash
80+
, package0.callstack
81+
)
82+
)
83+
, ADD EVENT sqlserver.database_recovery_lsn_report
84+
(ACTION
85+
(
86+
sqlserver.database_id
87+
, sqlserver.session_id
88+
, sqlserver.database_name
89+
, sqlserver.tsql_stack
90+
, package0.event_sequence
91+
, sqlserver.sql_text
92+
, sqlserver.nt_username
93+
, sqlserver.username
94+
, sqlserver.session_nt_username
95+
, sqlserver.client_app_name
96+
, sqlserver.context_info
97+
, sqlserver.client_connection_id
98+
, sqlserver.query_hash
99+
, sqlserver.query_plan_hash
100+
, package0.callstack
101+
)
102+
)
103+
ADD TARGET package0.event_file
104+
(SET filename = 'c:\Windows\Temp\DatabaseXEDBRecoveryProgress.xel', max_file_size = 5, max_rollover_files = 4)
105+
WITH
106+
(
107+
MAX_MEMORY = 4MB
108+
, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS
109+
, TRACK_CAUSALITY = ON
110+
, MAX_DISPATCH_LATENCY = 5 SECONDS
111+
, STARTUP_STATE = ON
112+
);
113+
GO
114+
115+
ALTER EVENT SESSION DBRecoveryProgress ON SERVER STATE = START;
116+
GO

0 commit comments

Comments
 (0)