1. 简介
- MMM(Master-Master replication manager for Mysql)是一套支持双主故障切换和双主日常管理的脚本程序。
- MMM是使用perl语言进行开发,主要用来管理Mysql Master-Master(双主复制)。
- 双主复制:虽然是双主,但业务上只能同时对一个主进行写入,另一台为备选主,平时提供部分读服务,当写入主出现故障时,则会自动切换到这个主进行写入。
- MMM不仅实现了,双主故障切换的功能,内部附加组件还可以实现多个slave的read负载均衡。
- MMM提供了手动和自动两种方式来移除一组服务器中复制延迟较高的服务器的虚拟ip。
- MMM同时可以实现数据备份的功能,实现两节点的数据同步。
- MMM无法保证数据一致性,所以它适用于数据一致性不太严的场景。
- 对于要求数据一致性非常高的应用,不建议采用MMM架构。
2. 网址
- MMM项目来自于Google:http://code.google.com/p/mysql-master-master
- 官方网址为:http://mysql-mmm.org
3. 具体配置
1. 主机角色和IP配置,这里注意,虚拟IP尽量要和主机IP在同一个网段,不然可能会ping不通虚拟IP
角色 | IP地址 | 虚拟IP | 主机名字 | server-id | 读写操作 |
---|---|---|---|---|---|
monitoring | 192.168.111.128 | 192.168.111.10 | db2 | ||
master1 | 192.168.111.128 | 192.168.111.10 | db1 | 1 | write |
master2 | 192.168.111.129 | 192.168.111.20 | db2 | 2 | read |
slave1 | 192.168.111.130 | 192.168.111.30 | db3 | 3 | read |
2.主机配置,配置/etc/hosts,在所有主机中,添加所有主机信息:
root@localhost two]# cat /etc/hosts
192.168.111.128 db1
192.168.111.129 db2
192.168.111.130 db3
[root@localhost two]#
3. 在三台主机上安装mysql和主从复制,db1和db2互为主从,db3为db1的从
db1配置如下
[mysqld]
server-id=1
log_slave_updates=1
auto-increment-increment=2
auto-increment-offset=1
binlog-do-db=myblog
log-bin=mysql-bin
db2配置如下
[mysqld]
server-id=2
binlog-do-db=myblog
log_slave_updates=1
auto-increment-increment=2
auto-increment-offset=2
log-bin=mysql-bin
db3配置如下:
[mysqld]
server-id=3
4. 安装MMM所需要的perl模块,所有的主机都要安装,命令如下
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install mysql-mmm*
5. 下载mysql-mmm软装,在所有主机上安装,在所有主机上执行如下命令
wget http://mysql-mmm.org/_media/:mmm2:mysql-mmm-2.2.1.tar.gz
mv :mmm2:mysql-mmm-2.2.1.tar.gz mysql-mmm-2.2.1.tar.gz
tar xf mysql-mmm-2.2.1.tar.gz
cd mysql-mmm-2.2.1
make install
6. mysql-mmm安装后的主要拓扑结构如下所示(注意:yum安装的和源码安装的路径有所区别):
目录 | 介绍
————————————–|——————————————————-
/usr/lib/perl5/vendor_perl/5.8.8/MMM | MMM使用的主要perl模块
/usr/lib/mysql-mmm | MMM使用的主要脚本
/usr/sbin | MMM使用的主要命令的路径
/etc/init.d/ | MMM的agent和monitor启动服务的目录
/etc/mysql-mmm | MMM配置文件的路径,默认所以的配置文件位于该目录下
/var/log/mysql-mmm | 默认的MMM保存日志的位置
到这里MMM已经安装完成,接下来就是要配置MMM了,其中mmm_common.conf和mmm_agent.conf为agent端的配置文件。
mmm_mon.conf为monitor端的配置文件。
7. 配置agent端的配置文件,要在db1,db2,db3分别配置。
在db1上配置agent配置文件如下:
[root@localhost sbin]# cd /etc/mysql-mmm
[root@localhost mysql-mmm]# cat mmm_common.conf
active_master_role writer
<host default>
cluster_interface eth0
pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/
replication_user repl
replication_password 123456
agent_user mmm_agent
agent_password mmm_agent
</host>
<host db1>
ip 192.168.111.128
mode master
peer db2
</host>
<host db2>
ip 192.168.111.129
mode master
peer db1
</host>
<host db3>
ip 192.168.111.130
mode slave
</host>
<role