發表于:2011-05-19 00:00:00來(lái)源:人(rén)氣:2920
日(rì)志文件(jiàn)滿而造成SQL數據庫無法寫入文件(jiàn)時,可(kě)用兩種方法:
第一種方法:清空日(rì)志。
1、打開查詢分(fēn)析器,輸入命令
DUMP TRANSACTION 數據庫名 WITH NO_LOG
2、再打開企業管理(lǐ)器--右鍵你(nǐ)要壓縮的數據庫--所有任務--收縮數據庫--收縮文件(jiàn)--選擇日(rì)志文件(jiàn)--在收縮方式裡(lǐ)選擇收縮至XXM,這裡(lǐ)會給出一個允許收縮到的最小M數,直接輸入這個數,确定就(jiù)可(kě)以了。
第二種方法有一定的風(fēng)險性,因爲SQL Server的日(rì)志文件(jiàn)不是即時寫入數據庫主文件(jiàn)的,如(rú)處理(lǐ)不當,會造成數據的損失。
1:删除LOG
分(fēn)離(lí)數據庫 企業管理(lǐ)器->服務器->數據庫->右鍵->分(fēn)離(lí)數據庫
2:删除LOG文件(jiàn)
附加數據庫 企業管理(lǐ)器->服務器->數據庫->右鍵->附加數據庫
此法生(shēng)成新的LOG,大(dà)小隻有500多KB。
注意:建議(yì)使用第一種方法。
如(rú)果以後,不想要它變大(dà)。
SQL2000下使用:
在數據庫上點右鍵->屬性->選項->故障恢複-模型-選擇-簡單模型。
或用SQL語句:
alter database 數據庫名 set recovery simple
另外,Truncate log on checkpoint(此選項用于SQL7.0,SQL 2000中即故障恢複模型選擇爲簡單模型)當執行CHECKPOINT 命令時如(rú)果事(shì)務日(rì)志文件(jiàn)超過其大(dà)小的70% 則将其内容清除在開發數據庫時時常将此選項設置爲True Auto shrink定期對數據庫進行檢查當數據庫文件(jiàn)或日(rì)志文件(jiàn)的未用空間超過其大(dà)小的25%時,系統将會自(zì)動縮減文件(jiàn)使其未用空間等于25% 當文件(jiàn)大(dà)小沒有超過其建立時的初始大(dà)小時不會縮減文件(jiàn)縮減後的文件(jiàn)也必須大(dà)于或等于其初始大(dà)小對事(shì)務日(rì)志文件(jiàn)的縮減隻有在對其作(zuò)備份時或将Truncate log on checkpoint 選項設爲True 時才能進行。
注意:一般立成建立的數據庫默認屬性已設好,但(dàn)碰到意外情況使數據庫屬性被更改,請(qǐng)用戶清空日(rì)志後,檢查數據庫的以上屬性,以防事(shì)務日(rì)志再次充滿。
還(hái)有,想生(shēng)成最小量日(rì)志,将恢複模式設置爲簡單模式就(jiù)好了。