資料庫作業花很長的時間才能完成此項目,或當交易記錄檔中有許多虛擬記錄檔,它們會觸發錯誤

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2028436
徵狀
在 SQL Server 2008年的環境中,您可能會遇到下列徵狀:
  • 一或多個資料庫需要很長的時間才能完成修復,SQL Server 啟動時。
  • 當您執行還原的資料庫時,花了很長的時間才完成。
  • 嘗試附加資料庫需要很長的時間才能完成。
  • 當您嘗試設定資料庫鏡像時,您會看到錯誤訊息 1413年、 1443年和 1479,表示逾時。
  • 當您嘗試還原資料庫時,您會遇到與記憶體相關的錯誤,像是 701。

當您檢查 SQL Server 錯誤記錄檔時,您會發現,資料庫復原程序的分析階段之前花費大量時間。
2010-05-08 14:42:38.65 spid22s 啟動資料庫 'lot_of_vlfs'。
2010-05-08 14:46:04.76 spid22s 分析資料庫 'lot_of_vlfs' (16) 能 %完成的 0 (大約 0 秒保留)。階段 3 之 1。這是參考用訊息。使用者不不需要任何動作。

發生的原因
在資料庫復原程序的初始階段,SQL Server 會執行的所有虛擬記錄檔存在於所有交易記錄檔中的探索。建立一份所有的虛擬記錄檔。這個程序可能需要很長的時間,視出現在特定資料庫中的虛擬記錄檔數目而定。資料庫可能最後都會大量的虛擬記錄檔如果交易記錄檔遇到經常自動成長發生非常小的大小增加成長。

通常您會啟動遇到 < 徵狀 > 一節所述幾個 1000 的範圍內的虛擬記錄檔數目時的問題。
解決方案
您可以使用下列的部落格,這些方法來尋找特定的資料庫中的虛擬記錄檔數目:
記錄檔的檔案結構如何影響資料庫的復原時間

您可能必須將保持在合理的數字,例如 10000 虛擬記錄檔的總數。

您可以重新設定交易記錄檔,包含只有有限的數量的虛擬記錄檔,使用下列方法:
  1. 壓縮交易記錄檔、 檔案成長所需的大小以手動方式使用 TSQL ALTER DATABASE<database name="">修改的檔案 (名稱 = '邏輯檔案名稱的交易記錄檔',大小 = <required size="">)</required> </database>
  2. 重建交易記錄檔,然後手動交易記錄檔成長所需的大小:
    1. 如果資料庫先前在關機可以清楚地 (不含使用者或開啟的交易),您可以使用建立資料庫的 FOR ATTACH_REBUILD_LOG 選項,建立新的交易記錄檔。
    2. 如果讀取/寫入資料庫會自動擁有單一記錄檔位於目前無法使用,並下關閉資料庫,如果清除 [不含使用者或開啟的交易] 附加作業,如附加選擇建立資料庫之前重建記錄檔,並且更新主要的檔案。

如果要在重新設定交易記錄檔的版面配置之後,檢閱並進行必要的變更,以自動成長設定交易記錄檔,以避免在未來遇到相同的問題。

注意在執行任何一項作業之前,請確定您有有效的可還原備份,以防您稍後會遇到一些問題。

2524743 修正: 復原所需的時間比預期的 SQL Server 2008年中,或在 SQL Server 2008 R2 環境中的資料庫

2455009 修正: 效能變慢時如果有許多的 Vlf,SQL Server 2005 中,SQL Server 2008年或 SQL Server 2008 R2 的交易記錄檔內,復原資料庫

2653893 花費很長的時間,若要還原資料庫,以在 SQL Server 2008 R2 修正:

979042 修正: 主體資料庫不能找回星辰如果 SQL Server 2005 中,或在 SQL Server 2008年中,資料庫會有大量的虛擬記錄檔

2882905 當您啟動 SQL Server 的執行個體或還原或附加資料庫時,會記錄 9017 的告知性訊息

其他相關資訊
如需虛擬記錄檔的完整資訊,請參閱下列線上叢書 》 主題: 交易記錄檔實體架構

如需有關這個問題的詳細資訊,請參閱下列各項:

記錄檔的檔案結構如何影響資料庫的復原時間
交易記錄檔 Vlf-太多或太少?
1413 啟動資料庫鏡像 – 多少虛擬記錄檔時的錯誤是太多?

同時也必須知道已知的問題也不斷提高交易記錄檔:

2633151 SQL Server 資料庫交易記錄檔無法成長已設定之檔案的成長值

注意深入了解重要的變更,在 SQL Server 2014 VLF 建立演算法:


如需有關產品或自動檢查這個條件,SQL Server 產品的版本和您的 SQL Server 的執行個體上的工具的詳細資訊,請參閱下表:

規則軟體規則標題規則描述針對規則進行評估的產品版本
SQL Server 2008 R2 最佳練習分析器 (SQL Server 2008 R2 BPA)




有大量的 VLF 存在於資料庫





「 SQL Server 2008 R2 最佳練習分析器 」 (SQL Server 2008 R2 BPA) 可提供某規則會偵測的情況下,資料庫包含大量的虛擬記錄檔的位置。SQL Server 2008 R2 BPA 支援 SQL Server 2008年和 SQL Server 2008 R2。

如果您執行 BPA 工具,並發生錯誤的資料庫引擎-VLF 存在於,大量的資料庫標題與您需要確認受影響的資料庫的虛擬記錄檔數目,並重新設定交易記錄檔。
SQL Server 2008
SQL Server 2008 R2






SQL Server 2012年最佳練習分析器 (SQL Server 2012 BPA)



有大量的 VLF 存在於資料庫




SQL Server 2012年最佳練習分析器 (SQL Server 2012 BPA)] 提供規則,以偵測的情況下,資料庫包含大量的虛擬記錄檔的位置。

如果您執行 BPA 工具,並發生錯誤的資料庫引擎-VLF 存在於,大量的資料庫標題與您需要確認受影響的資料庫的虛擬記錄檔數目,並重新設定交易記錄檔。
SQL Server 2012








警告:本文為自動翻譯

內容

文章識別碼:2028436 - 最後檢閱時間:08/07/2015 03:47:00 - 修訂: 5.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbmt KB2028436 KbMtzh
意見反應