資料庫鏡像概觀

更新: 2005 年 12 月 5 日

*「資料庫鏡像」*主要是一套增加資料庫可用性的軟體方案。鏡像是以每個資料庫為基準實作,只適用於使用完整復原模式的資料庫。簡單與大量記錄復原模式不支援資料庫鏡像。因此,所有的大量作業永遠都是完整記錄作業。資料庫鏡像適用於任何支援的資料庫相容性層級。

ms189852.note(zh-tw,SQL.90).gif附註:
您無法為 mastermsdbtempdbmodel 資料庫建立鏡像。

資料庫鏡像會維護單一資料庫的兩份副本,這兩份副本必須位於 SQL Server Database Engine 的不同執行個體 (伺服器執行個體)。這些伺服器執行個體通常位於不同位置的電腦上。其中一個伺服器執行個體可提供資料庫給用戶端 (「主體伺服器」),而另一個伺服器執行個體則做為熱或暖待命伺服器 (「鏡像伺服器」),端視鏡像工作階段的組態和狀態而定。同步處理資料庫鏡像工作階段時,資料庫鏡像會提供熱待命伺服器來支援快速容錯移轉,因而不會遺失任何已認可的交易資料。當工作階段無法同步處理時,鏡像伺服器通常會當做暖待命伺服器使用 (可能發生資料遺失)。

資料庫鏡像的優點

資料庫鏡像是一種簡單的策略,提供了下列優點:

  • 增加資料保護。
    資料庫鏡像可提供完整或近乎完整的資料備援性,端視作業模式是高安全性模式或高效能模式而定。如需詳細資訊,請參閱本主題後面的「作業模式」。
  • 提高資料庫的可用性。
    發生損毀事件時,在具有自動容錯移轉的高安全性模式下,自動容錯移轉便會迅速將資料庫的待命副本變成線上狀態 (無資料遺失)。在其他作業模式下,資料庫管理員則可選擇對資料庫的待命副本進行強制服務 (可能發生資料遺失)。如需詳細資訊,請參閱本主題稍後的「角色切換」。
  • 提升實際執行的資料庫在升級期間的可用性。
    如果要使鏡像資料庫的停機時間降到最低,您可以循序升級 SQL Server 執行個體,這些執行個體參與資料庫鏡像工作階段,使停機時間僅有單一次容錯移轉的時間。這種升級形式稱之為*「輪流升級」*。如需詳細資訊,請參閱<如何:以最低鏡像資料庫停機時間在系統上安裝 Service Pack>。

資料庫鏡像的運作方式

主體伺服器和鏡像伺服器會在*「資料庫鏡像工作階段」內互相通訊,並如同「夥伴」般彼此合作。這兩個夥伴在工作階段中扮演互補的角色:「主體角色」「鏡像角色」。在任何時間內,一定有一個夥伴扮演主體角色,而另一個夥伴就扮演鏡像角色。我們會以每個夥伴所「擁有」的目前角色來描述它們,擁有主體角色的夥伴稱為「主體伺服器」,其資料庫副本就是目前的主體資料庫;而擁有鏡像角色的夥伴則稱為「鏡像伺服器」*,其資料庫副本就是目前的鏡像資料庫。在實際執行環境中部署資料庫鏡像時,主體資料庫就是實際執行的資料庫。

資料庫鏡像涉及將主體資料庫上發生的每一項插入、更新和刪除作業,儘快重做到鏡像資料庫上。完成重做的方式是將一筆每個使用中的交易記錄傳送到鏡像伺服器,再由鏡像伺服器盡快依序將記錄套用到鏡像資料庫。與在邏輯層級運作的複寫不同,資料庫鏡像是在實體記錄層級運作。

作業模式

資料庫鏡像工作階段可與同步或非同步作業一起執行。在非同步作業下,交易不會等待鏡像伺服器將記錄寫入磁碟,即逕行認可,藉以達到最大效能。在同步作業下,已認可交易將同時在兩個夥伴上進行認可,代價是會增加交易延遲性。

鏡像作業模式共有兩種。其中一種模式 (「高安全性模式」) 可支援同步作業。在高安全性模式下,當工作階段開始時,鏡像伺服器會儘快將鏡像資料庫與主體資料庫進行同步處理。當資料庫同步處理完成之後,已認可交易將同時在兩個夥伴上進行認可,代價是會增加交易延遲性。

第二種作業模式 (「高效能模式」) 則以非同步方式執行。鏡像伺服器會盡量跟上主體伺服器所傳送的記錄。鏡像資料庫的狀態可能會比主體資料庫稍稍延遲,不過資料庫之間的差距通常都很小。但是,若主體伺服器的工作負載很大,或鏡像伺服器的系統超載時,此差距就會變大。

