2011年10月20日 星期四

SQL Server 交易日誌清除

情境1.因為壓力測試的關係,交易紀錄長到接近2TB ,系統效能受到影響,資料備份也受到嚴重影響。

情境2.使用資料庫複寫進行資料備份,導致產生大量交易日誌。

SQL Server 2008 :
方法一
1.將資料庫還原模式切換至簡單模式  (簡單模式不會記錄交易紀錄,所以交易紀錄會被截斷)
2.執行資料庫壓縮
3.將資料庫還原模式切換至完整模式(恢復正常交易紀錄)

方法二
1.將資料庫還原模式切換至簡單模式
2.在要清除交易日誌的資料庫上新增查詢

select * from sys.database_files
查出NAME後
3.改下DBCC命令

DBCC SHRINKFILE ( 帶入剛剛查到的NAME , 2)


以往我們都只有做完整備份,而完整備份會將資料庫以及交易日誌進行完整備份,
但是不會進行交易日誌截斷,所以會有越備份越大的問題。

而做了完整備份卻沒有做交易紀錄備份跟資料庫壓縮,自然交易紀錄不會被截斷,當然會越長越大。

所以標準做法應該是在維護計畫中,做完完整備份後,再做一次交易紀錄備份,
把交易紀錄截斷,然後再接著執行資料庫壓縮,就不會發生爆資料庫的問題了。



未完待續..

沒有留言: