mysql MMM详解
master-master monitor(MMM)
一、MMM简介
MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。官网安装步骤:http://mysql-mmm.org/mmm2:guide下载地址:http://mysql-mmm.org/downloads
二、MMM基本构架及实现原理
主要的思想还是主从复制,然后再多设置一个master来备用。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用户。
三、MMM的优缺点
优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。
缺点:Monitor节点是单点,可以结合Keepalived实现高可用。
MMM安装
一、安装准备工作
服务器:
服务器 | IP | 作用 | 备注 |
---|---|---|---|
DB1 | 192.168.1.238 | master | |
DB2 | 192.168.1.239 | 备用master | |
DB3 | 192.168.1.13 | slave | |
monitor | 192.168.1.238 | slave | 测试用所以放在master上 |
ips:192.168.1.5(写)、192.168.1.10(读)
系统:centos6.5
二、安装Mysql
略
三、配置复制
配置DB1与DB2进行主主复制。
配置DB1(master)与DB3(slave)进行主从复制。
详情请参考:http://blog.csdn.net/hubo890224/article/details/50010143
四、配置用户
每个数据库上都需要三个用户:
function | description | privileges |
---|---|---|
monitor user | used by the mmm monitor to check the health of the MySQL servers | REPLICATION CLIENT |
agent user | used by the mmm agent to change read-only mode, replication master, etc. | SUPER, REPLICATION CLIENT, PROCESS |
replication user | used for replication | REPLICATION SLAVE |
GRANT REPLICATION CLIENT ON . TO ‘mmm_monitor’@’192.168.1.%’ IDENTIFIED BY ‘monitor_password’;
GRANT SUPER, REPLICATION CLIENT, PROCESS ON . TO ‘mmm_agent’@’192.168.1.%’ IDENTIFIED BY ‘agent_password’;
GRANT REPLICATION SLAVE ON . TO
‘replication’@’192.168.1.%’ IDENTIFIED BY ‘replication_password’;
五、安装MMM
用yum安装时需要epel源,安装配置方法:
http://blog.csdn.net/hubo890224/article/details/50008201
1、DB1、DB2、DB3安装mysql-MMM-agent
yum install -y mysql-mmm-agent
2、monitor安装mysql-mmm-monitor
yum -y install mysql-mmm-monitor
六、配置MMM
1、配置DB1、DB2、DB3、monitor中的 /etc/mysql-mmm/mmm_common.conf
active_master_role writer<host default>cluster_interface eth0pid_path /var/run/mmmd_agent.pidbin_path /usr/lib/mysql-mmm/replication_user replicationreplication_password replication_passwordagent_user mmm_agentagent_password agent_password
</host><host db1>ip 192.168.1.238mode masterpeer db2
</host><host db2>ip 192.168.1.239mode masterpeer db1
</host><host db3>ip 192.168.1.13mode slave
</host>#<host db4>
# ip 192.168.1.14
# mode slave
#</host><role writer>hosts db1, db2ips 192.168.1.5mode exclusive
</role><role reader>hosts db3ips 192.168.1.10mode balanced
</role>
2、分别配置DB1、DB2、DB3中的 /etc/mysql-mmm/mmm_agent.conf
DB1:
include mmm_common.conf
this db1
DB2:
include mmm_common.conf
this db2
DB3:
include mmm_common.conf
this db3
3、配置monitor主机中的 /etc/mysql-mmm/mmm_mon.conf文件:
include mmm_common.conf<monitor>ip 127.0.0.1pid_path /var/run/mmmd_mon.pidbin_path /usr/lib/mysql-mmm/status_path /var/lib/misc/mmmd_mon.statusping_ips 192.168.1.238,192.168.1.239,192.168.1.13
</monitor><host default>monitor_user mmm_monitormonitor_password monitor_password
</host>debug 0
七、启动MMM
在DB1/DB2/DB3上执行:
/etc/init.d/mysql-mmm-agent start
在monitor上执行
/etc/init.d/mysql-mmm-monitor start
查看状态(monitor):
mmm_control show
查看检测状态:
mmm_control checks
八、测试MMM
停止238上的mysql并查看是否会切换至239上。
相关文章:
使用MySQL-MMM时遇到的一些问题http://sofar.blog.51cto.com/353572/1603111
MMM监控端启动流程 http://blog.itpub.net/26250550/viewspace-1094480/
mysql-mmm有关mmm_control 参数测试
http://blog.csdn.net/wulantian/article/details/8137823
了解mysql-mmm的6种状态及转变原因 http://blog.chinaunix.net/uid-16844903-id-3049196.html
mysql MMM详解相关推荐
- pandas读写MySQL数据库详解及实战
pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...
- Mysql Explain 详解
Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...
- MySQL存储过程详解 mysql 存储过程
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...
- mysql存储过程详解[转]
mysql存储过程详解[转] 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...
- mysql-win安装教程,WINDOWS下安装MYSQL教程详解
1.下载安装包 2.配置环境变量 2.1 解压所下载的压缩包 2.2 环境变量 win 10 电脑 这么进去 3.生成data文件 在你解压的目录下,eg:F:\Program Files\mysql ...
- MySQL Explain详解,分析语句为何运行慢
MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语 ...
- 史上最简单MySQL教程详解(进阶篇)之存储过程(一)
史上最简单MySQL教程详解(进阶篇)之存储过程(一) 史上最简单MySQL教程详解(进阶篇)之存储过程(一) 什么是存储过程 存储过程的作用 如何使用存储过程 创建存储过程 DELIMITER改变分 ...
- 史上最简单MySQL教程详解(进阶篇)之存储引擎介绍及默认引擎设置
什么是存储引擎? MySQL存储引擎种类 MyISAM 引擎 InnoDB引擎 存储引擎操作 查看存储引擎 存储引擎的变更 修改默认引擎 什么是存储引擎? 与其他数据库例如Oracle 和SQL Se ...
- mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例
<MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...
最新文章
- python浪漫代码-python爱心表白 每天都是浪漫七夕!
- java 面向对象 小练习
- QT界面操作1:如何跟踪鼠标位置?
- 面试官问你B树和B 树,就把这篇文章丢给他
- React子组件怎么改变父组件的state
- su: /bin/bash: Permission denied带来的疑惑
- POJ 1321-棋盘问题-简单搜索DFS
- fatal error C1083:/fatal error C1010: 错误处理
- hdu5773 LIS+贪心
- 计算机更新一直在57转怎么办,win10系统更新到57%出现死机的原因和解决方法
- MacOS Catalina Beta使用体验
- Netty实战:Springboot+Netty+protobuf开发高性能服务器 (附源码下载)
- 【计算机毕业设计】437物流管理系统设计与实现
- 超详细pynq-z2入门
- mybatis动态SQL多条件查询1 - if 标签
- 通达信l-2服务器文件,分享两个手机版通达信的指标源码(PC端也适用)
- Calibre for Mac v5.29.0电子书阅读管理工具
- 中序遍历二叉树的非递归实现(利用栈)
- windows版Transporter使用方法
- 英伟达显卡【NVIDIA GeForece RTX3060 laptop GPU】装深度学习环境,学习框架为Pytorch
热门文章
- centos7 卸载docker
- OFDM和OFDMA区别笔记
- Overlay在PYNQ 2.0中的变化以及如何有效地使用它
- 编译原理课堂笔记(1)编译概述
- IPv6基础介绍及常用命令盘点
- Pymediainfo读取文件夹视频长度并写入Excel文件(openpyxl)
- 【计算机网络】物理层 : 相关参数 ( 码元 | 码元进制 | 速率 | 码元传输速率 | 波特 | 信息传输速率 | 带宽 | 码元速率计算示例 )★
- ROBOGUIDE软件机床上下料仿真:数控铣床运动机构制作
- Oracle中修改表列名(SQL语句)
- Web全栈~25.文件