在高效能模式中,當主體伺服器傳送記錄到鏡像伺服器時,主體伺服器會立即傳送確認給用戶端,而不需等候鏡像伺服器的收條。這表示交易不會等待鏡像伺服器將記錄寫入磁碟,即逕行認可。這種非同步作業可以讓主體伺服器在執行時將交易延遲降到最低,但必須承擔可能遺失資料的風險。

所有的資料庫鏡像工作階段都只能支援一部主體伺服器和一部鏡像伺服器。下圖說明這種組態。

資料庫鏡像工作階段中的夥伴

具有自動容錯移轉的高安全性模式需要第三個伺服器執行個體,稱為*「見證」*。與兩位夥伴不同的是,見證並不是為資料庫服務。見證只是藉由確認主體伺服器是否已啟動而且可以正常運作,來支援自動容錯移轉。只有當鏡像和見證與主體伺服器中斷連接後仍然保持相互連接時,鏡像伺服器才會開始進行自動容錯移轉。

下圖顯示包括見證的組態。

包含旁觀的鏡像工作階段

如需詳細資訊,請參閱本主題稍後的「角色切換」。

交易安全性與作業模式

作業模式為同步或非同步作業需視其交易安全性設定而定。如果您以獨佔模式使用 SQL Server Management Studio 來設定資料庫鏡像,系統便會在您選取作業模式時自動設定交易安全性設定。

如果使用 Transact-SQL 來設定資料庫鏡像,您就必須了解設定交易安全性的方式。交易安全性是由 ALTER DATABASE 陳述式的 SAFETY 屬性所控制。在要進行鏡像的資料庫上,SAFETY 不是 FULL 就是 OFF。

  • 如果 SAFETY 選項設為 FULL,在初始同步處理階段之後的資料庫鏡像便為同步作業。如果見證是在高安全性模式下設定,工作階段就會支援自動容錯移轉。
  • 如果 SAFETY 選項設為 OFF,資料庫鏡像便為非同步作業。工作階段將以高效能模式執行,而且 WITNESS 選項也應該設為 OFF。

如需詳細資訊,請參閱<Transact-SQL 設定和資料庫鏡像作業模式>。

角色切換

在資料庫鏡像工作階段的內容中,主體與鏡像角色通常可以用一種稱為角色切換的程序交換。角色切換包括將主體角色傳送給鏡像伺服器。在角色切換中,鏡像伺服器將充當主體伺服器的*「容錯移轉夥伴」*。發生角色切換時,鏡像伺服器將接替主體角色,並使其資料庫副本變成線上狀態以做為主體資料庫。先前的主體伺服器 (如果有的話) 將會擔任鏡像角色,而其資料庫則會變成新的鏡像資料庫。原則上,各角色可以重複來回切換。

角色切換有下列三種形式:

  • 自動容錯移轉
    這種形式需要使用高安全性模式而且鏡像伺服器和見證必須存在。資料庫必須已同步處理,而見證也必須連接到鏡像伺服器。
    見證角色是用來驗證特定的夥伴伺服器是否已啟動而且可以正常運作。如果鏡像伺服器與主體伺服器的連接中斷,但見證仍與主體伺服器連接,鏡像伺服器就不會起始容錯移轉。如需詳細資訊,請參閱<資料庫鏡像見證>。
  • 手動容錯移轉
    這種形式需要使用高安全性模式。夥伴必須互相連接,而且資料庫也必須已完成同步處理。
  • 強制服務 (可能發生資料遺失)
    在高效能模式與不含自動容錯移轉的高安全性模式中,如果主體伺服器已經故障,但鏡像伺服器仍然可用,就可以使用強制服務。
    ms189852.note(zh-tw,SQL.90).gif重要事項:
    高效能模式是在沒有見證的情況下執行的模式。但是如果有見證存在,該見證就必須連接到鏡像伺服器,才能使用強制服務。

在任何角色切換的狀況中,一旦新主體資料庫變成線上狀態之後,用戶端應用程式就可以重新連接到該資料庫,以迅速復原作業。

資料庫鏡像支援

SQL Server 2005 Standard Edition SP1 和更新版本以及 SQL Server 2005 Enterprise Edition SP1 和更新版本都支援資料庫鏡像夥伴和見證。不過,這些夥伴必須使用相同的版本,而且只有 SQL Server 2005 Enterprise Edition SP1 和更新版本才支援非同步資料庫鏡像 (高效能模式)。SQL Server 2005 Workgroup Edition SP1 和更新版本以及 SQL Server 2005 Express Edition SP1 和更新版本也支援見證。

相關聯的資料庫鏡像主題

請參閱

其他資源

將用戶端連接至鏡像資料庫
資料庫鏡像及其他功能和元件
sp_dbcmptlevel (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助