MMM(Master-Master replication manager for MySQL)
是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。
优点:
- 使用Perl脚本语言开发及完全开源
- 提供了读写VIP(虚拟IP),使服务器角色的变更对前端应用透明
- MMM提供了从服务器的延迟监控
- MMM提供了主数据库故障转移后从服务器对新主的重新同步功能
- 很容易对发生故障的主数据库重新上线
缺点:
- 发布时间比较早不支持MySQL新的复制功能(基于GTID的复制)
- 没有读负载均衡的功能
- 在进行主从切换时,容易造成数据丢失
- MMM监控服务存在单点故障