- 截斷交易記錄檔:將資料庫「復原模式」改為「簡單」,即可即斷交易記檔
關於復原模式的官方說明:
http://msdn.microsoft.com/zh-tw/library/ms189275%28v=sql.105%29.aspx
可以從 SQL Server Management Studio
在資料庫上按右鍵->「屬性」->「選項」->「復原模式」進行修改,
或是直接執行以下指令修改。
ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE
- 查 ldf 檔的邏輯名稱(name)
執行
SP_HELPDB 資料庫名稱
或
use 資料庫名稱 GO select * from sys.database_files
此時可查得 ldf 檔對應到的邏輯名稱(name),一般會是"資料庫名稱_log",
但若之前是從備份資料還原到不同名稱的資料庫,邏輯名稱(name)就可能不一樣。 - 壓縮交易記錄檔
執行以下指令後,應該可以發現ldf的檔案大小縮小成2MB
use 資料庫名稱 GO DBCC SHRINKFILE('ldf的邏輯名稱',2)
-
將資料庫「復原模式」改回「完整」
執行
ALTER DATABASE 資料庫名稱 SET RECOVERY FULL
- 備註1:mdf 和 ldf 檔的邏輯名稱(name)修改指令如下
alter database 資料庫名稱 modify file(name=舊mdf的name, newname=新mdf的name) alter database 資料庫名稱 modify file(name=舊ldf的name, newname=新ldf的name)
- 備註2:經測試,將資料庫「復原模式」改成「簡單」,接著改回「完整」,最後再進行「壓縮交易記錄檔」的操作,似乎也是可行。
- 備註3:MS SQL 2005 以前的版本,
可以使用"BACKUP LOG 資料庫名稱 WITH NO_LOG"
或"BACKUP LOG 資料庫名稱 WITH TRUNCATE_ONLY"截斷交易記錄檔,
但在MS SQL 2008之後已不建議使用這兩個指令。
http://msdn.microsoft.com/en-us/library/ms144262%28v%3Dsql.100%29.aspx
沒有留言:
張貼留言