2011-09-07 97 views
1

我有一個SQL Server 2008 Express數據庫是7.8 GB的大小SQL Server數據庫大小縮減查詢

數據文件1.2 GB
日誌文件6.6 GB

恢復模式=全
自動收縮=假

在Live數據庫上,減少此數據庫大小的最佳方法是什麼?

+1

閱讀[恢復模型概述](http://msdn.microsoft.com/en-us/library/ms189275.aspx),這應該有助於您理解數據庫爲何如此龐大。除非您的磁盤空間不足,否則我會適當地處理日誌(定期tlog備份或更改恢復模式),但不要縮小它,除非它符合某些[標準](http://www.sqlskills.com/blogs/paul /post/Why-you-should-not-shrink-your-data-files.aspx) – billinkc

+0

在Live數據庫上,我可以將恢復模式從FULL更改爲Simple。我可以設置每天備份數據庫的備份作業嗎?從FULL切換到Simple時,日誌文件會發生什麼變化? – Refti

+1

是的,你可以。語法是'ALTER DATABASE [MY_DATABASE] SET RECOVERY SIMPLE WITH NO_WAIT',您可以使用Windows任務計劃程序在任何時間表上創建完整備份,這對您的應用程序有意義。數據庫備份代碼'BACKUP DATABASE [MY_DATABASE] TO DISK = N'C:\ mydatabase.bak'WITH NOFORMAT,NOINIT,NAME = N'My Database backup',SKIP,NOREWIND,NOUNLOAD,STATS = 10' **但是,不要在生產中不要嘗試這些,** _yet_。備份是好的,它不會傷害你。在更改任何與生產有關的內容之前,先在開發/測試環境中嘗試它們並評估結果。 – billinkc

回答

1

在您可以收縮以完整恢復模式運行的數據庫之前,您必須備份事務日誌。因此,該過程是運行事務日誌備份,然後收縮日誌文件。

如果您從未執行過事務日誌備份,那麼您將繼續遭受失控日誌文件的影響,並且縮小它只會是一個創可貼解決方案。

+0

Steven,我如何做一個事務日誌備份?另外我還有一個10 GB的限制,我很快就會用完。所以我可能不需要7.8 GB的事務日誌。順便說一句,有很大的日誌文件是正常的。它會影響性能嗎? – Refti

+0

在Sql Management Studio用戶界面中,右鍵單擊您的數據庫,選擇任務 - >備份。將備份類型設置爲「事務日誌」。 關於如果它的正常有一個大的日誌,這最終取決於數據庫,但在你的情況下,它肯定是由於失控的事務日誌,所以沒有它不正常 – Steven

1
  • 還可以識別未使用的表,並刪除這些表(如果有)
  • 您可以創建將存儲一些老的不再使用的數據
  • 存檔數據庫可以規範化的數據庫更以減少表的大小。

希望這些信息對您有所幫助。