MySQL-MMM实现MySQL高可用

1、工作逻辑图

2、MySQL-MMM优缺点

优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。

缺点:Monitor节点是单点,可以结合Keepalived实现高可用。

3、MySQL-MMM工作原理

MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。

mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。

mmm_agentd:运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。

mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令。

mysql-mmm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql之上,当某一台mysql宕机时,监管会将VIP迁移至其他mysql。

在整个监管过程中,需要在mysql中添加相关授权用户,以便让mysql可以支持监理机的维护。授权的用户包括一个mmm_monitor用户和一个mmm_agent用户,如果想使用mmm的备份工具则还要添加一个mmm_tools用户。

4、需求描述

操作系统:CentOS 7.0_X64

数据库:MySQL 5.6

MMM:MySQL-MMM 2.2.1

     5. 相关配置

       db_monitor_1 下的配置
       vim /etc/mysql-mmm/mmm_mon.conf

内容

include mmm_common.conf

<monitor>
ip 127.0.0.1
pid_path /var/run/mmm_mond.pid
bin_path /usr/lib/mysql-mmm/
status_path /var/lib/misc/mmm_mond.status
ping_ips 192.168.1.181, 192.168.1.182, 192.168.1.183, 192.168.1.184, 192.168.1.185, 192.168.1.86, 192.168.1.87, 192.168.1.88, 192.168.1.89

#Description: Default mode of monitor.
mode active

auto_set_online 10
</monitor>

<host default>
monitor_user mmm_monitor
monitor_password 9*xiang@123
</host>

debug 0

    vim /etc/mysql-mmm/mmm_common.conf

内容

active_master_role writer
<host default>
cluster_interface eno16777984

pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/

replication_user replication
replication_password 9*xiang@123

agent_user mmm_agent
agent_password 9*xiang@123
</host>

<host db1>
ip 192.168.1.181
mode master
peer db2
</host>

<host db2>
ip 192.168.1.182
mode master
peer db1
</host>

<host db3>
ip 192.168.1.183
mode slave
</host>

<host db4>
ip 192.168.1.184
mode slave
</host>

<host db5>
ip 192.168.1.185
mode slave
</host>

<role writer>
hosts db1, db2
ips 192.168.1.89
mode exclusive
</role>

<role reader>
hosts db3, db4, db5
ips 192.168.1.86, 192.168.1.87, 192.168.1.88
mode balanced
</role>

db_monitor_1下的相关命令

相关命令

systemctl start mysql-mmm-monitor.service
systemctl stop mysql-mmm-monitor.service

/etc/init.d/mysql-mmm-monitor start(不再使用)
mmm_control show

数据库分配:

你可能感兴趣的:(version,target,blank)