SQLServer默认跟踪(DefaultTrace)-创新互联-成都快上网建站

SQLServer默认跟踪(DefaultTrace)-创新互联

一.本文所涉及的内容(Contents)

  1. 本文所涉及的内容(Contents)
  2. 背景(Contexts)
  3. 基础知识(Rudimentary Knowledge)
  4. 查看默认跟踪信息(Default Trace)
  5. 补充说明(Addon)
  6. 参考文献(References)

二.背景(Contexts)

  思考这样的场景:数据库的表、存储过程经常别修改,当这些修改造成BUG的时候,很多开发都不承认是他们干的,那我们有没办法找出谁干的呢?

创新互联是一家专注于成都网站设计、成都网站建设与策划设计,江川网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:江川等地区。江川做网站价格咨询:18980820575

  SQL Server有Default Trace默认跟踪,数据库记录信息到log.trc文件,可以查看trace_event_id,46表示Create对象(Object:Created),47表示Drop对象(Object:Deleted),93表示日志文件自动增长(Log File Auto Grow),164表示Alter对象(Object:Altered),20表示错误日志(Audit Login Failed)。

  虽然可以通过上面的方式找到相关的操作,但是它有两个缺点:

    1) log.trc文件是滚动更新文件,所有有可能会被系统删除,你找不了太久的数据;

    2) 有些操作你可能是后知后觉,出了问题才会去找问题,我们应该主动去监控这些DDL;

  我们可以使用DDL触发器主动监控DDL语句的执行,当有对数据库执行DDL就会触发,我们把这些信息保存到表中,并且把操作用户的HostName和修改的T-SQL以邮件的形式发送到指定的邮件。本文将讲述使用Default Trace默认跟踪解决上面的问题,DDL触发器的方式可以参考:SQL Server DDL触发器运用 和 SQL Server 数据库邮件。

三.基础知识(Rudimentary Knowledge)

  默认追踪是在SQL Server 2005中首次出现的新功能,它提供了审计模式修改的功能,例如表创建、存储过程删除等类似过程。默认情况下它是运行的,但是你可以通过sp_configure来启用和停用它。

  默认跟踪日志可以通过 SQL Server Profiler打开并查看,或者通过 Transact-SQL 使用 fn_trace_gettable 系统函数查询返回一个表,并且可以对表数据进行过滤、筛选。

  默认跟踪能帮助我们跟踪什么有用的信息呢?你可以查看到如下几个内容:

    1) 使用Default Trace查看谁还原了你的数据库

    2) 数据库中那些对象被created /altered /deleted

    3) 查找日志文件快速增长的原因

    4) 查看、过滤Login failed for user 'sa'等错误信息

四.查看默认跟踪信息(Default Trace)

下面主要看看在我们日常使用DDL的过程中,默认跟踪会记录些什么东西:

(一) 检查Default Trace是否已经开启,如果返回Figure1中value为1,那就说明已经开启默认跟踪了;如果value为0表示关闭默认跟踪;

--查询Default Trace是否开启 SELECT * FROM sys.configurations WHERE configuration_id = 1568;

本文标题:SQLServer默认跟踪(DefaultTrace)-创新互联
当前地址:http://kswjz.com/article/jgged.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流