MySQL高可用方案MHA的一些總結和思考
MySQL高可用方案中MHA絕地是一個相當成熟的實現。對於資料的切換,其實MGR也能很好的完成,也就是說,資料層面的角色切換已經刻意很平滑的做好了,但是對於訪問IP的處理,還是有很大的空間,MHA提供了很多可選的空間來支援。
常見的組合方式有:
MHA+VIP
MHA+keepalive
MHA+Zookeeper
當然MHA+VIP是一種很成熟和經典的方案了。
一般來說都有以下類似的架構方式,假設架構模式為一主兩從。對於應用訪問來說,提供的IP資訊就依據繫結的VIP地址為準。VIP可以根據節點的資料狀態在不同節點間漂移,達到無縫切換的高可用。
MHA Manager是一個核心的排程器,有了它可以排程多套環境,當然MHA Manager自身也有單點,所以會考慮兩套MHA Manager節點來做冗餘,實際上是做交叉互備,比如有100套環境,兩個MHA Manager節點,那就每個分50個節點,如果Manager節點出現故障,可以很順利的交接給Manager2來接管。
對於應用來說,就是統一透過VIP的方式來訪問。如果是在這個基礎上考慮中介軟體的方案,則資料訪問的策略會更加複雜一些。
對於這樣的一個基本方案,如果從多個維度來下鑽會發現有很多需要注意的地方,所以問題無處不在,可喜的是在MHA中幾乎都考慮到了。如果說得簡單點,主要有下面的幾個場景需要考慮:
-
資料庫主庫當機
-
資料庫從庫當機
-
重啟資料庫主庫
-
重啟資料庫從庫
-
從庫應用延遲
-
主從網路延遲
-
主庫伺服器當機
-
從庫伺服器當機
-
一主多從切換優先順序
-
網路抖動的切換
-
手工主從切換
-
主節點IP調整
-
從節點IP調整
-
新增從節點
-
剔除從節點
-
網路抖動的預防
-
半同步外掛對於MHA的影響
-
自定義MHA指令碼
所以上面的方案多多少少都需要考慮,如果用下面的圖來表示,就會大體有如下的一些紅色警告。所以各個層面都會有可能存在問題和異常,如何儘可能不影響業務,保持業務科持續訪問是重中之重。
舉一個比較糾結的問題,如果MHA Manager節點到資料庫主庫的網路發生抖動,導致短時間不可訪問,我們是希望這個過程是不會做災難切換的,但是如果時間過長了,有2分鐘或者3分鐘都不可訪問,這個時候是切還是不切呢。這個時候資訊還是相對較少的,如果我們加入應用伺服器這個角色,如果應用伺服器是可訪問的,那麼就不切,如果應用訪問受到影響,那還是切吧。而且根據我們的測試,在MHA 0.56和0.57裡面還是有一些差別。測試了多套環境,測試了多個特性,結合起來才會發現對於MHA的考慮會更加全面,而換句話說,瞭解了原委,才能更好的掌握MHA,也才能看到更多的問題,來嘗試定製它,使得它更加滿足於當前的業務需求。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2146628/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL MHA高可用方案MySql
- MySQL高可用方案的一些思考MySql
- MySQL高可用方案MHA介紹MySql
- 【MHA】mysql高可用之MHAMySql
- Mysql 5.7 MHA 高可用MySql
- 基於 MHA 高可用的 MySQLMySql
- MySQL高可用方案MHA線上切換的步驟及原理MySql
- MySQL 同步複製及高可用方案總結MySql
- mysql高可用架構MHA搭建MySql架構
- mysql MHA 高可用架構部署MySql架構
- MySQL 實現高可用架構之 MHAMySql架構
- Mysql 高可用(MHA)-讀寫分離(Atlas)MySql
- MySQL高可用架構-MMM、MHA、MGR、PXCMySql架構
- MySQL高可用架構之MHA實踐MySql架構
- MHA+MySQL主從配置實現MySQL高可用MySql
- MHA高可用+VIP漂移
- 公司高可用性和升級的一些思考
- MySQL 高可用架構 - MHA環境部署記錄MySql架構
- MySQL高可用架構-MHA環境部署記錄MySql架構
- mysql mha 主從自動切換 高可用MySql
- mysql高可用架構MHA搭建(centos7+mysql5.7.28)MySql架構CentOS
- Oracle和MySQL的高可用方案對比(一)OracleMySql
- Oracle和MySQL的高可用方案對比(二)OracleMySql
- MySQL MMM高可用方案MySql
- 【DB寶19】MySQL高可用之MHA功能測試MySql
- MySQL高可用架構之MHA 原理與實踐MySql架構
- MySQL——MHA高可用群集部署及故障測試MySql
- MySQL高可用群集MHA部署及故障測試分析MySql
- 史上最全 Redis 高可用解決方案總結Redis
- MySQL高可用方案介紹MySql
- Mysql高可用架構方案MySql架構
- 構建MHA實現MySQL高可用叢集架構MySql架構
- 【DB寶19】在Docker中使用MySQL高可用之MHADockerMySql
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- MHA高可用架構的實現方式架構
- 關於DDD和COLA的一些總結和思考
- MySQL資料庫高可用方案MySql資料庫
- MySQL資料庫實現高可用架構之MHA的實戰MySql資料庫架構