2015-07-20 80 views
0

我有一個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, 我已經使用收縮數據庫 - 測試 我檢查了 - > 在釋放未使用的空間之前重新組織文件。選擇此選項可能會影響性能。 –

回答

1

這個工作對我來說:

-- 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我得到了一些設置的窗口,但我不知道有基於默認設置或更早的? –