广告
返回顶部
首页 > 资讯 > 数据库 >SQL Server 默认跟踪(Default Trace)
  • 553
分享到

SQL Server 默认跟踪(Default Trace)

2024-04-02 19:04:59 553人浏览 八月长安
摘要

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge)

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

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

二.背景(Contexts)

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

  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;
您可能感兴趣的文档:

--结束END--

本文标题: SQL Server 默认跟踪(Default Trace)

本文链接: https://www.lsjlt.com/news/48333.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作