共用方式為


重新連接至資料庫鏡像工作階段

如果資料庫鏡像工作階段的已建立連接由於任何原因而失敗 (例如,由於資料庫鏡像容錯移轉),而且應用程式嘗試重新連接至初始伺服器時,資料存取提供者就可以使用儲存在用戶端快取中的容錯移轉夥伴名稱,嘗試重新連接。不過,重新連接不會自動進行。應用程式必須注意這項錯誤。然後,應用程式必須關閉失敗的連接,並使用相同的連接字串屬性來開啟新連接。此時,資料存取提供者會將連接重新導向至容錯移轉夥伴。如果以這個名稱識別的伺服器執行個體目前是主體伺服器,連接嘗試通常會成功。如果交易已認可或已回復並不明確,應用程式必須檢查交易的狀態,方法就與重新連接至獨立的伺服器執行個體一樣。

重新連接很類似連接字串提供容錯移轉夥伴名稱的初始連接。如果第一個連接嘗試失敗,連接嘗試就會在初始夥伴名稱和容錯移轉夥伴名稱之間輪流,直到用戶端連接至主體伺服器或者資料存取提供者逾時為止。

[!附註]

SQL Server Native Client 會驗證是否連接至主體伺服器執行個體,但不會驗證此執行個體是否為連接字串之初始夥伴名稱中指定的伺服器執行個體夥伴。

如果連接使用 TCP/IP 而且用戶端使用 Windows XP 或更新版本,連接重試演算法就會決定每個重試回合中分配給連接嘗試的時間量。如需詳細資訊,請參閱<搭配 SQL Server Native Client 使用連接字串關鍵字>。

重要事項重要事項

如果用戶端與資料庫中斷連接,資料存取提供者就不會嘗試重新連接。用戶端必須發出新的連接要求。此外,如果應用程式在失去連接時關閉,它將失去快取的夥伴名稱。如果因為主體伺服器無法使用而失去連接,則應用程式可以重新連接到鏡像伺服器的唯一方式,就是在其連接字串中提供容錯移轉夥伴名稱。

重新導向對用戶端應用程式的影響

在容錯移轉之後,資料存取提供者會將連接重新導向至目前的主體伺服器執行個體。不過,重新導向對用戶端而言是透明的。對於用戶端而言,重新導向的連接會呈現為初始夥伴名稱所識別之伺服器執行個體的連接。當初始夥伴目前是鏡像伺服器時,用戶端似乎可以連接至鏡像伺服器並更新鏡像資料庫。不過,用戶端實際上已經重新導向至容錯移轉夥伴 (目前的主體資料庫),而且用戶端正在更新的是新主體資料庫。

重新導向至容錯移轉夥伴後,使用 Transact-SQL USE 陳述式來使用不同的資料庫時,用戶端可能會遇到非預期的結果。如果目前的主體伺服器執行個體 (容錯移轉夥伴) 與原始的主體伺服器 (初始夥伴) 具有不同的資料庫集,就可能會發生這種情況。