徵狀
在 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 環境中,資料庫復原可能需要花很長的時間在階段1(分析階段)。 這個問題通常會在 SQL Server 關閉前,最後一個完整檢查點的開始和結束時間之間發生許多交易時發生。 例如,可能會發生數百萬的交易。發生這個問題時,會在 SQL Server 錯誤記錄中記錄類似以下所示的錯誤訊息:
資料庫 'mydatabase' 的復原(5)是已完成0% (大約1234秒剩餘)。 第1階段(共3個)。 這只是一則資訊訊息。 不需要使用者動作。
如果有一個或多個長時間執行的事務正在回滾,或如果您的事務日誌中有太多虛擬記錄檔案(VLFs),也可能會發生較長的還原問題。 如需復原資料庫時效能變慢的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2455009 修正:如果在 SQL server 2005、SQL Server 2008 或 SQL Server 2008 R2 中的事務日誌中有許多 VLFs,當您復原資料庫時效能變慢
原因
發生這個問題是因為雜湊表沒有足夠的雜湊桶產生。 因此,您需要花很長的時間來搜尋雜湊鏈。
解決方案
若要解決此問題,請套用此熱修復程式。
累積更新資訊
SQL Server 2008 Service Pack 3
此問題的修正程式會在 SQL Server 2008 Service Pack 3 的累積更新1中首次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2617146 SQL Server 2008 的累積更新套件 1 Service Pack 3注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2629969 在發行 SQL Server 2008 Service Pack 3 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 3 修復程式套用至 SQL Server 2008 Service Pack 3 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
SQL Server 2008 R2
此問題的修正程式是在累積更新9中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2567713 SQL Server 2008 R2 的累積更新套件9 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 R2 Service Pack 1
此問題的修正程式是在 SQL Server 2008 R2 Service Pack 1 的累積更新2中第一次發行。如需如何取得此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2567714 SQL Server 2008 R2 Service Pack 1 的累積更新套件2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2567616 在發行 SQL Server 2008 R2 Service Pack 1 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 Service Pack 2
此問題的修正程式在 SQL Server 2008 Service Pack 2 的累積更新5中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2555408 SQL Server 2008 的累積更新套件 5 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 2 修補程式套用至 SQL Server 2008 Service Pack 2 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
SQL Server 2008 Service Pack 1
此問題的修正程式是在 SQL Server 2008 Service Pack 1 的累積式更新15中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2555406 SQL Server 2008 的累積更新套件 15 Service Pack 1注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
970365 在發行 SQL Server 2008 Service Pack 1 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 1 修補程式套用至 SQL Server 2008 Service Pack 1 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
修復程式資訊
Microsoft 提供了支援的修補程式。 不過,此修正程式僅適用于本文所述的問題。 僅將此熱修復程式套用至本文所述問題的系統。 此熱修復程式可能會收到其他測試。 因此,如果這個問題不會對您造成嚴重影響,我們建議您等待包含此熱修復程式的下一個軟體更新。如果有可供下載的熱修復程式,請參閱這篇知識庫文章頂端的「提供修補程式下載」一節。 如果此區段未出現,請與 Microsoft 客戶服務和支援聯繫,以取得此熱修復程式。 注意: 如果發生其他問題,或需要進行任何疑難排解,您可能必須建立個別的服務要求。 一般支援費用適用于不符合此特定熱修復程式的其他支援問題與問題。 如需 Microsoft Customer Service 和支援電話號碼的完整清單,或是要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support注意: [可使用的修補程式下載] 表單會顯示可供修復程式使用的語言。 如果您沒有看到您的語言,這是因為該語言沒有可用的修補程式。
先決條件
您必須安裝 Microsoft SQL Server 2008 Service Pack 2,才能套用此熱修復程式。
重新啟動資訊
套用此熱修復程式後,您可能必須重新開機電腦。 不過,SQL Server 進程將會重新開機。
取代資訊
此熱修復程式不會取代先前發佈的熱修復程式。
檔案資訊
此熱修復程式的英文版具有下表所列的檔案屬性(或更新的檔案屬性)。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換為當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。
針對所有受支援的 x86 版 SQL Server 2008
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Sqlservr.exe |
2007.100.4286.0 |
42793832 |
27-May-2011 |
21:57 |
x86 |
針對所有受支援的以 x64 為基礎的 SQL Server 2008 版本
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Sqlservr.exe |
2007.100.4286.0 |
57736040 |
27-May-2011 |
19:02 |
x64 |
針對所有受支援的 IA-64 版本的 SQL Server 2008
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
平台 |
---|---|---|---|---|---|
Sqlservr.exe |
2007.100.4286.0 |
111166312 |
27-May-2011 |
08:14 |
IA-64 |
因應措施
若要解決此問題,請執行下列其中一項操作:
-
等待完成恢復。
-
從備份還原資料庫。
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
其他相關資訊
如需有關來自資料庫引擎實例之檢查點與 i/o 的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站:
撰寫頁面如需從備份複製資料並將記錄的事務套用到資料以將其推入目標復原點的程式的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站: