前言

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

MMM

优缺点

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

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

工作原理

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

实现过程

实验拓扑

#注:系统环境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

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

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配置

启动服务

查看当前状态

查看各节点VIP状态

高可用测试

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

再看db1的VIP状态

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

The end

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

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

  1. c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解

    1.系统环境架构 vip 192.168..45.244 mysql-1:192.168.45.238 mysql-2:192.168.45.239 2.mysql双主设置 192.168.45.23 ...

  2. 用haproxy结合keepalived实现基于LNMP的负载均衡和高可用

    今天我们讲haproxy结合keepalived实现LNMP的负载均衡和高可用,现在的公司大部分都基于haproxy实现负载均衡.下面以一个事例去给大家详细讲解如何去实现: 一.用haproxy结合k ...

  3. 路由器snmp配置_基于keepalived配置数据库主从实现高可用

    基于keepalived配置数据库主从实现高可用 使用keepalived来监听端口,实现数据库的高可用.实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后, ...

  4. 基于CentOS7,MySQL5.7的高可用MHA架构搭建实战

    基于CentOS7,MySQL5.7的高可用MHA架构搭建实战 MHA 架构搭建 一 .MHA架构 MHA(Master High Availability)是一套比较成熟的 MySQL 高可用方案, ...

  5. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案四)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  6. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案三)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  7. mysql主备模型_MySQL主从复制 - 基于二进制日志(理论篇)

    mysql日志类型 1    二进制日志 2    事务日志 3    一般查询日志 4    中继日志 5    慢查询日志 二进制日志 二进制日志通常记录的是可能潜在引起数据库发生改变的操作,每一 ...

  8. 盲源分离技术 matlab,基于ICA盲源分离的研究及matlab实现(毕业学术论文设计).doc...

    ********* 大 学 毕业设计(论文)任务书 毕业设计(论文)题目: 基于ICA盲源分离的研究及matlab实现 毕业设计(论文)要求及原始数据(资料): 论文要求: 查找盲源分离的现状及发展历 ...

  9. 基于linux下的 Pacemaker+Haproxy高可用负载均衡架构

    corosync + pacemaker + crmsh 高可用集群 corosync提供集群的信息层(messaging layer)的功能,传递心跳信息和集群事务信息,多台机器之间通过组播的方式监 ...

  10. 基于ISCSI共享存储的KVM高可用群集配置

    实验目的:运行的虚拟机可以在线平滑迁移,不会终端虚拟机运行的业务 高可用架构:pacemaker+corosync 并由pcs进行管理 系统环境:三台机器都是最新的centos7.4 所需组件: DL ...

最新文章

  1. 计算机机房用户不规则行为,网络及网管机房管理理论练习
  2. statusbar 尺寸 显示图标_移动端页面设计规范尺寸大起底 - 椰树飘香
  3. 微拍堂推出“正义联盟计划” 助力文玩行业高质量发展
  4. 使用yield返回IEnumberT集合
  5. oracle创建参数文件,Oracle的参数文件
  6. 机器学习工具在数据中心的应用与发展
  7. .net登录界面_JAVA实现简单的用户登录客户端
  8. myBatis + SpringMVC上传、下载文件
  9. 软件需求说明书/ 概要设计说明书/项目开发计划/详细设计说明书模版(说明要点及要点解释)
  10. 手持式自动锁螺丝机怎么操作使用
  11. jsBarCode生成条码并且打印的问题
  12. ChromeOptions--禁止加载图片
  13. 统计学简介之十六——单因素方差分析
  14. 展示一下用thinker做小软件的UI
  15. 【Linux 网络】IP校验和计算相关
  16. 涨握在线|马云接班人;外资取限;iPhone后继有人
  17. 方法参数中pass by reference(传引用)和 pass by value(传值)的区别
  18. pygame系列_百度随心听_完美的UI设计
  19. NLP知识包--语义分析智能问答工具
  20. 2005年通信热点载录

热门文章

  1. python基础之模块
  2. dlna投屏显示服务器没互动,Dlna投屏
  3. android 点赞 1,Android自定义FloatingText仿点赞+1特效
  4. linux双线双网卡双ip双网关设置方法,Linux双线双网卡双IP双网关设置方法
  5. 服务器文件安全扫描,服务器安全扫描工具
  6. cad重新加载php命令,cad撤回命令是什么
  7. 小白都能学会的Python基础 第一讲:Python初了解
  8. Vue实现 侧边固定定位图标 滑动隐藏
  9. 手机上不了电信宽带连接服务器无响应怎么办,当网页都打不开该怎么办?
  10. 1.17英文题面翻译