每當爲數據庫鏡像會話設置見證服務器時,都需要“仲裁”。 仲裁是數據庫鏡像會話中兩個或多個服務器實例彼此連接時存在的一種關係。 仲裁通常包括三個互連的服務器實例。 設置見證服務器時,必須具有仲裁才能使用數據庫。 仲裁旨在用於具有自動故障轉移功能的高安全性模式,可確保一個數據庫一次只屬於一個夥伴。
如果特定的服務器實例與鏡像會話斷開連接,則該實例將失去仲裁。 如果沒有連接任何服務器實例,則會話將失去仲裁,並無法使用數據庫。 可以進行的仲裁有三種:
“完全仲裁”包含夥伴雙方以及見證服務器。
“見證服務器-夥伴仲裁”包含見證服務器和一個夥伴。
“夥伴-夥伴仲裁”包含夥伴雙方。
下圖顯示了這三種類型的仲裁。
只要當前的主體服務器具有仲裁,它就擁有主體服務器的角色並可繼續操作數據庫,除非數據庫所有者執行手動故障轉移。 如果主體服務器失去仲裁,它將停止操作數據庫。 僅當主體服務器失去仲裁時,纔會發生自動故障轉移,這確保它不再操作數據庫。
斷開連接的服務器實例將保存其在會話中的最新角色。 通常,斷開連接的服務器實例將在重新啓動並重新獲得仲裁時重新連接到會話。
重要提示
只有在需要使用具有自動故障轉移功能的高安全性模式時,才應設置見證服務器。 在高性能模式下,由於從不需要見證服務器,因此極力建議將 WITNESS 屬性設置爲 OFF。 有關見證服務器如何影響高性能模式會話中數據庫可用性的信息,請參閱異步數據庫鏡像(高性能模式)。