SQL Server 黑盒跟踪 -- 如何启用黑盒跟踪?

SQL Server 黑盒跟踪 -- 如何启用黑盒跟踪?

这个跟踪是通过将sp_trace_create的@options参数值设置为8来配置的。@options指定为跟踪设置的选项,当设置值为8,即TRACE_PRODUCE_BLACKBOX,指定服务器产生的最后5MB跟踪信息记录将由服务器保存。TRACE_PRODUCE_BLACKBOX与所有其他选项不兼容。@tracefile指定跟踪将写入的位置和文件名,在使用TRACE_PRODUCE_BLACKBOX选项时无法指定trace_file。

TRACE_PRODUCE_BLACKBOX具有以下特性:

  • 它属于滚动更新跟踪。 file_count 的默认值为 2,但用户可以使用 filecount 选项覆盖此值。
  • file_size 与其他跟踪一样默认为 5 MB 并且可以更改。
  • 不能指定文件名。 文件将保存为:N‘%SQLDIR%\MSSQL\DATA\blackbox.trc‘
  • 跟踪中仅包含以下事件和它们的列:
    • RPC starting
    • Batch starting
    • Exception
    • Attention
  • 无法在此跟踪中添加或删除事件或列。
  • 不能为此跟踪指定筛选器。

以下Transact-SQL可以用来启动一个黑盒跟踪:

DECLARE @TraceId INT
EXEC sp_trace_create
@TraceId OUTPUT,
@options = 8
EXEC sp_trace_setstatus @TraceId, 1

可以通过fn_trace_getinfo函数返回跟踪信息。

SELECT * FROM ::fn_trace_getinfo(@TraceID)

这个跟踪被自动配置去使用两个滚动文件,当达到默认最大文件容量5MB时就要在两个文件之间来回翻转。然而,一些客户表示,5MB备份数据不足以以调试崩溃故障。如果要扩展容量,除了为@tracefile参数接受一个值(甚至是NULL)之外,还要为@maxfilesize参数指定一个值。以下Transact-SQL代码创建了一个最大容量为25MB的黑盒跟踪:

DECLARE @TraceId int
DECLARE @maxfilesize bigint
SET @maxfilesize = 25
EXEC sp_trace_create
@TraceId OUTPUT,
@options = 8,
@tracefile = NULL,
@maxfilesize = @maxfilesize
 
EXEC sp_trace_setstatus @TraceId, 1

默认情况下,黑盒跟踪文件的路径是在默认的SQL Server数据文件夹中。但是,正如文件大小可变一样,如果必要,路径也可以用@tracefile参数进行修改。

时间: 2024-12-07 05:10:13

SQL Server 黑盒跟踪 -- 如何启用黑盒跟踪?的相关文章

SQL Server 2008 ---- filestream的启用

create database PhotoRepository on primary ( name =N'PhotoRepository', filename = N'E:\PhotoRepository.mdf', size=5MB, filegrowth=1024KB ), filegroup FS_PhotoRepository contains filestream ( name='FS_PhotoRepository', filename=N'E:\FileGroup\FileStre

SQL Server扩展事件-- 使用system_health默认跟踪会话监控死锁

SQL Server扩展事件(Extended Events)-- 使用system_health默认跟踪会话监控死锁 转自:http://blog.51cto.com/ultrasql/1600372 自SQL Server 2008以后,提供了扩展事件(Extended Events)来跟踪系统分析定位问题.默认的system_health会话一直在运行,可以帮助你更快的定位问题. 运行如下脚本可以看到system_health扩展事件会话: SELECT * FROM sys.dm_xe_

Sql Server来龙去脉系列之三 查询过程跟踪

我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更新.CPU占用过高等,跟踪这些状态是非常有用地. 本章节覆盖了事件系统的关键区域:触发器.事件通知器.改变跟踪.SQL跟踪.扩展事件等.这些事件都有一个相似目的:响应或者记录发生的事件.但每一中事件的工作方式又不一样. 基础:触发器和事件通知器 触发器非常多,Data Manipulation La

SQL Server导入数据时“启用标示插入”详解

在SQL Server中导入数据时,会有一个"启用标示插入"的选项,突然间懵逼了,这到底啥意思?我选与不选这个选项,结果好像没区别!不科学啊这,"存在即合理",我相信这个选项肯定有它的用处,只是我不知道罢了. 于是我去查资料,在CSDN论坛里找到了可能的解释: 1)首先:"启用标示插入"只对标示列(identity定义的列)起作用.所以如果你要使用这个功能,肯定得有标示列了.我当时狂晕的地方在于,我没在数据库创建表,而是直接在导入数据的过程中创建

SQL Server审计功能入门:更改跟踪(Change Tracking)

介绍 更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制.常规的,自定义变更跟踪和读取跟踪数据,会使用触发器,存储过程和记录变更的用户表等, 还需要保证访问一致和相关清理工作. 使用CT会减少额外工作量和保证访问一致性. 启用CT的表上必须得有主键,所有版本适用.为了保证更改信息的有效性,官方建议结合快照隔离使用. CT只能提供: 哪些行/列发生了更改 被更改行的最新数据. 不能提供:更改发生的次数,中间值. 应用:离线缓存的更新,ETL更新 注意事项: 1. 写入变更到变更

SQL Server 临时禁用和启用所有外键约束

--获得禁用所有外键约束的语句 select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束 from sysobjects a ,sysobjects b where a.xtype ='f' and a.parent_obj = b.id --获得启用所有外键约束的语句 select 'ALTER TABLE [' + b.name + '] CHECK CONSTRAINT ' + a.nam

SQL Server 默认跟踪 -- 介绍

SQL Server 默认跟踪 -- 介绍 什么是默认跟踪? 默认的SQL Server预定义跟踪,是SQL Server中默认开启的最轻量级跟踪,由5个跟踪文件(.trc)组成,每个文件的最大值为20MB,存储在SQL Server log目录. 这些文件用作临时存储捕获事件的缓存.存储在缓存中的事件一段事件后会被删除.当SQL Server重启后,或者当当前使用的文件达到最大值时,最旧的文件被删除,在忙碌的生产环境,这样的循环缓存会在几分钟内被循环覆盖. 注意: 后续版本的 Microsof

SQL Server 2008新增的变更数据捕获和更改跟踪

本文主要介绍SQL Server中记录数据变更的四个方法:触发器.Output子句.SQL Server 2008中新增的变更数据捕获(Change Data Capture 即CDC)功能.同步更改跟踪.其中后两个为SQL Server 2008所新增. 一.触发器 在SQL Server的早期版本中,如果要记录某个表或视图的Insert/Update/Delete操作,我们可以借助触发器(Trigger)(http://msdn.microsoft.com/zh-cn/library/ms1

SQL Server中关于跟踪(Trace)那点事

前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简单的举几个应用场景: 在线生产库为何突然宕机?数百张数据表为何不翼而飞?刚打好补丁的系统为何屡遭黑手?新添加的信息表为何频频丢失?某张表字段的突然更改,究竟为何人所为?这些个匿名的访问背后,究竟是人是鬼?突然增加的增量数据,究竟是对是错?数百兆的日志爆炸式的增长背后又隐藏着什么?这一且的背后,是应用