因此,我們的SQL Server 2000給我的錯誤是「數據庫的日誌文件已滿,爲數據庫備份事務日誌以釋放一些日誌空間」。數據庫的日誌文件已滿
如何解決這個問題而不刪除日誌,就像其他網站提到的一樣?
附加信息:啓用AutoGrowth已啓用,增長10%,限制爲40MB。
因此,我們的SQL Server 2000給我的錯誤是「數據庫的日誌文件已滿,爲數據庫備份事務日誌以釋放一些日誌空間」。數據庫的日誌文件已滿
如何解決這個問題而不刪除日誌,就像其他網站提到的一樣?
附加信息:啓用AutoGrowth已啓用,增長10%,限制爲40MB。
斯科特,你猜到了:截斷日誌是一個糟糕的舉動,如果你關心你的數據。
下,免費,視頻將幫助你看看究竟是怎麼回事,並會告訴你如何解決問題,而不截斷日誌。 (這些視頻也解釋了爲什麼是這樣一個危險的黑客,爲什麼你是對的,尋找另一種解決方案。)
連同這些影片將幫助你瞭解到底發生了什麼,並會告訴你是否要切換到SIMPLE恢復,或者看看是否真的改變了你的備份例程。還有一些額外的'how-to'視頻,將向您顯示如何設置備份以確保可用性,同時管理日誌文件的大小和增長。
重命名它。例如:
old-log-16-09-08.log
然後SQL服務器可以使用一個新的空的。
那麼你可以採取事務日誌的副本,然後截斷日誌文件,該文件是錯誤消息表明什麼。
如果磁盤空間已滿並且無法通過網絡將日誌複製到另一臺計算機,則通過USB連接驅動器並將其從該路複製。
我不認爲重命名或移動日誌文件將工作,而數據庫聯機。
IMO最簡單的做法是打開數據庫的屬性並將其切換到簡單恢復模式。然後縮小數據庫,然後返回並將數據庫設置爲完全重組模型(或任何您需要的模型)。
更改日誌記錄模式強制SQL Server在數據庫中設置檢查點,之後收縮數據庫將釋放多餘的空間。
你有問題的答案:備份日誌,然後它會收縮。 制定維護計劃定期備份數據庫,不要忘記選擇「備份事務日誌」。這樣你會保持小。
要剛剛清空:
backup log <dbname> with truncate_only
要保存在某個地方吧:
backup log <dbname> to disk='c:\somefile.bak'
如果你並不真正需要的交易歷史,嘗試數據庫恢復模式設置爲簡單。
SQL 2008中停止日誌備份的TRUNCATE_ONLY選項。 – Sean 2010-04-19 20:51:53
如果它是一個非生產環境中使用
dump tran <db_name> with no_log;
一旦已經完成收縮日誌文件來釋放磁盤空間。最後將數據庫恢復模式切換爲簡單。
這是現在不推薦使用的舊語法。 BACKUP LOG是首選方法。 – 2008-09-16 15:13:06
我誰在過去面對這個錯誤的朋友建議:
嘗試
原因: 事務日誌膨脹起來,由於被記錄的事件(也許你有一些交易失敗和被回滾..或在交易中突然峯值在服務器上)
只要你把數據庫的完整備份,數據庫未使用簡單恢復模式下,SQL Server保留有史以來在數據庫上執行的所有事務的完整記錄。它這樣做是爲了在發生數據文件丟失的災難性故障時,可以通過備份日誌來恢復到故障點,並且一旦恢復舊數據備份,恢復日誌以重放丟失交易。
爲防止這種情況發生,您必須備份事務日誌。或者,您可以使用BACKUP LOG的TRUNCATE_ONLY或NO_LOG選項在當前點斷開鏈。
如果您不需要此功能,請將恢復模式設置爲簡單。
醚備份數據庫日誌定期,如果你需要恢復到分鐘或做其他有趣的東西就像日誌傳送的未來,或將數據庫設置爲簡單模式和收縮的數據文件。
不要複製,重命名或刪除.ldf文件,否則會破壞你的數據庫,你從此一蹶不振後,你可能有數據不一致的狀態使之無效。
我親愛的朋友的DBA檢查他的日誌文件中非常常見的是合租重要。因爲如果有一天你不太關注它,它會給出這個錯誤。
爲此,你必須使日誌文件就不會面臨這樣的錯誤,定期進行備份。
其他那麼這個以上給出的建議是非常正確的。
更精確的術語可能是「簡單恢復模型」。 – SeaDrive 2010-02-17 16:02:09