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

狀況

當您啟動 Microsoft SQL Server 的執行個體或還原或附加資料庫時,SQL Server 錯誤記錄檔會記錄 9017 的資訊訊息,類似下列︰

資料庫dbname 引數超過n個虛擬記錄檔也就是過多。長的啟動和備份的時間,可能會造成太多的虛擬記錄檔。請考慮壓縮記錄檔,並使用不同的成長遞增值減少虛擬記錄檔數目。
太多的虛擬記錄檔可能會影響資料庫的修復時間。

此外,如果您使用複寫或資料庫鏡像的技術,在您的環境中,您可能會發現使用這些技術的效能問題。

原因

當您指定檔案成長參數值較小的記錄檔時,就會發生這個問題。

SQL Server 資料庫引擎將每個實體記錄檔在內部會分成數個虛擬記錄檔 (Vlf)。SQL Server 2008 R2 Service Pack 2 和更新版本中引入會在資料庫啟動 (因為 SQL Server 的執行個體的啟動或因為附加或還原的資料庫),並於 SQL Server 2008 R2 中有 1000 個以上的 Vlf,或是有 10000 個以上的 VLF,在 SQL Server 2012年時所記錄的新訊息 (9017)。

注意在 SQL Server 2012,雖然已記錄此訊息,當資料庫有 10000 的 Vlf,正確報告錯誤記錄檔中的實際訊息指出 「"1000 VLF。基本上,這項警告會在 10000 Vlf 之後發生。然而,訊息會報告 1000 Vlf。將在未來版本修正這個問題。

如需有關如何 Vlf 的數目增加了可能會導致在複寫或資料庫鏡像組態中的效能問題的詳細資訊,請參閱 < 其他資訊=""> 一節。

解決方案

若要解決這個問題,請依照下列步驟執行:

  1. 藉由使用1或是利用 SQL Server Management Studio,請減少您的交易記錄檔。

  2. 增加較大的值,以避免經常自動成長的交易記錄檔大小。如需詳細資訊,請參閱 SQL Server 線上叢書 》 的網站上的下列主題︰

    http://msdn.microsoft.com/en-us/library/ms365418.aspx#AddOrEnlarge

  3. 增加檔案成長參數,以較大的值比目前的設定。這應該根據您的資料庫和記錄檔成長的頻率的活動。


此外,我們建議您考慮安裝了下列修正程式,視您目前正在執行的 SQL Server 的版本而定︰

花費很長的時間,若要還原資料庫,以在 SQL Server 2008 R2、 SQL Server 2008 中或 SQL Server 2012年修正︰

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

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

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


更多的資訊

如何檢查資料庫中的 VLF 線段數目

您可以尋找資料庫的最早和最新記錄序號 (LSNs) 的交易記錄檔備份之間的差異,在資料庫中找到 VLF 的線段數目。

您可以找到的交易記錄檔備份的 LSN 藉由檢查您的 SQL Server 錯誤記錄檔,類似下列的訊息︰

{記錄檔進行備份。資料庫︰ mydbname、 creation_date_(time)︰日期時間),第一個的 LSN: 1: 5068:70,最後的 LSN: 1: 5108:1、 傾印裝置數目︰ 1,裝置資訊: (檔案 = 1,型別 = 磁碟: '{C:\folder\logbackup1.trn'})。這是參考用訊息。使用者不不需要任何動作。


注意在這個訊息中,交易記錄檔的 LSN 為1。(它是在第一個冒號前的第一個號碼"LSN: 1:5068:70。")

若要執行這項操作,請參考下列步驟:

  1. 您的 SQL 錯誤記錄檔中尋找最早的交易記錄檔備份,資料庫的 LSN (比方說,LSN: 1:5108:1)。

  2. 尋找最新的 LSN SQL 錯誤記錄檔中的交易記錄檔備份 (例如,LSN:10,235: 5108: 1)。

  3. VLF 的線段數目是最新的 LSN 」 和 「 最早的 LSN 之間的差異 (在本例中,它是 10,235-1 = 10,234)。


Vlf 大量複寫的效果

太多的記錄檔可能會影響複寫,因為記錄讀取器處理序必須掃描每個虛擬記錄檔中的標記為複寫的交易。您可以追蹤sp_replcmds預存程序的效能,以查看這個問題。「 記錄讀取器處理sp_replcmds預存程序來掃描的虛擬記錄檔,並讀取標記為複寫的交易的使用。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

949523的交易式複寫延遲時,很高,SQL Server 2005 中 「 初始大小 」 屬性的值,並自動成長屬性的值小

資料庫鏡像 Vlf 大量的效果

太多的記錄檔也會影響資料庫鏡像。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2455009修正︰ 效能降低時如果有許多在 SQL Server 2005、 SQL Server 2008 中或 SQL Server 2008 R2 的交易記錄檔內的 Vlf,復原資料庫

參考

如需詳細資訊,請參閱 Microsoft 開發人員網路 (MSDN) 網站上的下列主題︰

壓縮交易記錄檔

可以延遲的記錄檔截斷的因素

交易記錄檔截斷

交易記錄檔邏輯架構

交易記錄檔實體架構


Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

×