首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MMM vs MHA:大眾點評 MySQL 高可用架構選型與踩坑實錄

     編輯:MySQL 綜合教學

為什麼需要 HA 方案?

  • Master 宕機(硬體故障、OS 崩潰)。
  • Master 維護(大表 DDL、記憶體更換等物理操作)。

無工具手動切換流程(痛點)

  1. 告警通知 DBA。
  2. 確認並 Kill 舊 Master。
  3. 從 Slave 中找最新資料節點作候選 Master。
  4. 各 Slave 執行 CHANGE MASTER TO 指向新 Master。
  5. 修改應用配置指向新 Master IP 並重啟。

全流程耗時長、人為失誤率高、不可接受。

MMM (Master-Master Replication Manager) 在點評的應用與坑

  • 雙 Master 互為備援,VIP 漂移實現故障轉移。
  • 踩過的坑:mmm_monitor 誤判導致 VIP 震盪、複製延遲檢測閾值難調、寫入衝突處理機制弱、網路分區時腦裂風險。
  • 填坑手段:加強監控邏輯、引入外部仲裁、限制雙寫業務、完善故障演練。

MHA (Master High Availability) 引入與優勢

  • 單 Master 多 Slave 架構,自動故障轉移(通常 10-30 秒)。
  • 核心優勢:基於 Relay Log 差異補全、支援線上切換、對應用透明、Perl 實現輕量易擴展。
  • 點評改進:整合 CMDB 自動發現拓撲、加入備庫延遲強制檢查、切換前自動備份 Binlog、切換後自動驗證資料一致性。

選型抉擇

點評最終選擇 MHA 作為主流 HA 方案,MMM 逐步淘汰。

資源連結

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
維度MMMMHA
架構模式雙 Master 互備單 Master 多 Slave
故障轉移速度秒級,但易震盪10-30s,穩定
資料一致性保障弱(非同步雙寫)強(Binlog 補全)
運維複雜度高(需管理 VIP、雙寫)中(Manager + Agent)
適用場景極少寫衝突、可容忍短暫不一致強一致性要求、標準化運維