我们想捕获应用程序在不可预期的时间的备份请求。而这个备份导致了生产用户的性能问题。而从SQL Server错误日志无法查询到发出备份请求的应用程序名称。我建议使用SQL Server默认跟踪Audit Backup/Restore event。当备份或恢复命令执行时,会触发Audit Backup/Restore event类。
默认跟踪提供了非常有用的跟踪SQL Server问题的信息。有大量的审核事件。默认跟踪是轻量的,建议不要关闭默认跟踪。
当定位备份和恢复的问题时,下面问题是有用的:
1) 用于备份和恢复的登录名是什么?
2) 操作是什么时候启动的?
3) 命令内容是什么?
4) 哪个应用程序发出的请求?
不能保证备份和恢复信息有用,但是一些线索能提供方向或进一步的方向。
下面的查询列出了在SQL Server实例中的所有备份和恢复事件。注意:默认跟踪的默认设置是循环使用跟踪文件,所以备份跟踪文件作为历史记录。当SQL Server实例重启的时候,默认跟踪文件也更新。
1
2
3
4
5
6
7
8
9
10
11
|
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
|
本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1581975 ,如需转载请自行联系原作者