MySQL-MMM实现MySQL高可用
一、环境简述
1、工作逻辑图
2、MySQL-MMM优缺点
优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。
缺点:Monitor节点是单点,可以结合Keepalived实现高可用。
3、MySQL-MMM工作原理
MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。
mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。
mmm_agentd:运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。
mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令。
mysql-mmm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql之上,当某一台mysql宕机时,监管会将VIP迁移至其他mysql。
在整个监管过程中,需要在mysql中添加相关授权用户,以便让mysql可以支持监理机的维护。授权的用户包括一个mmm_monitor用户和一个mmm_agent用户,如果想使用mmm的备份工具则还要添加一个mmm_tools用户。
4、需求描述
操作系统:CentOS 6.5_X64
数据库:MySQL 5.1
MMM:MySQL-MMM 2.2.1
数据库分配:
function | ip | hostname | server id |
monitoring host | 192.168.0.201 | monitor | 无 |
master 1 | 192.168.0.202 | db1 | 1 |
master 2 | 192.168.0.203 | db2 | 2 |
slave 1 | 192.168.0.204 | db3 | 3 |
slave 2 | 192.168.0.205 | db4 | 4 |
虚拟IP地址(VIP):
ip | role |
192.168.0.211 | writer |
192.168.0.212 | reader |
192.168.0.213 | reader |
数据库同步需要的用户:
function | description | privileges |
monitor user | mmm监控用于对mysql服务器进程健康检查 | REPLICATION CLIENT |
agent user | mmm代理用来更改只读模式,复制的主服务器等 | SUPER, REPLICATION CLIENT, PROCESS |
replication user | 用于复制 | REPLICATION SLAVE |