MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。
优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。
master1 ip地址:192.168.60.135
master2 ip地址:192.168.60.136
slave1 ip地址:192.168.60.143
slave2 ip地址:192.168.60.144
monitor ip地址:192.168.60.130
mysql版本为mariadb,使用yum直接安装用于实验
一、所有主机配置yum源
1、配置ALI云源
wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2、安装epel-release源
yum install epel-release -y
yum clean all & yum makecache
3、yum一键安装mariadb
yum install mariadb mariadb-server -y
4、修改配置文件
vim /etc/my.cnf
[mysqld]
log_error=/usr/local/mysql/data/mysql.err
log_slow_queries=/usr/local/data/mysql_slow_queris.log
log=/usr/local/mysql/data/mysql_log.log
binlog_ignore-db=mysql,information_schema
character_set_server=utf8
log_slave_updates=true
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
log_bin=mysql-bin
server-id = 1 (每台的主机server-id不能相同)
5、启动mariadb
systemctl restart mariadb.service
二、主主复制
1、两台主服务器查看二进制文件以及偏移量
MariaDB [(none)]> show master status;
2、两台主服务器都需要授权
grant replication slave on . to 'replication'@'192.168.60.%' identified by '123456';
3、两台主服务器互相设置主(对应之前查看的二进制日志,以及偏移量)
change master to master_host='192.168.60.136',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;
change master to master_host='192.168.60.135',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;
show slave status; 查看slave状态
三、主从复制
1、查看任意一台主服务器的master状态
2、从服务器进行主从复制
change master to master_host='192.168.60.135',master_user='replication',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=575;
3、查看状态
三、每台服务器都安装mysql-mmm*
1、yum安装
yum install mysqsl-mmm*
2、对mmm进行配置
vim /etc/mysql-mmm/mmm_common.conf
3、将配置覆盖给每台主机
scp mmm_common.conf root@192.168.60.136:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.60.143:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.60.144:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.60.130:/etc/mysql-mmm/
四、监控服务器
1、修改配置文件
2、每天mysql主机给代理用户,监控用户授权
grant super,replication client,process on . to 'mmm_agent'@'192.168.60.%' identified by '123456';
grant replication client on . to 'mmm_monitor'@'192.168.60.%' identified by '123456';
flush privileges;
3、每台mysql主机修改各自身份
vim /etc/mysql-mmm/mmm_agent.conf
主1 db1
主2 db2
从1 db3
从2 db4
4、mysql服务器开启代理服务
systemctl start mysql-mmm-agent.service
5、监控服务器开启监控服务
systemctl start mysql-mmm-monitor.service
6、监控服务器查看各监控点状态
mmm_control show
7、在有虚拟IP的那台主机上授权登陆用户
8、关掉一台主机的mysql服务,看虚拟地址会不会移动
9、再关掉一台从服务器,看虚拟IP移动
end~