sql server數據庫使用時間長了日志文件會很大占用過多系統資源數據庫可能會報 log full 的錯誤甚至磁盤空間占滿讓數據庫處於不可用狀態這個時候我們需要清理數據庫以前有人開發了數據庫日志清理工具好像還要收費其實很簡單就可以完成這個操作請跟我來
清理sql server數據庫日志可用兩種方法
方法一清空日志
打開查詢分析器輸入命令DUMP TRANSACTION 數據庫名 WITH NO_LOG
再打開企業管理器右鍵你要壓縮的數據庫所有任務收縮數據庫收縮文件選擇日志文件在收縮方式裡選擇收縮至: 這裡會給出一個允許收縮到的最小M數直接輸入這個數確定就可以了
方法二有一定的風險性因為SQL SERVER的日志文件不是即時寫入數據庫主文件的如處理不當會造成數據的損失
刪除LOG
分離數據庫 企業管理器->服務器->數據庫->右鍵->分離數據庫
刪除LOG文件
附加數據庫 企業管理器->服務器->數據庫->右鍵->附加數據庫
此法生成新的LOG大小只有多K
注意建議使用第一種方法
如果以後不想要它變大
SQL下使用
在數據庫上點右鍵>屬性>選項>故障恢復模型選擇簡單模型
或用SQL語句alter database 數據庫名 set recovery simple
另外數據庫屬性有兩個選項與事務日志的增長有關
Truncate log on checkpoint
(此選項用於SQLSQL 中即故障恢復模型選擇為簡單模型)
當執行CHECKPOINT 命令時如果事務日志文件超過其大小的% 則將其內容清除在開發數據庫時時常將此選項設置為True
定期對數據庫進行檢查當數據庫文件或日志文件的未用空間超過其大小的%時系統將會自動縮減文件使其未用空間等於% 當文件大小沒有超過其建立時的初始大小時不會縮減文件縮減後的文件也必須大於或等於其初始大小對事務日志文件的縮減只有在對其作備份時或將Truncate log on checkpoint 選項設為True 時才能進行
注意一般立成建立的數據庫默認屬性已設好但碰到意外情況使數據庫屬性被更改請用戶清空日志後檢查數據庫的以上屬性以防事務日志再次充滿
From:http://tw.wingwit.com/Article/program/Oracle/201311/16695.html