mysql mmm 读写分离_MySQL/MariaDB基于MMM实现读写分离及高可用

前言

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

MMM

优缺点

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

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

工作原理

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

实现过程

实验拓扑

format,png

#注:系统环境CentOS6.6

#VIP172.16.10.30为可写VIP,其他三组为可读VIP

#可写VIP只能在Master之间切换,可读VIP可在Master和Slave之间切换

#前端应用可连接任意可读VIP进行数据读取,连接可写VIP进行数据写入

双主一从配置

DB1配置

[root@node1 ~]# vim /etc/mysql/my.cnf

datadir = /mydata/data

log-bin=/mydata/binlogs/master-bin       #二进制文件位置

relay-log=/mydata/relaylogs/relay-bin   #中继日志位置

binlog_format=mixed

server-id      = 1

auto_increment_offset=1       #双主复制中自增长字段的起始值

auto_increment_increment=2    #双主复制中自增长字段的步长

log_slave_updates = 1       #开启从库更新操作写入二进制日志功能

sync_binlog = 1              #可保证事务日志及时写入磁盘文件

skip-name-resolve              #禁用DNS反向解析,如不写此项,则需要在各节点基于主机名通信

read_only       = 1

[root@node1 ~]# service mysqld start

授权可用复制用户记录二进制日志位置

format,png

DB2配置

[root@node2 ~]# vim /etc/mysql/my.cnf

datadir = /mydata/data

log-bin=/mydata/binlogs/master-bin

relay-log=/mydata/relaylogs/relay-bin

binlog_format=mixed

server-id       = 11

auto_increment_offset=2

auto_increment_increment=2

log_slave_updates = 1

sync_binlog = 1

skip-name-resolve

read_only       = 1

[root@node2 ~]# service mysqld start

授权可用复制用户记录二进制日志位置

#因为实验之前都做了完整初始化,这里二进制文件位置一致

DB3配置

[root@scholar ~]# vim /etc/mysql/my.cnf

datadir = /mydata/data

relay-log=/mydata/relaylogs/relay-bin

server-id       = 111

read_only       = 1

skip-name-resolve

[root@scholar ~]# service mysqld start

连接各服务器

DB1连接DB2

DB2连接DB1

DB3连接DB1

主从测试

数据一致,主从复制部分完成

MMM配置

安装所需程序包

授权监控及代理用户

Monitor配置

DB1-DB3配置

68bb2c324f24458f5505619166515dbb.png

启动服务

format,png

查看当前状态

format,png

查看各节点VIP状态

format,png

format,png

高可用测试

模拟db1故障,查看节点状态

format,png

再看db1的VIP状态

format,png

VIP已被转移到其他节点,其他方面有兴趣请自行测试,这里就不一一展示了

The end

MySQL/MariaDB基于MMM实现读写分离及高可用实验就先说到这里了,有兴趣的朋友可以继续探究基于Keepalived实现Monitor的高可用,这里就不做深究了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值