SQL Server 日志文件過大預(yù)防及解決方法
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
事務(wù)日志文件(Transaction Log File)是用來記錄數(shù)據(jù)庫更新情況的文件,擴(kuò)展名為LDF。 在 SQL Server 2000 中,如果設(shè)置了自動(dòng)增長功能,事務(wù)日志文件將會(huì)自動(dòng)擴(kuò)展。一般情況下,在能夠容納兩次事務(wù)日志截?cái)嘀g發(fā)生的最大數(shù)量的事務(wù)時(shí),事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截?cái)嘤蓹z查點(diǎn)或者事務(wù)日志備份觸發(fā)。然而,在某些情況下,事務(wù)日志可能會(huì)變得非常大,以致用盡空間或變滿。通常,在事務(wù)日志文件占盡可用磁盤空間且不能再擴(kuò)展時(shí),您將收到如下錯(cuò)誤消息: 引用內(nèi)容
Error:9002, Severity:17, State:2 The log file for database ’%.*ls’ is full. 除了出現(xiàn)此錯(cuò)誤消息之外,SQL Server 還可能因?yàn)槿鄙偈聞?wù)日志擴(kuò)展空間而將數(shù)據(jù)庫標(biāo)記為 SUSPECT。有關(guān)如何從此情形中恢復(fù)的其他信息,請參見 SQL Server 聯(lián)機(jī)幫助中的“磁盤空間不足”主題。 另外,事務(wù)日志擴(kuò)展可能導(dǎo)致下列情形: ·非常大的事務(wù)日志文件。 ·事務(wù)可能會(huì)失敗并可能開始回滾。 ·事務(wù)可能會(huì)用很長時(shí)間才能完成。 ·可能發(fā)生性能問題。 ·可能發(fā)生阻塞現(xiàn)象。 原因 事務(wù)日志擴(kuò)展可能由于以下原因或情形而發(fā)生: ·未提交的事務(wù) ·非常大的事務(wù) ·操作:DBCC DBREINDEX 和 Create INDEX ·在從事務(wù)日志備份還原時(shí) ·客戶端應(yīng)用程序不處理所有結(jié)果 ·查詢在事務(wù)日志完成擴(kuò)展之前超時(shí),您收到假的“Log Full”錯(cuò)誤消息 ·未復(fù)制的事務(wù) 解決方法 方法一:清空日志 1) 打開查詢分析器,輸入命令 BACKUP LOG 數(shù)據(jù)庫名 WITH NO_LOG(或者DUMP TRANSACTION 數(shù)據(jù)庫名 WITH NO_LOG ) 2) 再打開企業(yè)管理器→右鍵你要壓縮的數(shù)據(jù)庫→所有任務(wù)→收縮數(shù)據(jù)庫→收縮文件→選擇日志文件→在收縮操作里選擇收縮文件至M,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。 方法二:生成新的日志文件 1) 分離數(shù)據(jù)庫 2) 重命名/刪除LOG文件 3) 附加數(shù)據(jù)庫(重新生成日志文件) 此法生成新的LOG,大小只有500多K。這種方法有一定的風(fēng)險(xiǎn)性,因?yàn)镾QL SERVER的日志文件不是即時(shí)寫入數(shù)據(jù)庫主文件的,如處理不當(dāng),會(huì)造成數(shù)據(jù)的損失,建議使用第一種方法。 如果以后不想要它變大,SQL Server 2000下使用: 在數(shù)據(jù)庫上點(diǎn)右鍵→屬性→選項(xiàng)→故障恢復(fù)→簡單模型 或用SQL語句: alter database 數(shù)據(jù)庫名 set recovery simple 該文章在 2011/3/14 15:26:00 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |