SQL Server 黑盒跟踪 -- 如何在生产环境配置?

SQL Server 黑盒跟踪 -- 如何在生产环境配置?

如果遇到间歇性故障,为了充分利用黑盒跟踪,就要确保当服务器运行时它也一直出于运行状态(包括计划中的或计划外重启之后)。为达到这个要求,可以将黑盒跟踪设置为在SQL Server启动时自动启动。首先,将跟踪定义封装在主数据库的一个存储过程中:

USE master
GO
CREATE PROCEDURE StartBlackBoxTrace
AS
BEGIN
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
END
GO

然后,将这个过程设置为SQL Server服务启动时自动启动:

EXEC sp_procoption
‘StartBlackBoxTrace‘, ‘STARTUP‘, ‘ON‘

如果发生了崩溃事件,可以分析收集到的数据以确定崩溃当时有哪些存储过程或查询正在运行,并(很有希望)可以查出哪些出了问题。

停止并关闭跟踪ID为1的跟踪,可以执行以下脚本:

EXEC sp_trace_setstatus 1, 0    
EXEC sp_trace_setstatus 1, 2

设置状态为0是停止跟踪,重新设置状态为1就是重启跟踪。你可以设置状态为2去关闭跟踪,但你必须已经停止了它。你不能重启一个关闭的跟踪,你必须完全重新创建。当你关闭了跟踪的时候,这个blackbox.trc文件可用。接着运行sqldiag拷贝完整的blackbox.trc文件到\log目录重命名为sqldiag.trc。

时间: 2024-10-13 16:01:17

SQL Server 黑盒跟踪 -- 如何在生产环境配置?的相关文章

SQL Server 黑盒跟踪 -- 介绍

SQL Server 黑盒跟踪 -- 介绍 问题描述: 你是否碰到过这些问题:一个查询导致SQL Server崩溃,或者因为CPU飙到100%而导致服务器不可用? 解决方案: SQL Server提供了另一个开箱即用的后台跟踪就是黑盒跟踪(Blackbox Traces).这个跟踪被设计为同飞机上的黑匣子功能类似,SQL Server黑匣子就是拥有大量运行数据的记录.黑匣子记录了发送到SQL Server的所有查询以及类似错误信息的有用记录,可以帮助诊断间歇性服务器崩溃,或者知道在CPU飙高之前

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

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

SQL Server 黑盒跟踪 -- 进一步了解sqldiag

SQL Server 黑盒跟踪 -- 进一步了解sqldiag SQL Server提供了一个特别的命令工具sqldiag,帮助收集用于定位SQL Server问题的信息.你可以在其它SQL Server可执行命令所在目录相同的binn目录下找到该文件.默认目录是\Program Files\Microsoft SQL Server\MSSQL\Binn.当SQL Server正在运行时,你从命令提示符执行sqldiag,这个工具收集了大量的操作系统,硬件配置,SQL Server配置等信息.S

SQL Server 黑盒跟踪 -- 深入进阶

SQL Server 黑盒跟踪 -- 深入进阶 当你报告错误给支持提供商时,确保要提供Blackbox.trc和Sqldiag.txt文件. 创建Blackbox.trc文件: 1. 创建跟踪 2. 开启跟踪 3. 在运行sqldiag工具前停止跟踪 你可以用下面的存储过程,trace_blackbox,去创建,启动,然后停止黑盒跟踪. 拷贝下面的脚本到查询分析器,然后脚本,创建trace_blackbox存储过程.注意,如果你要在master数据库创建它,你必须在master数据库运行该存储过

SQL Server 默认跟踪 -- 介绍

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

SQL Server 2012笔记分享-33:SQL Server profiler跟踪

需求 使用SQL server profiler跟踪当前实例的所有常见活动,并将结果保存到文件中. ================================================================ 开始程序中选择SQL server profiler,如图. 选择文件--新建跟踪,如图. 连接到当前的SQL server实例,如图. 在跟踪属性里面配置跟踪名称.保存到的文件地址.保存到SQL报表.启用跟踪停止时间等,如图. 下图是一个跟踪启动后实时的跟踪情况,如图

统计分析SQL Server Profiler 跟踪的SQL

--跟踪文件读入到表中分析 SELECT * INTO ZGSJY FROM fn_trace_gettable('E:\wxxcdbprofiler.trc', default); --某时间内,最耗时SQL select TOP 100 SUBSTRING(Textdata,1,660) as '名称', count(*) as '数量', sum(duration/1000) as '总运行时间ms', avg(duration/1000) as '平均运行时间ms', avg(cpu)

SQL Server 默认跟踪 -- 捕获事件详解

SQL Server 默认跟踪 -- 捕获事件详解 哪些具体事件默认跟踪文件能够捕获到? --returns full list of events SELECT * FROM sys.trace_events --returns a full list of categories SELECT * FROM sys.trace_categories --returns a full list of subclass values SELECT * FROM sys.trace_subclass

SQL Server 默认跟踪应用3 -- 检测对表的DDL操作

SQL Server 默认跟踪应用3 -- 检测对表的DDL操作 在SQL Server数据库上发生的DDL操作,能知道是谁做的么? 是的.SQL Server默认跟踪有对象修改事件. 这个脚本列出所有的对象修改事件.查询条件中加上时间和数据库名的限制. select e.name as eventclass, t.loginname, t.spid, t.starttime, t.textdata, t.objectid, t.objectname, t.databasename, t.hos