MMM(Master-Master Replication Manage for MySQL,MySQL主主复制管理器)


MMM是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)


MMM的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql上,当某一台mysql宕机时,会将VIP迁移至其他mysql


mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行


mmm_agentd:运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行


mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令


MySQL-MMM高可用群集_第1张图片

实验环境:m1主服务器  CentOS7  ip地址192.168.199.130  vip192.168.199.140

                m2主服务器  CentOS7  ip地址192.168.199.136  

                s1从服务器    CentOS7  ip地址192.168.199.139  vip192.168.199.141

                s2从服务器    CentOS7  ip地址192.168.199.135  vip192.168.199.142

                monitor        CentOS7  ip地址192.168.199.134  


一、以下步骤在五台服务器上都要执行

MySQL-MMM高可用群集_第2张图片

2.png

MySQL-MMM高可用群集_第3张图片

MySQL-MMM高可用群集_第4张图片

5.png

6.png

#下载mariadb-server mariadb 和mysql-mmm软件包

7.png

#关闭所有服务器的防火墙和增强性安全功能


二、实现两台主服务器的主主复制

8.png

#配置mariadb的主配置文件

MySQL-MMM高可用群集_第5张图片

MySQL-MMM高可用群集_第6张图片

MySQL-MMM高可用群集_第7张图片

#将配置好的配置文件同步到另外三台数据库服务器上

12.png

13.png

#在两台主服务器上分别开放可以被访问权限

MySQL-MMM高可用群集_第8张图片

#将本台服务器作为第二台主服务器的从

MySQL-MMM高可用群集_第9张图片

MySQL-MMM高可用群集_第10张图片

#将第二台服务器作为第一台服务器的从

MySQL-MMM高可用群集_第11张图片

MySQL-MMM高可用群集_第12张图片

MySQL-MMM高可用群集_第13张图片

#在第二台服务器上可以看到第一台服务器上创建的库证明主主复制成功


二、实现两台从服务器与第一台从服务器的主从同步

MySQL-MMM高可用群集_第14张图片

#在进行同步之前首先要查看主服务器日志的状态信息,只有把这两个信息指明才可以实现主从同步

MySQL-MMM高可用群集_第15张图片

#开启第一台从服务器的同步功能

MySQL-MMM高可用群集_第16张图片

#查看第一台从服务器的同步状态

MySQL-MMM高可用群集_第17张图片

#在第二台从服务器上执行相同的操作

MySQL-MMM高可用群集_第18张图片

#在m1上创建一个库进行测试

MySQL-MMM高可用群集_第19张图片

MySQL-MMM高可用群集_第20张图片

MySQL-MMM高可用群集_第21张图片

#在另外三台都可以看到myschool这个数据库证明四台数据库同步成功


四、安装配置MySQL-MMM(在monitor服务器上操作)

28.png

#配置mmm_common.conf文件

MySQL-MMM高可用群集_第22张图片

#指定相应用户名和密码

MySQL-MMM高可用群集_第23张图片

#定义四台受监控的mariadb服务器

MySQL-MMM高可用群集_第24张图片

#定义主服务器和从服务器的虚拟IP

MySQL-MMM高可用群集_第25张图片

MySQL-MMM高可用群集_第26张图片

MySQL-MMM高可用群集_第27张图片

MySQL-MMM高可用群集_第28张图片

#将配置好的mmm_common.conf文件同步给四台mariadb服务器

36.png

#对mmm_mon.conf文件进行配置

MySQL-MMM高可用群集_第29张图片

#在该文件中指定所有受监控的服务器IP地址,同时要指明监控用户名和密码

001.jpg

#文件配置玩成后就可以在监控服务器上开启监控服务了

MySQL-MMM高可用群集_第30张图片

#在四台mariadb服务器上分别开放给‘mmm_agent’和“mmm_monitor”访问权限

MySQL-MMM高可用群集_第31张图片

MySQL-MMM高可用群集_第32张图片

MySQL-MMM高可用群集_第33张图片

MySQL-MMM高可用群集_第34张图片

#在四台服务器的mmm_agent.conf文件下分别指明每台服务器在监控服务器上所用的名称

01.jpg

#文件配置完成后就在四台服务器上开启mmm-agent服务


五、查看监听状态和故障测试

MySQL-MMM高可用群集_第35张图片

#在monitor服务器上执行mmm_control show 命令,查看四台服务器的监听状态

MySQL-MMM高可用群集_第36张图片

#这里的各个选项均显示为OK表示服务部署成功

48.png

49.png

MySQL-MMM高可用群集_第37张图片

#最后我假设有一台主服务器和从服务器宕机,再来查看monitor的监听状态,可以看到,主从服务器的虚拟IP都发生了转移,说明我的MMM服务部署成功