简介
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。
MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。对于那些对数据的一致性要求很高的业务,非常不建议采用MMM这种高可用架构。
实验拓扑图
实验目标
搭建mysql高可用群集
实验环境
在5台服务器上关闭防火墙,安全性
setenforce 0
systemctl stop firewalld.service
实验步骤
一、master01、master02、slave01、slave02、monitor 5台mysql服务器配置
1.配置all云源(yum源)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo`
2.配置epel源(最新版本)
yum -y install epel-release
3.加载元数据缓存
yum clean all && yum makecache`
4.安装mariadb数据库和mysql-mmm软件包
yum install mariadb-sever mariadb mysql-mmm* -y
5.修改mariadb数据库主配置文件
vim /etc/my.cnf
[mysqld]
log_error=/var/lib/mysql/mysql.err #错误日志
log=/var/lib/mysql/mysql_log.log #访问日志
log_slow_queries=/var/lib/mysql_slow_queris.log #慢日志
binlog-ignore-db=mysql,information_schema #不生成二进制日志文件
ch