Mysql

MySQL 故障轉移:如何在主從配置中將應用程序切換到新的主伺服器?

  • April 3, 2019

就我而言,我有兩個 MySQL 伺服器。一個是主人,一個是奴隸。

當從屬不可用時,我的應用程序可以從主控讀取和寫入。

當 master 不可用時,假設有一個工具mysqlfailover成功地提名了一個新的 master(從 slave)。

聽起來不錯,但應用程序在配置中有主主機名。所以它找不到它。

有哪些可用選項可以解決此問題?如何將應用程序切換到新的主人?

我知道我可以切換主機名以指向新 IP,在容器中使用 Kubernetes (StatefulSet) + DB,但還有什麼可以作為裸機上的免費選項?

如果從廣義上講,如何使用 HA/故障轉移工具解決這個問題?

謝謝

我們也遇到過類似的問題。多可用區MySQL-RDS 提供自動故障轉移功能。每次發生故障轉移時,雖然新 master 的 URL 保持不變,但 JDBC 仍然無法連接到新 master。

預設情況下,一旦連接到數據庫,某些設置將永遠不會刷新 DNS 條目,直到 JVM 重新啟動。這可以通過設置JVM的**networkaddress.cache.ttl參數來解決。**設置此值可確保在一段時間後刷新 DNS 條目。如果您不使用 Java,請嘗試為您的連接找到一個類似的參數。

換句話說,首先確保新 master 的 URL 保持不變(您需要與您的運營團隊交談以了解如何完成)。一旦完成,故障轉移後發現新的主節點成為應用程序本身的責任,這可以通過定期刷新底層 DNS 條目來實現。

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