2008年6月11日 星期三

交易紀錄檔 Transaction Log 管理

對於SQL Server不熟悉的管理員或開發人員,在管理SQL Server第一個會遇到的問題就是交易紀錄檔Transaction Log越來越大,甚至於大到磁碟空間不足,造成SQL Server無法啟動。

由於目前的硬碟越來越大也越便宜,所以交易紀錄檔Transaction Log越來越大短期間並不會造成什麼影響,但是久而久之經由自動成長次數越多也更容易造成磁碟的破碎,也可能會造成系統效能上的影響。

其實只要定期執行交易紀錄檔備份Transaction Log Backup,即可輕鬆解決這個問題,因為在執行交易紀錄檔備份完成後系統預設會清空交易紀錄檔,檔案維持原來的大小但內容已經清空了,如此一來後續進行的交易紀錄就可以從檔案的開頭從頭開始使用,而交易紀錄檔就不會繼續成長而會保持一樣的大小。
SQL Server 2005


SQL Server 2000


而多久要進行交易紀錄檔備份,則要視資料庫系統的類型與交易的頻率而定,若是線上交易系統由於有大量的Insert,Update,Delete的作業,造成交易紀錄檔快速成長,
建議每天使用DBCC SQLPERF(LOGSPACE)觀察Log的成長量,即可推算出多久會達到100%使用量,排程在到達100%之前就執行Backup Log的作業,即可清空Log從頭開始使用

另外在效能的建議上建議一次給足交易紀錄檔需要的檔案大小,所以在Create Database時,指定起始大小,以目前市面上的磁碟容量,一次設定到200MB也不算太大,而建議資料檔也要一次開足大小,起始值給到500MB也不算太大

SQL Server 2005


SQL Server 2000


如果交易紀錄檔(Transaction log)已經太大了,請參考這篇

交易記錄檔Transaction log大小的檢查清空與縮小

沒有留言:

SQL Server Database Mirroring 資料庫鏡像

SQL Server Database Mirroring 資料庫鏡像