SQL Server事务日志已满,如何清空和删除它们

我的事务日志文件已满,我有5个日志文件,2个在D:驱动器和3个在E:驱动器。 所有日志文件已满,每个日志文件大小为10GB。

我需要删除所有5个事务日志文件,并且需要有一个新的截断日志文件

我已经尝试了方法,1.从完整转换为简单和shrik文件(但不是很好的效果,它不会减小大小。

任何协助这个,Thnk提前

这是一个非常常见的SQL Server问题,已经在互联网上大量logging。 例如,在Google上不到5秒的时间内,我可以find以下文章,这将帮助您解决问题:

帮帮我! 我的SQL Server日志文件太大了!

所以你有一个很大的交易,正在使用很多的交叉空间吗? 我通常做的是做与DML批处理提交引起的问题。 那是在这么多的logging强制提交之后。 你可以在while循环中做到这一点。

或者,您可以暂时将您的交易日志增加到所需的大小,然后以您正常的大小重新创build您的交易日志。

看看这个ServerFault问题在同一个问题。

结果是你需要:

  1. 如果您确实需要处于完全恢复模式,请定期进行日志备份
  2. 如果没有,则切换到简单模式
  3. (不太常见的问题)批量执行大量操作,而不是一次执行所有操作

您通常不会需要多个日志文件(或者每个驱动器可能只有一个日志文件)。

切换到简单模式后,使用带EMPTYFILE参数的DBCC SHRINKFILE来缩小额外的日志文件(如果日志文件正在使用,可能需要多次尝试,否则可能需要等待活动事务完成)。

然后使用ALTER DATABASE MODIFY FILE删除额外的日志文件。