在为什么事务日志不断增长或空间不足?,概述了事务日志增长的两个常见原因:
- 数据库处于完全恢复模式,不进行日志备份。
- 长时间运行的事务占用了大量空间。
据我所知,这些原因都不适用于我。我的数据库处于简单恢复模式,没有长时间运行的事务占用大量空间。
DBCC OPENTRAN
请注意,当我截取屏幕截图并且没有活动的交易时,我很幸运。大多数时候,我看到并看到几秒钟前开始的交易。
另一个答案表明我的日志可能很大,但为空。要检查这一点,我右键单击数据库,然后导航到任务 -> 收缩 -> 文件,然后选择日志文件类型。我可以看到我的日志文件很大,而且可用空间也很少。
我使用Aaron Bertrand 的查询来找出导致日志文件增长的会话以及间隔时间。查询告诉我日志文件以半固定的时间间隔增长,大约每 10 分钟一次。SPID 每次都不同,并不总是来自同一个应用程序。我使用了一个查询(由于某种原因我现在找不到)来确定该会话上次执行的 SQL 语句。我研究了这些查询,看看是否有什么突出的,没有发现任何明显的东西。我最终决定,如果DBCC OPENTRAN
说没有事务长时间运行,那么问题一定不在于应用程序正在执行的查询。
我们最近尝试使用此数据库作为源来设置事务复制。我们最终不得不放弃,但在删除该出版物时遇到了问题。我们不得不手动删除分发数据库并使用它sp_removedbreplication
来清理。我读到复制会导致事务日志未经检查地增长。我的想法是,由于删除发布的过程并不顺利,日志文件可能正在增长,因为复制的一些残余物仍然存在。
那么,除了两个最常见的原因,我还能做些什么来弄清楚为什么事务日志变得如此之大(并修复它)?
从您的评论中,您显然成功地重新启用了复制,然后使用标题为Disable Publishing and Distribution的帖子中包含的信息正确删除了它。
总结所涉及的步骤: