简介:MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。
操作环境:五台Linux(CentOS7)虚拟机:两台主服务器,两台从服务器,一台监控服务器。
具体操作步骤:
五台虚拟机分配IP:同网段
因为要在线安装软件包,所以模式都设置为NAT模式;
首先配置阿里云源,安装epel源(所有机器都要装)
安装完源以后清空之前的,重新设置
安装mariadb
编辑配置文件
删除原有【mysqld】文件插入
[mysqld]
log_error=/var/lib/mysql/mysql.err
log=/var/lib/mysql/mysql_log.log
log_slow_queries=var/lib/mysql/mysql_slow_queris.log
binlog-ignore-db=mysql,information_schema
character_set_server=utf8
log_bin=mysql_bin
server_id=1
log_slave_updates=true
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
后面几台同步操作(server_id这里不能一样其他相同)
关闭防火墙开启mariadb,直接mysql登录mariadb
在主1服务器上查看master状态(mysql_bin.000003 245 必须注意)
在两台主服务器上提权
开启slave
mmm群集脚本:
主服务器1 192.168.120.128 db1 vip:192.168.120.200
主服务器2 192.168.120.129 db2
从服务器1 192.168.120.130 db3 vip:192.168.120.210
从服务器2 192.168.120.131 db4 192.168.120.220
监控服务器 192.168.120.132
=======================================
四台同装 //下载阿里云源yum配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release -y //安装epel源
yum clean all && yum makecache //清空所有,重新设置数据缓存
yum install mariadb-server mariadb -y //安装mariadb
vim /etc/my.cnf
删除原有【mysqld】文件插入
[mysqld]
log_error=/var/lib/mysql/mysql.err
log=/var/lib/mysql/mysql_log.log
log_slow_queries=var/lib/mysql/mysql_slow_queris.log
binlog-ignore-db=mysql,information_schema
character_set_server=utf8
log_bin=mysql_bin
server_id=1
log_slave_updates=true
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
关闭防火墙
systemctl stop firewalld.service
setenforce 0
开启服务
systemctl start mariadb.service
可以登录mysql
授权(两台主上)
grant replication slave on . to 'replication'@'192.168.120.%' identified by '123456';
change master to master_host='192.168.120.128',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=245;
开启同步
start slave;
查看状态
show slave status\G;
从服务器上
change master to master_host='192.168.120.128',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=245;
开启同步
start slave;
查看状态
show slave status\G;
=================安装mmm======================
四台同装
yum install mysql-mmm* -y
cd /etc/mysql-mmm/
vim mmm_common.conf
修改
(网卡名称改成ens33)
4 cluster_interface ens33 (网卡名称改成ens33)
5 pid_path /run/mysql-mmm-agent.pid
6 bin_path /usr/libexec/mysql-mmm/
7 replication_user replication (名称)
8 replication_password 123456 (密码)
9 agent_user mmm_agent
10 agent_password 123456 (代理密码)
13
14 ip 192.168.120.128 主1IP
15 mode master
16 peer db2
17
18
19
20 ip 192.168.120.129 主2IP
21 mode master
22 peer db1
23
24
25
26 ip 192.168.120.130 从1IP
27 mode slave
28
29
30
31 ip 192.168.120.131 从2IP
32 mode slave
33
34
35 虚拟用户
36 hosts db1, db2
37 ips 192.168.120.200 200
38 mode exclusive
39 要同网段
40
41
42 hosts db3, db4
43 ips 192.168.120.210, 192.168.120.220 210,220用户
44 mode balanced
45
4 cluster_interface ens33 (网卡名称改成ens33)
5 pid_path /run/mysql-mmm-agent.pid
6 bin_path /usr/libexec/mysql-mmm/
7 replication_user replication (名称)
8 replication_password 123456 (密码)
9 agent_user mmm_agent
10 agent_password 123456 (代理密码)
13
14 ip 192.168.120.128 主1IP
15 mode master
16 peer db2
17
18
19
20 ip 192.168.120.129 主2IP
21 mode master
22 peer db1
23
24
25
26 ip 192.168.120.130 从1IP
27 mode slave
28
29
30
31 ip 192.168.120.131 从2IP
32 mode slave
33
34
35
36 hosts db1, db2
37 ips 192.168.120.200 200
38 mode exclusive
39
40
41
42 hosts db3, db4
43 ips 192.168.120.210, 192.168.120.220 210,220用户
44 mode balanced
45
在主1上(远程复制功能)
scp mmm_common.conf [email protected]:/etc/mysql-mmm/
scp mmm_common.conf [email protected]:/etc/mysql-mmm/
scp mmm_common.conf [email protected]:/etc/mysql-mmm/
监控服务器安装好mmm后
cd /etc/mysql-mmm/
vim mmm_mon.conf
修改
8 ping_ips 192.168.120.128,192.168.120.129,192.168.120.130,192.168.120.131
9 auto_set_online 10 //10秒自动上线
21 monitor_password 123456
----------------------------在四台服务器上为mmm agent授权-----
//授权代理mmm_agent
grant super, replication client, process on . to 'mmm_agent'@'192.168.120.%' identified by '123456';
//监控授权mmm_monitor
grant replication client on . to 'mmm_monitor'@'192.168.120.%' identified by '123456';
flush privileges; //刷新
vim mmm_agent.conf
修改四台
this db1
this db2
this db3
this db4
----------------------------在所有数据库服务器上启动mysql-mmm-agent---------
四台
systemctl start mysql-mmm-agent.service 开启服务
systemctl enable mysql-mmm-agent.service 开机自启动
systemctl start mysql-mmm-monitor.service 监控上开启
mmm_control show 监控上查看四台服务器状态
显示
db1(192.168.120.128) master/ONLINE. Roles: writer(192.168.120.200)
db2(192.168.120.129) master/ONLINE. Roles:
db3(192.168.120.130) slave/ONLINE. Roles: reader(192.168.120.210)
db4(192.168.120.131) slave/ONLINE. Roles: reader(192.168.120.220)
切换
mmm_control move_role writer db2
mmm_control checks all //需要全部ok
-----------------------------------故障检测------------------------------------
systemctl stop mariadb.service //关闭主1mariadb
mmm_control show //监控那台查看(自动会切第二台)
在四台服务器上为监控机地址授权登录
grant all on . to 'testdba'@'192.168.120.132' identified by '123456';
flush privileges; //刷新
-----------------在监控服务器上-------------------------
mysql -utestdba -p -h 192.168.120.200 //直接登录访问