SQL Server 默认跟踪应用2 – 审核备份和恢复事件


我们想捕获应用程序在不可预期的时间的备份请求。而这个备份导致了生产用户的性能问题。而从SQL Server错误日志无法查询到发出备份请求的应用程序名称。我建议使用SQL Server默认跟踪Audit Backup/Restore event。当备份或恢复命令执行时,会触发Audit Backup/Restore event类。

 

默认跟踪提供了非常有用的跟踪SQL Server问题的信息。有大量的审核事件。默认跟踪是轻量的,建议不要关闭默认跟踪。

 

当定位备份和恢复的问题时,下面问题是有用的:

1) 用于备份和恢复的登录名是什么?

2) 操作是什么时候启动的?

3) 命令内容是什么?

4) 哪个应用程序发出的请求?

 

不能保证备份和恢复信息有用,但是一些线索能提供方向或进一步的方向。

 

下面的查询列出了在SQL Server实例中的所有备份和恢复事件。注意:默认跟踪的默认设置是循环使用跟踪文件,所以备份跟踪文件作为历史记录。当SQL Server实例重启的时候,默认跟踪文件也更新。

 

select e.name as eventclass,t.loginname, t.spid, t.starttime,
t.textdata, t.objectid, t.objectname, t.databasename,
t.hostname, t.ntusername,
t.ntdomainname, t.clientprocessid, t.applicationname, t.error
FROM sys.fn_trace_gettable(CONVERT(VARCHAR(150), ( SELECT TOP 1
f.[value]
FROM sys.fn_trace_getinfo(NULL) f
WHERE f.property = 2
)), DEFAULT) T
inner join sys.trace_events e on t.eventclass = e.trace_event_id
where eventclass=115

image