MySQL 高可用集群之 MySQL-MMM
一、環境簡述
1、工作邏輯圖
2、MySQL-MMM 優缺點
- 優點:高可用性,擴展性好,出現故障自動切換,對于主主同步,在同一時間只提供一臺數據庫寫操作,保證的數據的一致性。
- 缺點:Monitor節點是單點,可以結合Keepalived實現高可用。 </ul>
- mmm_mond:監控進程,負責所有的監控工作,決定和處理所有節點角色活動。此腳本需要在監管機上運行。
- mmm_agentd:運行在每個mysql服務器上的代理進程,完成監控的探針工作和執行簡單的遠端服務設置。此腳本需要在被監管機上運行。
- mmm_control:一個簡單的腳本,提供管理mmm_mond進程的命令。 </ul>
- 操作系統:CentOS 6.5_X64
- 數據庫:MySQL 5.1
- MMM:MySQL-MMM 2.2.1 </ul>
3、MySQL-MMM工作原理
MMM(Master-Master replication managerfor Mysql , Mysql 主主復制管理器 ) 是一套靈活的腳本程序,基于 perl 實現,用來對 mysql replication 進行監控和故障遷移,并能管理 mysql Master-Master 復制的配置 ( 同一時間只有一個節點是可寫的 ) 。
mysql-mmm 的監管端會提供多個虛擬IP(VIP),包括一個可寫VIP,多個可讀VIP,通過監管的管理,這些IP會綁定在可用mysql之上,當某一臺mysql宕機時,監管會將VIP遷移至其他mysql。
在整個監管過程中,需要在mysql中添加相關授權用戶,以便讓mysql可以支持監理機的維護。授權的用戶包括一個mmm_monitor用戶和一個mmm_agent用戶,如果想使用mmm的備份工具則還要添加一個mmm_tools用戶。
4、需求描述
數據庫分配:
function | ip | hostname | server id | </tr>|||||||||||||||||||||||||||||||||||||||
monitoring host | 192.168.0.201 | monitor | 無 | </tr>|||||||||||||||||||||||||||||||||||||||
master 1 | 192.168.0.202 | db1 | 1 | </tr>|||||||||||||||||||||||||||||||||||||||
master 2 | 192.168.0.203 | db2 | 2 | </tr>|||||||||||||||||||||||||||||||||||||||
slave 1 | 192.168.0.204 | db3 | 3 | </tr>|||||||||||||||||||||||||||||||||||||||
slave 2 | 192.168.0.205 | db4 | 4 | </tr> </tbody> </table>
ip | role | </tr>|||||||||||||||||||||||||||||||
192.168.0.211 | writer | </tr>|||||||||||||||||||||||||||||||
192.168.0.212 | reader | </tr>|||||||||||||||||||||||||||||||
192.168.0.213 | reader | </tr> </tbody> </table>
function | description | privileges | </tr>|||||||||||||||||||
monitor user | mmm 監控用于對mysql服務器進程健康檢查 | REPLICATION CLIENT | </tr>|||||||||||||||||||
agent user | mmm 代理用來更改只讀模式,復制的主服務器等 | SUPER, REPLICATION CLIENT, PROCESS | </tr>|||||||||||||||||||
replication user | 用于復制 | REPLICATION SLAVE | </tr> </tbody> </table>