SQL SERVER 日志滿的處理方法
事務(wù)日志文件Transaction Log File是用來記錄數(shù)據(jù)庫更新情況的文件,擴(kuò)展名為ldf。
在 SQL Server 7.0 和 SQL Server 2000 中,如果設(shè)置了自動增長功能,事務(wù)日志文件將會自動擴(kuò)展。
一般情況下,在能夠容納兩次事務(wù)日志截斷之間發(fā)生的最大數(shù)量的事務(wù)時,事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截斷由檢查點或者事務(wù)日志備份觸發(fā)。
然而,在某些情
事務(wù)日志文件Transaction Log File是用來記錄數(shù)據(jù)庫更新情況的文件,擴(kuò)展名為ldf。
在 SQL Server 7.0 和 SQL Server 2000 中,如果設(shè)置了自動增長功能,事務(wù)日志文件將會自動擴(kuò)展。
一般情況下,在能夠容納兩次事務(wù)日志截斷之間發(fā)生的最大數(shù)量的事務(wù)時,事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截斷由檢查點或者事務(wù)日志備份觸發(fā)。
然而,在某些情況下,事務(wù)日志可能會變得非常大,以致用盡空間或變滿。通常,在事務(wù)日志文件占盡可用磁盤空間且不能再擴(kuò)展時,您將收到如下錯誤消息:
Error:9002, Severity:17, State:2
The log file for database ’%.*ls’ is full.
除了出現(xiàn)此錯誤消息之外,SQL Server 還可能因為缺少事務(wù)日志擴(kuò)展空間而將數(shù)據(jù)庫標(biāo)記為 SUSPECT。有關(guān)如何從此情形中恢復(fù)的其他信息,請參見 SQL Server 聯(lián)機(jī)幫助中的“磁盤空間不足”主題。
另外,事務(wù)日志擴(kuò)展可能導(dǎo)致下列情形:
· 非常大的事務(wù)日志文件。
· 事務(wù)可能會失敗并可能開始回滾。
· 事務(wù)可能會用很長時間才能完成。
· 可能發(fā)生性能問題。
· 可能發(fā)生阻塞現(xiàn)象。
原因
事務(wù)日志擴(kuò)展可能由于以下原因或情形而發(fā)生:
· 未提交的事務(wù)
· 非常大的事務(wù)
· 操作:DBCC DBREINDEX 和 CREATE INDEX
· 在從事務(wù)日志備份還原時
· 客戶端應(yīng)用程序不處理所有結(jié)果
· 查詢在事務(wù)日志完成擴(kuò)展之前超時,您收到假的“Log Full”錯誤消息
· 未復(fù)制的事務(wù)
解決方法
日志文件滿而造成SQL數(shù)據(jù)庫無法寫入文件時,可用兩種方法:
一種方法:清空日志。
1.打開查詢分析器,輸入命令
DUMP TRANSACTION 數(shù)據(jù)庫名 WITH NO_LOG
2.再打開企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫--所有任務(wù)--收縮數(shù)據(jù)庫--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小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
Auto shrink
定期對數(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)鍵字:SQL SERVER、日志、數(shù)據(jù)庫
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解