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

Microsoft Azure 部署 MySQL-MMM 高可用架構詳解(上)

     編輯:MySQL 綜合教學

Microsoft Azure 部署 MySQL-MMM 高可用架構詳解(上)

本文基於李珣博主的實戰經驗,詳細記錄在 Microsoft Azure 雲環境下部署 MySQL-MMM(Master-Master Replication Manager for MySQL)實現 MySQL 高可用的完整流程。

什麼是 MySQL-MMM?

MMM(Master-Master Replication Manager) 是一套用 Perl 編寫的腳本工具集,用於管理雙主復制拓撲。其核心特點:

  • 單寫入點保證: 任意時刻僅有一個節點接受寫入(Writer VIP),避免雙主衝突。
  • 讀負載均衡: 通過多個 Reader VIP 分發讀請求至兩個主節點及從節點。
  • 故障自動切換: 監控節點心跳、復制延遲,主庫故障時自動提升備庫為主、漂移 VIP。
  • 數據一致性工具: 內置備份、重新同步腳本。

項目源碼:Google Code | 官網:mysql-mmm.org

核心組件架構

進程角色部署位置
mmm_mond監控守護進程,決策節點狀態、故障切換獨立監控節點
mmm_agentd代理守護進程,提供 RPC 接口供監控端調用每台 MySQL 服務器
mmm_control命令行管理工具,控制 mmm_mond管理端

IP 地址規劃(雙主 + 一從 + 監控)

環境共 5 個 VIP,分層如下:

IP 類型數量用途漂移特性
固定 IP2各主節點固定管理 IP不漂移
Writer VIP1應用寫入入口主備之間漂移
Reader VIP2應用讀取入口主備之間漂移

正常狀態: Active Master 擁有 Writer + 1 Reader VIP;Standby Master 擁有 1 Reader VIP。
故障狀態: Active 故障時,所有 3 個 VIP 全部漂移至 Standby。

部署拓撲示例

角色IP主機名Server ID
Monitoring10.0.0.6monitor-
Master110.0.0.4db11
Master210.0.0.5db22
Slave110.0.0.7db33

業務 VIP:
Writer: 10.0.0.80 | Reader1: 10.0.0.90 | Reader2: 10.0.0.100

MMM部署架構圖

優缺點評估

  • 優點: 高可用性強、擴展性好、故障秒級自動切換、單寫入點保證數據一致性、支持讀負載均衡。
  • 缺點: Monitor 節點為單點故障(可結合 Keepalived 實現雙機熱備);配置相對複雜;僅支持傳統異步/半同步復制,不支持 GTID 新特性優化。

下篇預告

下篇將詳細講解:
1. Azure 環境下的網絡/安全組配置
2. MySQL 雙主復制參數調優
3. MMM 配置文件 mmm_common.conf 詳細參數解析
4. 故障演練與監控告警接入

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved