在 SQL Server 中“永久”设置跟踪标志?

Jef*_*ood 25 trace sql-server

我们需要使用SQL Server 跟踪标志 7646来帮助缓解一些全文阻塞,但我很沮丧地发现跟踪标志“未设置”本身,可能是在数据库服务器重新启动时。

我用过

DBCC TRACEON (7646, -1)
Run Code Online (Sandbox Code Playgroud)

设置跟踪标志和

DBCC TRACESTATUS
Run Code Online (Sandbox Code Playgroud)

显示所有跟踪标志,它告诉我它没有设置(重启后,我猜)。要永久设置跟踪标志,我这样做了:

  • 转到 SQL Server 配置管理器
  • 查看 SQL Server 服务的属性
  • 访问了高级选项卡
  • 编辑了启动参数选项

并添加

;-T{跟踪编号}

到最后,就像这样......

-dD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;-eD:\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf ;-T7646

那是对的吗?我在SQL Server Startup Parameters 的语法上发现了相互矛盾的结果。

squ*_*man 15

是的,这会为你做的。使用 -T{traceflag} 启动参数,即。


小智 11

我学到的东西是在每个跟踪标志之前必须有分号。例如,如果您启用将死锁信息记录到文件中,您的示例将变为...

-dD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;-
eD:\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-
lD:\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.l
df;-T7646;-T3605;-T1204;-T1222
Run Code Online (Sandbox Code Playgroud)

跟踪标志之间的空格会导致后面的标志被忽略。