如何縮小MSSQL的日志文件已經是一個經常性的問題了
不過這個問題在精華區已經有不少答案了
我這裡也不再贅述
現在我們討論一下治本的問題
即如何使日志文件不再增大?
先介紹一個簡單的方法
就是把數據庫的故障還原模型設置為
簡單
(SQL
K)
這樣它就會在Checkpoint的時候截斷日志
具體操作方法是
在Enterprise Manager中右鍵點數據庫
屬性|選項|故障還原
選擇
簡單
就可以了
如果是SQL
在
屬性|選項
中有一個
trunc
log on chkpt
選中就可以了
如果不想用Enterprise Manager
在Query Analyser或者isql裡面執行EXEC sp_dboption
your_dbname
trunc
log on chkpt
TRUE
就可以了
但是
要注意的是
這樣做了之後
雖然日志不會增大
但是也意味著你一旦出現誤操作
將不會有利用日志恢復的機會
(如何利用日志來恢復請參見精華區的FAQ)所以
絕對不建議在生產數據庫上截斷日志
除非你有充足的理由和足夠的把握或者……承擔責任的不是你
既然這種方法不安全
下面我將介紹一種安全的方法
大家都知道
SQL Server 在完成事務日志備份時將自動截斷事務日志中的不活動部分
這些不活動的部分包含已完成的事務
因此在恢復過程中不再使用
相反
事務日志的活動部分包含仍在運行但尚未完成的事務
SQL Server 將重新使用事務日志中這些截斷的非活動空間
而不是任由事務日志繼續增大並占用更多的空間
所以
我們備份事務日志就可以使日志文件不再增大了
但是呢
日志文件一直放著也不是個辦法
刪除呢
又會失去恢復的可能性
我們可以結合完全備份來做
做過完全備份之前的事務日志就可以刪除了
比如說
一個備份計劃
每天一次完全備份
保留
天內的
每
分鐘一次事務日志備份
保留
天的
用數據庫維護計劃向導可以很方便的建立備份計劃
不過一定要記得設置保留多久的備份哦
否則硬盤空間被備份給占滿了就壞事了
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22062.html