Ⅰ sql server 2005 清空日誌會怎樣的後果
sql server資料庫使用時間長了,日誌文件會很大,佔用過多系統資源,資料庫可能會報 log full 的錯誤,甚至磁碟空間占滿讓資料庫處於不可用狀態,這個時候我們需要清理資料庫:
清理sql server資料庫日誌可用兩種方法:
方法一:清空日誌。
1、打開查詢分析器,輸入命令DUMP TRANSACTION 資料庫名 WITH NO_LOG
2、再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至: ,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。
方法二:有一定的風險性,因為SQL SERVER的日誌文件不是即時寫入資料庫主文件的,如處理不當,會造成數據的損失。
1、刪除LOG
分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫
2、刪除LOG文件
附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫
此法生成新的LOG,大小隻有500多K。
注意:建議使用第一種方法。
如果以後,不想要它變大。
SQL2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用SQL語句:alter database 資料庫名 set recovery simple
另外,資料庫屬性有兩個選項,與事務日誌的增長有關:
Truncate log on checkpoint
(此選項用於SQL7.0,SQL 2000中即故障恢復模型選擇為簡單模型)
當執行CHECKPOINT 命令時如果事務日誌文件超過其大小的70% 則將其內容清除在開發資料庫時時常將此選項設置為True
定期對資料庫進行檢查當資料庫文件或日誌文件的未用空間超過其大小的25%時,系統將會自動縮減文件使其未用空間等於25% 當文件大小沒有超過其建立時的初始大小時不會縮減文件縮減後的文件也必須大於或等於其初始大小對事務日誌文件的縮減只有在對其作備份時或將Truncate log on checkpoint 選項設為True 時才能進行。
注意:一般立成建立的資料庫默認屬性已設好,但碰到意外情況使資料庫屬性被更改,請用戶清空日誌後,檢查資料庫的以上屬性,以防事務日誌再次充滿。
Ⅱ SQL資料庫 TEMPDB 錯誤問題
1、重起資料庫。
2、把tempdb放到另一硬碟上。方法:
1、用Enterprise Manager或sp_helpdb查看tempdb現在存放的位置
2、用
alter database tempdb modify file(name='tempdev',filename='newpath\newfilename')
alter database tempdb modify file(name='templog',filename='newpath\newfilename')
3、關閉sqlserver重起
4、刪掉舊的tempdb文件