Availability-Groups

通過 AG 故障轉移保持連接

  • July 16, 2016

我看到:“發生可用性組故障轉移時,與可用性組的現有持久連接將終止,客戶端必須建立新連接才能繼續使用相同的主數據庫或只讀輔助數據庫。” - https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b8857583-0ad7-419c-904b-e9e2a13511c0/sql-connections-to-the-sql-2012-always-on-availability-group ?forum=sqldisasterrecovery 和修復 - 設置 multisubnetfailover = true https://technet.microsoft.com/en-us/library/hh213417.aspx#CCBehaviorOnFailover 有沒有辦法讓這個使用單個子網工作。有沒有辦法通過應用程序檢測到此類故障並讓它重試。

我想指出一點。發生故障轉移時,任何使用偵聽器進行連接的客戶端都將關閉其連接。設置與否無關緊要MultiSubnetFailover。MultiSubnetFailover 幫助客戶端驅動程序啟動多個連接執行緒(每個 IP 1 個),而無需應用程序知道並透明地連接到目前活動的 IP 到應用程序。

話雖如此,由於在單個子網上不需要或不需要此設置(但最佳做法是仍將其放在連接字元串中,因為您不知道以後是否需要它)沒有任何東西需要做的。

有沒有辦法通過應用程序檢測到此類故障並讓它重試。

是的!這與您因任何其他原因斷開連接的錯誤相同。根據使用的驅動程序,錯誤檢查可能會有所不同。例如,如果您使用 .Net 和 ADO.Net sqldata 客戶端,您可以使用StateChanged事件來了解您何時連接或斷開連接。如果您的委託被解僱,請檢查連接。如果您已斷開連接,請嘗試再次連接,等等。

引用自:https://dba.stackexchange.com/questions/144036