同步資料庫鏡像 (高安全性模式)
如果交易安全性設為 FULL,在初始同步化階段之後,資料庫鏡像工作階段就會在高安全性模式下執行而且會以同步方式運作。本主題將詳細說明為同步作業而設定的資料庫鏡像工作階段,這個主題假設您已熟悉資料庫鏡像作業的基礎概念。如需詳細資訊,請參閱<資料庫鏡像工作階段>。
若要達到工作階段的同步作業,鏡像伺服器必須將鏡像資料庫與主體資料庫進行同步處理。工作階段開始時,主體伺服器就會開始將其使用中的記錄傳送至鏡像伺服器。鏡像伺服器會儘快將所有內送記錄都寫入磁碟中。一旦所有收到的記錄都寫入磁碟之後,資料庫便已完成同步處理。只要夥伴保持通訊,資料庫就會持續同步處理。
附註: |
---|
若要在資料庫鏡像工作階段中監視狀態變更,請使用資料庫鏡像狀態變更事件類別。如需詳細資訊,請參閱<Database Mirroring State Change 事件類別>。 |
在同步處理完成之後,主體資料庫上認可的每項交易,也都會在鏡像伺服器上認可,以確保資料的安全。達成同步處理的做法是:直到主體伺服器收到鏡像伺服器傳來的訊息,表示已將交易記錄儲存至磁碟後,才去認可主體資料庫上的交易。請注意,等候此訊息會增加交易的延遲時間。
同步處理所需的時間,主要取決於:工作階段開始時,鏡像資料庫的進度落後主體資料庫多遠 (依據一開始從主體伺服器收到的記錄筆數來計算);主體資料庫的工作負載;以及鏡像系統的速度。同步處理工作階段之後,必須在鏡像資料庫上重做的強化記錄,仍會留在重做佇列中。如需詳細資訊,請參閱<資料庫鏡像工作階段>。
鏡像資料庫一旦完成同步處理,該資料庫兩個複本的狀態都會變成 SYNCHRONIZED。
維持同步作業的做法如下:
- 從用戶端收到交易時,主體伺服器會將交易的記錄寫入交易記錄。
- 主體伺服器會將交易寫入資料庫,同時也會傳送記錄至鏡像伺服器。主體伺服器會等候鏡像伺服器發出收條,收到後才會向用戶端確認下列其中一項:交易認可或回復。
- 鏡像伺服器會將記錄儲存至磁碟,並回傳收條給主體伺服器。
- 主體伺服器收到鏡像伺服器的收條時,就會傳送確認訊息給用戶端。
高安全性模式會藉由要求兩地的資料同步化來保護資料。所有經過認可的交易,都一定會寫入鏡像伺服器的磁碟上。
不具有自動容錯移轉的高安全性模式
下圖將顯示不含自動容錯移轉之高安全性模式的組態。這個組態僅包含兩個夥伴。
當夥伴已連接而且資料庫已經同步處理後,就會支援手動容錯移轉。如果鏡像伺服器執行個體效能降低,主體伺服器執行個體不受影響,並且公開執行 (亦即沒有鏡像資料)。如果喪失主體伺服器,就會暫停鏡像,不過可以手動將服務強制轉到鏡像伺服器 (可能發生資料遺失)。如需詳細資訊,請參閱<強制服務 (可能發生資料遺失)>。
具有自動容錯移轉的高安全性模式
自動容錯移轉可確保某一台伺服器喪失之後,仍能繼續服務資料庫,藉以提供高度的可用性。自動容錯移轉會要求工作階段包含第三個伺服器執行個體 (「見證」),而且此執行個體最好是位於第三部電腦上。下圖將顯示支援自動容錯移轉之高安全性模式工作階段的組態。
與兩位夥伴不同的是,見證並不是為資料庫服務。見證只是藉由確認主體伺服器是否已啟動而且可以正常運作,來支援自動容錯移轉。只有當鏡像和見證與主體伺服器中斷連接後仍然保持相互連接時,鏡像伺服器才會開始進行自動容錯移轉。
當見證設定完成後,工作階段就會要求*「仲裁」* (它是至少兩個伺服器執行個體之間的關聯性,以便讓資料庫可供使用)。如需詳細資訊,請參閱<仲裁:見證如何影響資料庫可用性>和<自動容錯移轉>。如需詳細資訊,請參閱<資料庫鏡像見證>。
自動容錯移轉必須符合下列條件:
- 資料庫已同步處理。
- 當所有三個伺服器執行個體都已連接,而且見證和鏡像伺服器維持連接狀態時,發生故障。
夥伴的遺失將具有下列結果:
- 如果主體伺服器在上述條件下變得無法使用,就會進行自動容錯移轉。鏡像伺服器會切換成主體的角色,並提供其資料庫來作為主體資料庫。
- 如果主體伺服器在未達到這些條件時無法使用,強制服務 (可能發生資料遺失) 是可行的。如需詳細資訊,請參閱<強制服務 (可能發生資料遺失)>。
- 如果只有鏡像伺服器變得無法使用,主體及見證會繼續運作。
如果工作階段失去見證,仲裁就會需要這兩個夥伴。如果任一個夥伴失去仲裁,這兩個夥伴都會失去仲裁,因此資料庫將變成無法使用,直到重新建立仲裁。此仲裁需求可確保在沒有見證的情況下,資料庫絕不會*「公開」*(亦即,在沒有鏡像的情況下) 執行。
附註: |
---|
若要讓見證中斷連接維持一段較長的時間,我們建議您從工作階段中移除見證,直到它可用為止。 |
請參閱
概念
資料庫鏡像工作階段
仲裁:見證如何影響資料庫可用性
Transact-SQL 設定和資料庫鏡像作業模式