在SQL2000/2005中可以快速壓縮日誌log文件,通過SQL:
--myDbName是需要瘦身的數據庫名
backup log myDbName with no_log;
backup log myDbName with truncate_only;
dbcc SHRINKDATABASE(myDbName);
對於SQL2008以上命令不能運行,SQL2008說明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 選項已廢止。使用完整恢復模式或大容量日誌恢復模式時,如果必須刪除數據庫中的日誌備份鏈,請切換至簡單恢復模式。有關詳細信息,請參閱有關從完整恢復模式或大容量日誌恢復模式切換的注意事項。
操作語句如下:
USE [master]
GO
ALTER DATABASE MyDbName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE MyDbName SET RECOVERY SIMPLE --簡單模式
GO
USE MyDbName
GO
DBCC SHRINKFILE (N'MyDbName_LogFileName' , 1, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE MyDbName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE MyDbName SET RECOVERY FULL --還原爲完全模式
GO
其中DBCC SHRINKFILE (N'MyDbName_LogFileName' , 1, TRUNCATEONLY)中的
第一個參數可以用以下語句獲取:select name from sys.database_files where type=1
第二個參數代表最終日誌文件大小,1即1M.