KB2653893-修正:在 SQL Server 2008 R2 或 SQL Server 2008 或 SQL 2012 中還原資料庫需要花很長的時間

Microsoft 發佈 Microsoft SQL Server 2008 R2 Service Pack 1 (SP1)或 Microsoft SQL Server 2008 或 Microsoft SQL Server 2012 其中一個可下載的檔案中的修正程式。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 R2 Service Pack 1 (SP1)或 SQL Server 2008 或 Microsoft SQL Server 2012 更新版本中所包含的所有熱修復程式和安全性更新。

徵狀

在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2008 或 Microsoft SQL Server 2012 中還原資料庫可能需要花很長的時間。

原因

發生這個問題的原因是,當資料庫中有許多 VLFs 時,需要花很長的時間來建立虛擬記錄檔(VLF)清單。

解決方案

累積更新資訊

SQL Server 2012

此問題的修正程式是在 SQL Server 2012 的累積更新1中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2679368 SQL Server 2012 的累積更新套件1注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2012 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建 您必須將 SQL Server 2012 修補程式套用至 SQL Server 2012 的安裝。

SQL Server 2008 Service Pack 2

此問題的修正程式會在 SQL Server 2008 Service Pack 2 的累積更新8中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2648096 SQL Server 2008 的累積更新套件 8 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 3

此問題的修正程式是在 SQL Server 2008 的累積更新3(Service Pack 3)中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2648098 SQL Server 2008 累積更新套件 3 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 的累積更新套件11

此問題的修正程式是在累積更新11中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2633145 SQL Server 2008 R2 的累積更新套件11注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建

SQL Server 2008 R2 SP1 的累積更新套件4

此問題的修正程式是以累積更新4第一次發行。如需有關如何取得 SQL Server 2008 R2 SP1 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2633146 SQL Server 2008 R2 SP1 的累積更新套件4注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 SP1 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 在發行 SQL Server 2008 R2 SP1 之後發行的 SQL Server 2008 R2 組建

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

其他相關資訊

您可以透過查看 SQL 錯誤記錄檔,然後在每個事務記錄備份檔案中尋找記錄順序編號(LSN),來檢查 VLF 區段數。 LSNs 中冒號符號前面的第一個位數會對應到 LSN 的編號。例如,LSN 第一個資訊訊息中的第一個數位是 1。 不過,LSN 第二個資訊性訊息中的第一個數位是 100001。 在此案例中,有 100000 VLFs 是在第一條資訊訊息和第二條資訊訊息的時間之間使用。 因此,包含許多虛擬記錄檔(VLFs)的記錄零碎事務記錄會與下列內容類別似:

{已備份記錄。 資料庫: mydbname,建立日期(時間): 2010/07/08 (12:36:46),第一個 LSN:1:5068:70,最後一個 LSN:1:5108:1,轉儲裝置數目:1,裝置資訊:(FILE = 1,輸入 = DISK: {' C:\folder\logbackup1.trn '})。 這只是一則資訊訊息。 不需要使用者動作。已備份記錄。 資料庫: mydbname,建立日期(時間): 2010/07/08 (15:36:46),第一個 LSN:100001:5108:1,最後一個 LSN:100002:5108:1,dump 裝置數:1,裝置資訊:(FILE = 2,輸入 = DISK: {' C:\folder\logbackup2.trn '})。 這只是一則資訊訊息。 不需要使用者動作。

參考

如需記錄順序編號(LSN)的詳細資訊,請造訪下列 MSDN 網站:

有關記錄順序編號的一般資訊

如需記錄檔結構如何影響資料庫恢復時間的詳細資訊,請造訪下列 MSDN 網站:

記錄檔結構可能會如何影響資料庫恢復時間如需有關事務記錄記錄 VLFs 的詳細資訊,請造訪下列 MSDN 網站:

事務記錄日誌檔的一般資訊

因應措施

  • 等待還原或恢復作業完成如果您有未復原的資料庫在您還原或復原資料庫時遇到低效能,您可能必須等候還原或復原作業完成。 例如,您可能會在未復原資料庫的 SQL Server Management Studio (SSMS)中看到 [離線狀態] 或 [復原狀態]。 停止 SQL Server 通常不會因復原速度變慢而沒有任何止裂槽,而且可能需要較長的時間來重複相同的恢復分析階段、復原階段或復原階段。

  • 避免還原包含上千個 VLFs 的事務記錄日誌序列如果您在使用備份檔案還原及復原資料庫時遇到低效能,您可以避免還原包含上千個 VLFs 的事務記錄日誌順序。 若要找出已記錄的虛擬記錄檔案的備份檔案,請使用下列語句來查看記錄備份檔案中的 FirstLSN 和 LastLSN 欄:從磁片還原 HEADERONLY [C:\folder\file.trn] 您可以決定避免還原記錄備份檔。 或者,您可以使用 RESTORE 命令中的 STOP AT 語句來避免事務記錄記錄中大量的零碎部分。 如果您在失敗的復原案例期間,不會將記錄序列完整還原到最新的時間點,您的資料庫 SQL Server 中就會發生資料遺失。 發生這種資料損失是因為並非所有事務都要保留。 因此,有一個業務平衡點決策。 您可以完整還原大量的事務記錄記錄。 不過,這個作業可能需要幾個小時的時間。 或者,您可以使用 [恢復] 中的 STOP AT 語句,在記錄過大的部分之前停止恢復。 不過,您省略的任何遺失交易都會遺失。注意: 在未安裝此熱修復程式的情況下,在重新開機 SQL Server 之後,通常沒有安全的 recourse 可供快速恢復。 SQL Server 必須找出 VLFs 的清單來分析記錄檔、復原已完成的交易,然後復原不完整的交易,以完成恢復,以使資料庫安全地連線。 在恢復期間,您無法安全地略過事務。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×