共用方式為


過時容錯移轉夥伴名稱的影響

資料庫管理員可隨時變更容錯移轉夥伴。因此,用戶端提供的容錯移轉夥伴名稱可能會過期或「過時」。例如,考慮由另一個伺服器執行個體 Partner_C 取代的容錯移轉夥伴 Partner_B。若用戶端接著提供 Partner_B 做為容錯移轉夥伴名稱,該名稱就會過時。當用戶端提供過時的容錯移轉夥伴名稱時,資料存取提供者的行為跟用戶端未提供容錯移轉夥伴名稱時一樣。

例如,假設用戶端使用同一個連接字串連續進行四次連接嘗試。在連接字串中,初始夥伴名稱是 Partner_A,而容錯移轉夥伴名稱是 Partner_B:

"Server=Partner_A; Failover Partner=Partner_B; Database=AdventureWorks2008R2"

下表顯示四個夥伴組態,並指出對於每一個組態來說,此連接字串第一次是否可連接用戶端。

[!附註]

應用程式可以追蹤組態變更,並據以變更其連接字串。雖然這會需要額外程式碼,不過可減輕管理負擔。

組態

主體伺服器

鏡像伺服器

嘗試指定 Partner_A 和 Partner_B 來連接的行為

原始的鏡像組態。

Partner_A

Partner_B

已快取 Partner_A 作為初始夥伴名稱。用戶端成功連接到 Partner_A。用戶端下載鏡像伺服器名稱 Partner_B 並放入快取中,略過用戶端提供的容錯移轉夥伴名稱。

Partner_A 遇到硬體失敗,而且發生容錯移轉 (中斷用戶端連接)。

Partner_B

none

仍然將 Partner_A 快取為初始夥伴名稱,但用戶端提供的容錯移轉夥伴名稱 Partner_B,允許用戶端連接到目前的主體伺服器。

資料庫管理員停止鏡像功能 (中斷用戶端連接),以 Partner_C 取代 Partner_A 後,重新啟動鏡像功能。

Partner_B

Partner_C

用戶端嘗試連接到 Partner_A 但失敗;接著用戶端嘗試連接 Partner_B (目前的主體伺服器),結果成功。資料存取提供者下載目前的鏡像伺服器名稱 Partner_C,並快取為目前的容錯移轉夥伴名稱。

手動將服務容錯移轉至 Partner_C (中斷用戶端連接)。

Partner_C

Partner_B

用戶端一開始嘗試連接到 Partner_A,然後嘗試連接到 Partner_B。兩個名稱都會失敗,最後連接要求會逾時並失敗。