我的事务日志文件已满,我有 5 个日志文件,2 个在 D:驱动器中,3 个在 E:驱动器中。所有日志文件都已满,每个日志文件大小为 10GB。
我需要删除所有 5 个事务日志文件,并且需要一个新的截断日志文件
我曾尝试过以下方法:1. 从完整文件转换为简单和 shrik 文件(但效果不佳,它并没有减小尺寸。
任何帮助,提前感谢
答案1
这是一个非常常见的 SQL Server 问题,互联网上已经有大量相关记录。例如,在 Google 上,我花了不到 5 秒钟就找到了以下文章,它将帮助您解决问题:
答案2
所以你有一个大事务,它占用了大量的 tran 空间,对吧?我通常会对导致问题的 DML 进行批量提交。这是在这么多记录强制提交之后。你可以在 while 循环中执行此操作。
或者,您可以暂时将您的 tran 日志增加到所需的大小,运行大型事务,然后以正常大小重新创建 tran 日志。
答案3
查看这个 ServerFault 问题关于同一问题。
结果是您需要执行以下操作之一:
- 如果确实需要完全恢复模式,请定期进行日志备份
- 如果没有,请切换到简单模式
- (不太常见的问题)批量执行大量操作,而不是一次性执行
通常,您不需要多个日志文件(或者每个驱动器一个日志文件)。
切换到简单模式后,使用带有 EMPTYFILE 参数的 DBCC SHRINKFILE 来缩小额外的日志文件(如果日志文件正在使用中,则可能需要多次尝试,或者您可能必须等待活动事务完成)。
然后使用 ALTER DATABASE MODIFY FILE 删除多余的日志文件。