如何截断SQL Server日志文件

我试图shink数据库日志文件,但它仍然是巨大的。 我的数据库是200MB,日志是30Gb USE [databasename]; BACKUP LOG [databasename] WITH TRUNCATE_ONLY; DBCC SHRINKFILE('databasename_log',1,TRUNCATEONLY);

没有多大帮助。 即使完全备份后

您可能在日志中打开了事务。 在日志上做一个DBCC OPENTRAN ,看看你是否做。 一个打开的事务将会阻止你缩减日志。

这里有一个很好的博客条目 ,可以给你更多关于幕后发生的细节,并给你一些关于无证但方便的DBCC LOGINFO命令的背景知识。

也许你有一个未完全承诺的公开交易。 在SSMS中使用活动监视器并查找与打开的事务的连接(应该有一个称为打开的事务计数的列)。 您可能需要忽视正在查询活动的交易。 如果有一个开放的连接调查它是什么或杀死它。