不能缩小一个.LDF文件

问题描述:

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

我试过右键点击一个DB/tasks/shrink/files &也是数据库。

我收到此错误消息。

Microsoft SQL Server Management Studio

Shrink failed for Database 'cterm_across'. (Microsoft.SqlServer.Smo)

For help, click: 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

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

The transaction log for database 'cterm_across' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases (Microsoft SQL Server, Error: 9002)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=9002&LinkId=20476

我该如何走走呢?

预先感谢您

+0

你是如何尝试收缩日志文件?您使用了哪些选项?多少日志文件是免费的?如果您正在使用完全恢复模式,请在尝试缩小日志文件之前对其进行备份。您不能删除尚未备份的日志条目。 –

+1

你的数据库使用了什么恢复模式?如果“完全恢复”,您最近是否创建了完整备份? – Arvo

+0

你好Panagiotis, 我已经使用收缩数据库 - 测试 我检查了 - > 在释放未使用的空间之前重新组织文件。选择此选项可能会影响性能。 –

这个工作对我来说:

-- 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也许

+0

问题是我我几乎没有空间留在c:/其他卷都没有,但我可以尝试? 这是一个查询我会运行你写的代码? 预先感谢您 –

+0

只需将2个备份命令更改为'DISK = N'C:\ Temp \ cterm_across.bak'' TO'DISK ='NUL:''。您将在您的空设备上拥有足够的存储空间,相信我;-) – CeOnSql

+0

我找到了一个名为“Z:\”的卷 我在那里看到了在此日志文件上的备份(2015-02-11) , (例如:) cterm_across_log.bak 现在的问题是,我不知道他们是如何进行的早期备份设置 如果我做选择cterm_across我也选择\备份数据库 - cterm_across我得到了一些设置的窗口,但我不知道有基于默认设置或更早的? –