SQL Server 之 是谁动了我的库

今天主要介绍的是SQL Server 中的Default Trace

Default Trace(默认跟踪)

参考文献:SQL Server 2005 - Default Trace (默认跟踪) - 知行思新 - 博客园在我们的工作中可能会遇到这样一种情形。由于数据库中某些对象被altered/created/deleted,造成我们的应用程序crash。当我们把问题解决之后,老板可能会问发生了什么?为什么会这样?是https://www.cnblogs.com/DBFocus/archive/2010/05/19/1739535.html

 一:查询Default Trace是否开启

select * from sys.configurations where configuration_id = 1568

如果没开启,使用如下sql语句进行开启

sp_configure 'show advanced options', 1;
go
reconfigure;
go
sp_configure 'default trace enabled', 1;
go
reconfigure;
go

二: 获取跟踪文件的路径

select * from ::fn_trace_getinfo(0)

三:查询详细信息

select
  loginname,
  loginsid,
  spid,
  hostname,
  applicationname,
  servername,
  databasename,
  objectname,
  e.category_id,
  cat.name as [CategoryName],
  textdata,
  starttime,
  eventclass,
  eventsubclass, --0表示begin,1表示commit
  e.name as EventName,
  e.trace_event_id
from ::fn_trace_gettable('D:\OYYT\OtherSoft\SQL Server\Root directory\MSSQL15.MSSQLSERVER\MSSQL\Log\log_480.trc',0)
  inner join sys.trace_events e
          on eventclass = trace_event_id
  inner join sys.trace_categories as cat
          on e.category_id = cat.category_id
where databasename = 'test_log' and --test_log表示我创建的数据库名称
      objectname = 'test' and --根据objectname来过滤 test表示我库中的表名称
       e.category_id = 5 and --category 5表示对象
       e.trace_event_id = 46 --trace_event_id: 46表示Create对象,47表示Drop对象,164表示修改对象

 

编写此文字留作记录,同时也感谢博主的文章指导。我写的可能较为简陋,如有疑问可以查看文章开篇链接地址,去看原文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值