在SQL2000/2005中可以快速壓縮日志log文件,通過SQL,
方法一:
--BigData為數(shù)據(jù)庫名
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
執(zhí)行以上語句可以快速壓縮日志文件到1M。
但是以上語句中前兩行在SQL 2008下無法執(zhí)行 ,
第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”
第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”
第三行可以執(zhí)行。但日志log文件沒有任何變化。
原來SQL 2008 已經(jīng)不再支持 DUMP TRANSACTION和BACKUP LOG WITH NO_LOG,詳情請(qǐng)看
http://msdn.microsoft.com/zh-cn/library/ms187315%28SQL.90%29.aspx
http://msdn.microsoft.com/zh-cn/library/ms186865.aspx
sql2005說明中明確:包含 DUMP 語句是為了向后兼容。而 后續(xù)版本的 Microsoft SQL Server 將刪除該功能。請(qǐng)避免在新的開發(fā)工作中使用該功能,并著手修改當(dāng)前還在使用該功能的應(yīng)用程序。 使用 BACKUP。
SQL2008說明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 選項(xiàng)已廢止。使用完整恢復(fù)模式或大容量日志恢復(fù)模式時(shí),如果必須刪除數(shù)據(jù)庫中的日志備份鏈,請(qǐng)切換至簡(jiǎn)單恢復(fù)模式。有關(guān)詳細(xì)信息,請(qǐng)參閱有關(guān)從完整恢復(fù)模式或大容量日志恢復(fù)模式切換的注意事項(xiàng)。
嘗試方法二:
----Logical Files :
--CMS1.5_Data
--CMS1.5_Log
DBCC SHRINKFILE (N'CMS1.5_Log' , 1)
GO
無效。
網(wǎng)補(bǔ)充:需要把備份模式換成simple mode然后才能shrink 然后就可以了。
嘗試方法三:
代碼
use DB_NAME
sp_dboption DB_NAME, "trunc. log on chkpt.", true
checkpoint
sp_dboption DB_NAME, "autoshrink", true
每一行指令請(qǐng)單獨(dú)執(zhí)行。其中的DB_NAME是指Database Name,在下完語法后的數(shù)小時(shí)至數(shù)十小時(shí),該LOG檔會(huì)逐漸釋放空間,最后大約都會(huì)維持在數(shù)1024KB左右。
有沒有更快的方法呢?
嘗試方法四:(請(qǐng)?zhí)崆皞浞菸募。。?
1. Detach數(shù)據(jù)庫。
2.刪除log文件。
3. 附加數(shù)據(jù)庫,選移除log文件,此時(shí)SQL Server 會(huì)自動(dòng)重新建立一個(gè)512K 的Log 文件。
附圖:
方法五(沒有試試,請(qǐng)?zhí)崆皞浞菸募。。?
1. 停止 SQL Server 的服務(wù)
2. 使用刪除 Log文件
3. 重新啟動(dòng)SQL Server 服務(wù),此時(shí)SQL Server 會(huì)自動(dòng)重新建立一個(gè)1MB 的Log 文件。