2010/12/08

SQL SERVER 刪除交易檔

上次那一篇只能針對 SQL SERVER 2005
SQL SERVER 2008 R2 就不行用了

這次更新的文章適用 2008 R2

狀況:
sql server 2008 所產生的交易記錄檔,佔用容量甚多

\\ikserp\d$\mssql\data\GTN_dat.mdf
\\ikserp\d$\mssql\data\GTN_IDX.ndf
\\ikserp\d$\mssql\data\GTN_log.ldf

gtn_dat 資料庫容量僅 458M
gtn_log 交易檔的容量卻可以輕易長到 5g

若沒有定時清理交易檔,磁碟空間會被交易檔用完

方法:
參考
http://experiencing-sql-server-2008.blogspot.com/2008/02/sql-server-2008-truncating-transaction.html

修改如下:
(a) select name,recovery_model_desc from sys.databases
(b) Alter database GTN SET Recovery simple
(c) select name,size from sys.database_files
(d) DBCC SHRINKFILE (N'GT_log' , 1)
*** 這裡有個吊詭的地方:雖然我資料庫是叫做 GTN ,但是在還原資料庫後,沒特別去變更的話,LOG 仍然是指向 GT_log ...
(e) Alter database GTN SET Recovery bulk_logged

測試結果:
gtn_log.ldf   5g->24m

沒有留言: