当我发现事务日志只会正确截断时,我正在调查 SQL Server 2005 事务日志的快速增长 - 如果 sys.databases "log_reuse_wait" 列设置为 0 - 这意味着没有任何东西可以阻止事务日志重用现有空间.
有一天,当我打算备份/截断日志文件时,我发现该列在 tempdb 中有一个 4 或 ACTIVE_TRANSACTION。然后,我使用 DBCC OPENTRAN('tempdb') 和来自 sysprocesses 的 open_tran 列检查了任何打开的事务。结果是我在系统中的任何地方都找不到活动的交易。
log_reuse_wait 列中的设置是否准确?是否存在使用我上面描述的方法无法检测到的交易?我只是错过了一些明显的东西吗?