2009-11-12 86 views
0

我有一個數據庫,其TLOG已發展到4.5 GB。 的DB是完全恢復模式,我曾嘗試加上 DBCC SHRINKFILE幾個事務日誌備份。 它不會縮小。 有沒有人有任何想法?無法收縮事務日誌,無論我做什麼

存在具有狀態= 2的幾個交易,但在數據庫中沒有活動的事務。我想知道他們爲什麼仍然顯示status = 2。

+2

jeeeeeeeeeeeeeeeee! – JohnIdol 2009-11-12 00:47:12

+1

我爲大日誌轉儲道歉。 – sharadov 2009-11-12 00:55:24

+0

請刪除轉儲,因爲我無法編輯您的帖子。 – Middletone 2009-11-12 06:36:11

回答

0

我們有一個工作與另一個鏈接服務器寫入數據庫。 這是做了一些巨大的刪除。 我們對該作業進行了優化,並能夠將日誌文件成功縮減至100MB。

謝謝!

1

如果你沒有在事務日誌中的內容真正感興趣,運行命令

BACKUP LOG dbname WITH NO_LOG 

,然後再運行DBCC SHRINKFILE

編輯:沒有意識到2008年已經刪除了這些 - 我們只是切換到它。在2008年,您必須暫時將恢復模型設置爲簡單模式,然後運行DBCC SHRINKFILE,然後再次將恢復模型恢復爲「完全」。 代碼在這裏:

http://www.uhleeka.com/blog/2009/08/sql-2008-shrink-log-file-size-with-no_lo/

+0

在SQL Server 2008中刪除了NO_LOG和WITH TRUNCATE_ONLY兩個命令。 – sharadov 2009-11-12 00:52:23

+0

已更新爲其他解決方案。 – MartW 2009-11-12 02:05:11

+0

我試過了,沒有幫助。 事實上,當數據由於數據導入而變得非常大時,數據庫變得非常簡單。 因此,我切換到完整狀態,執行了完整和tlog的備份,然後運行了dbcc shrinkfile,這一切都沒有幫助。 – sharadov 2009-11-12 02:20:34

1

你最有可能有下列之一:

  • 未提交的事務
  • 孤立的交易
  • 一個長期運行的操作(如索引碎片整理/重建,如果您使用的複製創建索引,CHECKDB,長時間運行的查詢等)
  • ,無重複transa ctions

還有一些其他的可能性還有,但是this kb article概括大多數/所有可能的原因,以及如何確定是否/何處/它們是什麼,以及來自this kb articlethis kb article一些額外良好的信息(這最後一個有點過時,但大多仍然適用)。

2
  • 使用DBCC OPENTRAN拿開交易
  • 多大MDF?如果是5GB或以上,我會離開的日誌文件
  • 也許日誌文件需要他的大
  • 如果它生長,它就將再次碎裂
  • 看一看Paul Randall的網站。他寫了很多的t日誌代碼...

最後,我會考慮安裝/拆卸如果你真的卡住刪除日誌文件。然而,這僅僅是當你絕望......

+1

注意:分離數據庫,刪除日誌文件,然後嘗試僅附加MDF並重建日誌可能會使數據庫處於不一致甚至損壞的狀態。 – 2009-11-12 14:23:40

+0

@Aaron:我知道,但OP似乎堅定不移... – gbn 2009-11-12 15:49:26

1

如果SQL,則需要對數據庫進行完全備份,然後備份事務日誌,然後收縮數據庫。出於某種原因,它希望在截斷日誌之前擁有完整備份。您可能能夠脫離差異,但看看第一部分是否有效。

+0

不要在UI中使用DBCC SHRINKDATABASE或縮小數據庫選項。如果您需要縮小單個文件,則顯式使用DBCC SHRINKFILE會更好。請參閱Tibor的網站:http://www.karaszi.com/SQLServer/info_dont_shrink.asp另請參閱此處的鏈接和討論:http://is.gd/4TnHZ – 2009-11-12 14:23:06

相關問題