RBa*_*ung 8 sql-server deadlock dbcc sql-server-2008-r2 error-log
我有一个客户站点,其中包含两个类似配置的 2008r2 SQL Server“A”和“C”。在两台服务器上都启用了跟踪标志 1204 和 1222,并DBCC tracestatus
在两台服务器上显示以下内容:
TraceFlag Status Global Session
1204 1 1 0
1222 1 1 0
3605 1 1 0
Run Code Online (Sandbox Code Playgroud)
在 A 上,跟踪标志按预期工作,当发生死锁时,我们会在错误日志中获得 1204 和 1222 死锁报告。但是,在 C 上,仅显示 1204 报告,我们从未得到 1222 报告。
对于我的生活,我看不出这种差异的任何原因。我已经广泛地搜索了这个,并阅读(并重新阅读)了关于这些跟踪标志的 MS 文档,我找不到任何关于此类行为的报告,也没有任何关于可能导致它的原因的提示。唯一接近的是偶尔声称这两个跟踪标志都不起作用,但这些都被证明是在启用命令中有拼写错误的情况。我知道这里不是这种情况,因为我已经使用 DBCC TRACESTATUS 进行了确认。
因此,对于可能导致仅跟踪标志 1222 不起作用和/或如何修复它的任何见解,将不胜感激。
嗯,这是一个有趣的发展。每当我自己生成死锁时(使用此代码:https : //stackoverflow.com/questions/7813321/how-to-deliberately-cause-a-deadlock),我都会在错误日志中得到两个跟踪报告。似乎只是触发死锁报告之一的应用程序每隔几天就会发生一次“自然”死锁。不确定这是否有帮助,是否有任何理由相信跟踪 1222 不会报告与 1204 相同的所有死锁情况?
我有一个类似的问题,不确定它会解决你的问题。
尝试这个:
EXEC master..sp_altermessage 1205, 'WITH_LOG', TRUE;
GO
Run Code Online (Sandbox Code Playgroud)
尽管它是通过跟踪标志记录在事件日志中的,但也需要进行设置才能触发电子邮件。您可以在此处查看该表:
select * from master.sys.messages
where text like '%deadlock%'
Run Code Online (Sandbox Code Playgroud)
您可以在这里了解更多详细信息
归档时间: |
|
查看次数: |
1327 次 |
最近记录: |