MMM高可用MySQL方案

集群环境

Monitor Centos7.2 192.168.1.88 MMM管理端
Master1 Centos7.2 192.168.1.1 主Master可读,可写
Master2 Centos7.2 192.168.1.2 备Master可读,可写
Slave1 Centos7.2 192.168.1.3 Slave节点,只读
Slave2 Centos7.2 192.168.1.4 Slave节点,只读

虚拟IP

192.168.1.10 writer IP 写入VIP
192.168.1.20 reader IP 读取VIP
192.168.1.30 reader IP 读取VIP
192.168.1.40 reader IP 读取VIP

操作步骤

1.做时间同步
2.Master1与Master2,互为主从进行复制
3.Master1与Slave1与Slave2,进行主从复制
4.Master2与Slave1与Slave2,进行主从复制
(创建的复制账户需要一致账号: replication 密码: replication)

MMM的安装与配置

  1. 安装epel源
    yum -y install epel-release

  2. 在Mnoitor管理节点上安装mysql-mmm-monitor
    yum -y install install mysql-mmm-monitor

  3. 在每一个Mysql节点上安装mysql-mmm-agent
    yum -y install mysql-mmm-agent

MMM集群套件的配置

  1. 在所有mysql节点上的配置文件[mysql]段添加以下内容,并重启服务
vim /etc/my.cnf
[mysql]
read_only=1       对所有非临时表进行只读控制
wq!

systemctl restart mariadb
  1. 在所有Mysql节点上创建MMM的两个账号
mmm_monitor     对所有mysql节点进行健康检查
mmm_agent       切换只读模式和同步Master信息
mysql -u -p 
12345
mariadb> grant peplication client on *.* to 'mmm_monitor'@'192.168.1.%' identified by 'passwd';
mariadb>grant super, replication client, process on *.* to 'mmm_agent'@'192.168.1.%' identified by 'passwd';
  1. 修改mmm_common.conf(5台相同)
vim /etc/mysql-mmm/mmm_common.conf
active_master_role      writer
<host default>
    cluster_interface       ens33
    pid_path               /var/run/mysql-mmm/mmm_agentd.pid
    bin_path                /usr/libexec/mysql-mmm/
    replication_user        replication
    replication_password    replication
    agent_user              mmm_agent
    agent_password         passwd
</host>
<host db1>
    ip     192.168.1.1
    mode   master
    peer   db2
</host>
<host db2>
    ip     192.168.1.2
    mode   master
    peer   db1
</host>
<host db3>
    ip     192.168.1.3
    mode   slave
</host>
<host db4>
    ip     192.168.1.4
    mode   slave
</host>
<role writer>
    hosts  db1, db2
    ips    192.168.1.100
    mode   exclusive    #只有一个host可以writer,一般写操作是这个模式
</role>
<role reader>
    hosts  db3, db4
    ips    192.168.1.200,192.168.1.300
    mode   balanced     #多个host可以reader,一般读操作是这个模式
</role>
  1. 修改4台Mysql节点上的mmm_agent.conf文件
vim /etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this db1                                             (其他上分别为db2 , db3 ,  db4)
  1. 在管理节点上修改配置mmm_mon.conf
vim /etc/mysql-mmm/mmm_mon.conf
include mmm_common.conf
<monitor>
    ip                  127.0.0.1
    pid_path            /var/run/mysql-mmm/mmm_mond.pid
    bin_path            /usr/libexec/mysql-mmm
    status_path         /var/lib/mysql-mmm/mmm_mond.status
    ping_ips           192.168.1.1, 192.168.1.2, 192.168.1.3, 192.168.1.4    
#真实数据库IP,来检测网络是否正常
    auto_set_online     10  #恢复后自动设置在线的时间
</monitor>
<host default>
    monitor_user        mmm_monitor
    monitor_password   passwd
</host>
debug 0
  1. 启动MMM集群服务
在管理节点
/etc/init.d/mysql-mmm-monitor   {start|stop|restart|condrestart|status}

在agent节点
/etc/init.d/mysql-mmm-agent  {start|stop|restart|condrestart|status}

MMM集群日常维护
查看MMM集群运行状态
mmm_control show

查看集群节点的运行状态
mmm_control checks all

查看某个节点的运行状态
mmm_control checks db1

推荐阅读更多精彩内容