共用方式為


預估角色切換期間的服務中斷時間 (資料庫鏡像)

適用於:SQL Server

在角色切換期間,資料庫鏡像無法服務的時間量視角色切換類型和角色切換原因而定。

  • 對於自動容錯移轉,有兩個因素構成服務中斷時間:鏡像伺服器辨識主體伺服器執行個體失敗所需的時間,即錯誤偵測,加上資料庫容錯移轉所需的時間,即容錯移轉時間。

  • 對於強制服務作業,雖然發生失敗,失敗的偵測和回應視人員回應而定。 不過,預估可能的服務中斷,僅限於預估發出強制服務命令之後鏡像伺服器切換角色的時間。

    注意

    若要減少偵測特定狀況 (例如某些類型的錯誤) 所需的時間,您可以定義那些狀況的警示。

  • 若為手動容錯移轉,則只有發出容錯移轉命令之後資料庫容錯移轉所需的時間。

錯誤偵測

系統注意到錯誤時間取決於錯誤的類型;例如,網路錯誤幾乎會立即注意到,而注意到伺服器沒有回應則需要 10 秒 (預設逾時)。

如需在具有自動容錯移轉的高安全性模式下進行資料庫鏡像工作階段以及逾時偵測期間,可能導致失敗之錯誤的資訊,請參閱 資料庫鏡像期間可能發生的失敗

容錯移轉時間

容錯移轉時間包含的時間主要是:先前之鏡像伺服器向前復原其重做佇列中剩餘的所有記錄檔所需時間,加上其他短時間 (如需鏡像伺服器如何處理記錄檔記錄的詳細資訊,請參閱資料庫鏡像 (SQL Server))。 如需預估容錯移轉時間的詳細資訊,請參閱此主題稍後的「預估容錯移轉重做速率」。

重要

如果在交易期間建立了索引或資料表之後又變更,而發生容錯移轉,容錯移轉的時間會比平常更久。 例如,在執行下列一系列作業期間發生容錯移轉,可能會增加容錯移轉的時間:BEGIN TRANSACTION、對資料表 CREATE INDEX 和對資料表執行 SELECT INTO。 在這種交易期間,仍有增加容錯移轉時間的可能性,直到以 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 陳述式完成它為止。

重做佇列

向前恢復資料庫涉及套用目前在鏡像伺服器上重做佇列中的記錄。 「重做佇列」包含已寫入鏡像伺服器上的磁碟,但尚未在鏡像資料庫上向前復原的記錄檔記錄。

資料庫的容錯移轉時間取決於鏡像伺服器向前恢復重做佇列中記錄的速度,而這主要又是由系統硬體與目前工作負載所決定。 主體資料庫有可能會變得很忙碌,使主體伺服器以比向前恢復記錄檔更快的速度,將記錄檔轉送到鏡像伺服器。 在此情況下,當鏡像伺服器向前恢復重做佇列中的記錄時,容錯移轉可能花費很多時間。 若要了解重做佇列的目前大小,請使用資料庫鏡像效能物件中的 Redo Queue 計數器。 如需詳細資訊,請參閱 SQL Server 的 Database Mirroring 物件

預估容錯移轉重做速率

您可利用生產資料庫的測試複本,測量向前復原記錄檔記錄所需的時間量 (「重做速率」)。

預估容錯移轉期間之向前恢復時間的方法,取決於重做階段期間鏡像伺服器所使用的執行緒數目。 執行緒的數目取決下列:

  • 在 SQL Server Standard 版本中,鏡像伺服器一律使用單一執行緒向前復原資料庫。

  • 在 SQL Server Enterprise 版本中,若鏡像伺服器所在電腦的 CPU 少於五個,也只會使用單一執行緒。 如果有五個以上的 CPU,鏡像伺服器會在容錯移轉期間,將其向前復原作業散發到多個執行緒 (也稱為「平行重做」)。 平行重做已完成最佳化,針對每四個 CPU 使用一個執行緒。

預估單一執行緒的重做速率

對於單一執行緒重做,在容錯移轉期間向前恢復鏡像資料庫所花費的時間,大約與記錄備份還原要向前恢復相同數量的記錄相同。 若要預估容錯移轉時間,請在您要執行鏡像的環境中建立測試資料庫。 然後,從實際資料庫中取得記錄備份。 若要計算該記錄備份的重做速率,請計時您在測試資料庫上還原記錄備份 WITH NORECOVERY 的時間長度。

一旦您得知鏡像伺服器的重做速率,即可依重做速率在鏡像伺服器上分隔要重做的目前記錄檔數量 (如 Redo Queue 效能計數器所測量),以預估在給定的時間點上容錯移轉資料庫的時間。 在正常狀況下,如果鏡像伺服器能跟上主體伺服器的負載, Redo Queue 會極小或接近零,而容錯移轉只會花費數秒。

預估平行重做速率

在 SQL Server Enterprise 版本中,平行重做已最佳化成每四個 CPU 使用一個執行緒。 若要預估平行重做的向前恢復時間,存取執行中測試系統比存取測試資料庫更加精確。 在鏡像伺服器上監視重做佇列時,請增加主體伺服器上的負載。 在正常作業中,重做佇列會接近零。 請增加主體伺服器上的負載,直到 Redo Queue 開始持續成長為止;然後系統會在其重做速率的上限,而 Redo Bytes/sec 效能計數器此時代表重做速率的上限。 如需詳細資訊,請參閱 SQL Server 的 Database Mirroring 物件

預估自動容錯移轉期間的服務中斷時間

下圖說明錯誤偵測與容錯移轉時間,如何構成在 Partner_B上完成自動容錯移轉所需的全部時間。 容錯移轉需要時間以向前恢復資料庫 (重做階段),再加上少許時間,才能使資料庫上線。 恢復階段會在新的主體資料庫上線後發生,並在容錯移轉之後繼續作業,其中涉及回復所有未認可的交易。 恢復階段期間可使用資料庫。

錯誤偵測和容錯移轉時間

另請參閱

Database Mirroring Operating Modes
資料庫鏡像工作階段期間的角色切換 (SQL Server)
監視資料庫鏡像 (SQL Server)