我收到通知,我管理的 SQL 实例的事务日志驱动器已满。我跳了起来,找到了哪个事务日志在增长,然后去查看事务日志增长的原因。查看 sys.databases,日志重用 desc 为 active_transaction。没什么大不了的,我想我可以看一下,找到针对数据库运行事务的会话,并找出后续步骤。这是一个开发数据库,所以我假设开发人员打开了一个事务,我只需要联系他们并让他们关闭事务即可。
现在来谈谈奇怪的事情。我使用 DBCC OPENTRAN 查找数据库中最旧的打开事务,输出中有两个奇怪的地方。
- 会话ID被列为53s,我从未见过带有字母的会话ID,
- 交易开始时间为2023年11月3日,但服务器于2023年11月6日重启。
我想我可以将数据库置于单用户模式并立即回滚,然后返回多用户模式,这将解决该问题。我现在暂时搁置了,因为我不明白发生了什么,也不明白事情是如何以这种方式结束的。