2009-01-17 72 views
4

我正在尋找一些SQL Server日誌文件的清晰度。我有一個很大的數據庫(2GB),最近因爲任何原因沒有備份。數據庫的日誌文件增長到11GB左右,據我瞭解,這是數據庫中發生的所有事務和聲明。SQL Server日誌文件混淆

我的問題:

是什麼導致數據庫日誌文件被刷新? 「沖水」究竟意味着什麼? 在大型日誌文件上執行文件縮小或數據庫收縮會有什麼後果?

回答

9

備份事務日誌後,這些事務將從日誌中截斷,但操作使用的空間不會自動恢復。如果您正在進行常規的事務日誌備份,這可能是件好事。假設這個空間用於交易,並且將來需要再次使用。不斷縮小事務日誌可能會降低性能,因爲在再次需要時,數據庫將需要擴展日誌。

因此,要解決您的問題,請先執行完整備份和事務日誌備份。您不需要轉到簡單模式或單用戶模式。然後縮小數據庫並每隔幾個小時設置一次事務日誌備份。在我的服務器上,我每10分鐘就做一次,但這完全取決於用戶對其環境的需求頻率。監視日誌大小如何變化,確保留出足夠的空間,以便它不必定期擴展,再加上一些額外的樂趣。

收縮數據庫時使用DBCC SHRINKFILE而不是DBCC SHRINKDATABASE,因爲後者會縮小整個數據庫,而不僅僅是日誌文件。你也沒有太多的控制空間被恢復的空間。

3

備份通常會清除事務日誌。事務日誌保留自上次備份以來的所有更改。根據備份數據庫的方式,您可能根本不需要保留完整的事務日誌。如果您使用MS SQL2000/MS SQL2005將恢復模式設置爲簡單會取消事務日誌。

一旦確定擁有數據庫的乾淨副本(沒有丟失風險),刪除事務日誌是安全的。有一些SQL命令可以這樣做,但我通常會將恢復模式更改爲簡單然後縮小數據庫,然後將恢復模式設置回完整(如有必要)。

如果您需要更多信息,請包括您正在使用的SQL版本以及執行備份的方式,我會看看是否可以詳細說明您的特定設置。

2

實際上,我不認爲備份數據庫會縮小日誌,備份事務日誌本身會縮小它。 SQL Server區分了兩者。

通常,我將使所有數據庫「簡單」恢復,或使備份交易日誌成爲我定期維護計劃的一部分(通常每週一次)。