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