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