清理SQL Server數(shù)據(jù)庫日志的兩種方法

2010-08-28 10:53:11來源:西部e網(wǎng)作者:

sql server數(shù)據(jù)庫使用時間長了,日志文件會很大,占用過多系統(tǒng)資源,數(shù)據(jù)庫可能會報 log full 的錯誤,甚至磁盤空間占滿讓數(shù)據(jù)庫處于不可用狀態(tài),這個時候我們需要清理數(shù)據(jù)庫,以前有人開發(fā)了數(shù)據(jù)庫日志清理工具,好像還要收費,其實很簡單就可以完成這個操作,請跟我來:

清理sql server數(shù)據(jù)庫日志可用兩種方法:

方法一:清空日志。

1、打開查詢分析器,輸入命令DUMP TRANSACTION 數(shù)據(jù)庫名 WITH NO_LOG

2、再打開企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫--所有任務(wù)--收縮數(shù)據(jù)庫--收縮文件--選擇日志文件--在收縮方式里選擇收縮至: ,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了。

方法二:有一定的風(fēng)險性,因為SQL SERVER的日志文件不是即時寫入數(shù)據(jù)庫主文件的,如處理不當(dāng),會造成數(shù)據(jù)的損失。

1、刪除LOG

分離數(shù)據(jù)庫 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->分離數(shù)據(jù)庫

2、刪除LOG文件

附加數(shù)據(jù)庫 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->附加數(shù)據(jù)庫

此法生成新的LOG,大小只有500多K。

注意:建議使用第一種方法。

如果以后,不想要它變大。

SQL2000下使用:

在數(shù)據(jù)庫上點右鍵->屬性->選項->故障恢復(fù)-模型-選擇-簡單模型。

或用SQL語句:alter database 數(shù)據(jù)庫名 set recovery simple

另外,數(shù)據(jù)庫屬性有兩個選項,與事務(wù)日志的增長有關(guān):

Truncate log on checkpoint

(此選項用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡單模型)

當(dāng)執(zhí)行CHECKPOINT 命令時如果事務(wù)日志文件超過其大小的70% 則將其內(nèi)容清除在開發(fā)數(shù)據(jù)庫時時常將此選項設(shè)置為True

定期對數(shù)據(jù)庫進(jìn)行檢查當(dāng)數(shù)據(jù)庫文件或日志文件的未用空間超過其大小的25%時,系統(tǒng)將會自動縮減文件使其未用空間等于25% 當(dāng)文件大小沒有超過其建立時的初始大小時不會縮減文件縮減后的文件也必須大于或等于其初始大小對事務(wù)日志文件的縮減只有在對其作備份時或?qū)runcate log on checkpoint 選項設(shè)為True 時才能進(jìn)行。

注意:一般立成建立的數(shù)據(jù)庫默認(rèn)屬性已設(shè)好,但碰到意外情況使數(shù)據(jù)庫屬性被更改,請用戶清空日志后,檢查數(shù)據(jù)庫的以上屬性,以防事務(wù)日志再次充滿。

關(guān)鍵詞:SQLServer

贊助商鏈接: