不論是初次與會議建立連線,還是中斷已建立連線後重新連線,資料訪問介面都遵循連線重試演算法。開啟連線之後,還需要一些時間完成登入的步驟。
預設的登入超時期限為15秒,建議登入超時期限至少為5秒。如果指定較短的超時期限,則可能導致連線嘗試失敗。
當初始夥伴名稱和故障轉移夥伴名稱均可用時,客戶端會交替使用這兩個名稱,反覆嘗試重新連線到伺服器。
在第一輪連線嘗試中,資料訪問介面將首先嘗試使用初始夥伴名稱,如果連線嘗試失敗(或者重試時間過期)且未超過登入期限,則資料訪問介面還會嘗試使故障轉移夥伴名稱。如果連線嘗試仍然失敗,則進行第二輪連線嘗試,還是首先嘗試使用初始夥伴名稱,如果嘗試失敗(且未超過登入期限)則使用故障轉移夥伴名稱。如此反覆,直到登入期限超時。
第一輪每次重試時間為總登入時間的 8%;後續每輪依次遞增 8%。以15秒的登入超時期限為例,前 4 輪中分配的重試時間如下:
輪次
比例
每次嘗試重試的時間
18 %
1.2 秒
216 %
2.4 秒
324 %
3.6 秒
432 %
4.8 秒
下圖說明了15秒時的重試時間。
在上例中,前三輪連線嘗試耗時 14.4 秒,在登入期限超時之前僅剩下 0.6 秒的時間。在這種情況下,第4輪僅允許使用初始夥伴名稱進行最後的快速連線嘗試。
如果客戶端嘗試連線到正在進行故障轉移的夥伴,則此夥伴會立即做出響應,表明它處於不活動的狀態。在這種情況下,每輪連線嘗試都會比分配的重試時間更短暫,從而導致在登入期限超時之前會發生多輪連線嘗試,這會增加夥伴在故障轉移期間的負載。因此,這種情況下,資料訪問介面將在每輪嘗試之後增加短暫的重試延遲時間。
在第一輪之後,延遲時間為 100 毫秒。在接下來的3輪之後,重試延遲時間加倍,分別達到 200、400和800毫秒。由於最大的重試延時時間為1秒,因此第5輪及所有的後續輪次,重試延遲時間為1秒,直到連線嘗試成功或超時。
下圖說明了在手動故障轉移期間重試延遲時間對連線嘗試的影響。登入超時期限為15秒。
參考資料:
**:
mysql連線是否會重試 資料庫映象連線重試演算法
連線重試演算法,資料庫整體連線重試演算法 不論是初次與會議建立連線,還是中斷已建立連線後重新連線,資料訪問介面都遵循連線重試演算法。開啟連線之後,還需要一些時間完成登入的步驟。預設的登入超時期限為15秒,建議登入超時期限至少為5秒。如果指定較短的超時期限,則可能導致連線嘗試失敗。當初始夥伴名稱和故障...
資料庫映象簡介
from 一 資料庫映象的優點 提高資料庫的可用性 發生災難時,在具有自動故障轉移功能的高安全性模式下,自動故障轉移可快速使資料庫的備用副本聯機 而不會丟失資料 在其他執行模式下,資料庫管理員可以選擇強 務 可能丟失資料 以替代資料庫的備用副本。增強資料保護功能 資料庫映象提供完整或接近完整的資料冗...
資料庫映象和資料庫快照
可以利用為了實現可用性目標而維護的映象資料庫來減輕報表的負載。若要將映象資料庫用於報表,可以在映象資料庫中建立資料庫快照,並將客戶端連線請求定向到最新的快照。由於資料庫快照只在建立快照時存在,因此,它是乙個靜態的 唯讀的並與其源資料庫保持事務一致的快照。若要在映象資料庫中建立資料庫快照,資料庫必須處...