无法收缩.LDF文件

时间:2015-07-20 08:33:15

标签: sql-server sql-server-2008

我有一个150GB的分区 我在该卷上也有Microsoft SQL服务器, 问题是我在该卷上有几个不同的数据库, 但我无法缩小日志文件,因为没有剩余空间。

我尝试右击数据库/ tasks / shrink / files&也是数据库。

我收到此错误消息。

  

Microsoft SQL Server Management Studio

     

Database' cterm_across'收缩失败。 (Microsoft.SqlServer.Smo)

     

如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617.0+((KJ_RTM_GDR).110422-1901+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Shrink+Database&LinkId=20476

     

其他信息:

     

执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)

     

数据库的事务日志&c; cterm_across'已满。要找出无法重用日志中的空间的原因,请参阅sys.databases中的log_reuse_wait_desc列(Microsoft SQL Server,错误:9002)

     

如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=9002&LinkId=20476

我该如何走动呢?

提前谢谢

1 个答案:

答案 0 :(得分:2)

这对我有用:

-- Do a Backup of your database - save it anywhere:
BACKUP DATABASE cterm_across TO DISK = N'C:\Temp\cterm_across.bak'

-- Do a Backup of the transaction log - save it anywhere:
BACKUP LOG cterm_across TO DISK = N'C:\Temp\cterm_across.bak'
-- If you want to truncate the transaction log: save the backup on null device:
--BACKUP LOG cterm_across TO DISK='NUL:'

-- Change recovery model to simple for the call of Shrinkfile
ALTER DATABASE cterm_across SET RECOVERY SIMPLE
DBCC SHRINKFILE(logical_name_of_your_logfile)
ALTER DATABASE cterm_across SET RECOVERY FULL

您只需使用正确的逻辑文件名替换logical_name_of_your_logfile。你可以在这里找到它们:右键单击数据库 - 属性 - 文件 - 列Logical Name ...默认情况下像cterm_across_log可能