mysql-mmm
查看mmm集群状态:
mmm_control show
给主机设置ip:
mmm_control set_ip ip host
改变状态:
mmm_control set_passive|active
1. MMM主要功能脚本介绍:
a. mmm_mond
监控进程,负责所有的监控工作,决定和处理所有节点角色活动。
b. mmm_agent
运行在每个Mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。
c. mmm_control
一个简单的脚本,提供管理mmm_mond进程的命令。
2. MMM_MOND参数介绍
1. status
1. mmm_control show
运行mmm_control show时monitor监控的mysql服务可以有如下几种状态:
online 主机正在运行,没有任何问题。
admin_offline 手动被设置成离线状态。
hard_offline 主机不在线(ping检测或者是mysql检测失败)。
awating_recovery 主机即将恢复在线。
replication_delay 复制延迟很大,积压了很多未完成的日志(rep_backlog检测失败)。
replication_fall 复制线程没有运行(rep_threads检测失败)。
2. mmm_common.conf配置文件auto_set_online参数大小设置问题:
当mmm_mon.conf文件的auto_set_online 10参数设置小于60时db1、db2mysql服务停止启动切换时,不会出现上述AWAITING_RECOVERY状态,只要mysql服务启动即会自动切换到online状态,当配置参数等于或者大于60时,即会出现如下状态,
当用mmm_control set_onlinedb1即可修改db1为在线online状态。
总结:只有当主机在线的时候才能获得角色(reader or writer),当一个主机从online转换到其它状态,它所获得的角色都会从它身上移除。
一个主机在replication_delay或者是replication_fall状态时,如果所有的问题都解决了,就会被再次切换到online状态,除非它的状态在抖动,不稳定。参见flapping(抖动)。
一个主机在hard_offline状态,如果所有的问题都解决了,那么它会转换到awaiting_recovery状态,如果它的故障时间小于60s,并且它没有重启或者auto_set_online>0,那么它将会被自动切换到online状态,除非它的状态在抖动,不稳定。参见flappping(抖动)。
如过活动的master出现积压了很多未完成的复制工作或者复制失败将不被视为一个问题,所以活动的master不会被置于replication_delay或者REPLICATION_FAIL状态。
在节点被转换到ONLINE状态60s内,如果出现复制失败或者出现积压了很多未完成的复制工作将会被忽略(这个时间通过master-connect-retry来控制)。
如果rep_backlog和rep_threads都检测失败,将会切换到REPLICATION_FAIL状态。
2. ROLES
在mmm_common.conf
exclusive roles
互斥角色只有一个ip,并且同一时间只能分配给一个主机,你可以指定一个优先(preferred)主机,如果这个主机是ONLINE状态,那么角色就会被切换到这个主机。
balanced roles
负载均衡角色可以有多个IP,这些IP被均衡的分配给多个主机,所以没有一个主机可以比其他主机多出两个角色。
(备忘录:可以通过给可写的active_master_role设置mode=slave把角色切换给其他master)。
3. CHECKS
mmm_controlcheck
mmm_mond会对每个主机执行4项检查,并决定检查是否成功:
ping -- ----主机可以ping通。
mysql -- ----mysql server在线
rep_threads -- ----复制线程在运行
rep_backlog -- ----复制积压的日志很少
4. MODES
1. ACTIVE MODE
Monitor将会自动的把角色从失败的主机上移除,并切换到其他主机上。
2. MANUAL MODE
Moniter会自动把负载均衡的角色分配给对应主机,但是不会自动的把角色从失败的主机上移除。你可以通过move_role来手工移除。
3. WAIT MODE
类似manual模式,但是当两个master都是online状态或者超过了wait_for_other_master的时间,将被改变为ACTIVE模式。
4. PASSIVE MODE
在被动模式下,monitor不改变roles,也不更新状态文件和发送任何信息给agents。在被动模式下你可以使用set_ip来改变roles,但是这些改变在monitor切换到ACTIVE或者MANUAL模式(set_active or set_manual)前都不会生效,在启动的roles发生冲突将会进入被动模式。你可以分析问题,修复reole信息,然后切换到ACTIVE或者MANUAL模式,也可以手动进去被动模式,使用 set_passive。
mysql-mmm的更多相关文章
- 从 MySQL+MMM 到 MariaDB+Galera Cluster : 一个高可用性系统改造
很少有事情比推出高可用性(HA)系统之后便经常看到的系统崩溃更糟糕.对于我们这个Rails运行机的团队来说,这个失效的HA系统是MySQL多主复制管理器(MMM). 我们已经找寻MMM的替代品有一段时 ...
- Mysql MMM 高可用
一.Mysql MMM 高可用概况: mmm_mond 负责所有的监控工作的监控守护进程,决定节点的移除等: mmm_agentd 运行在mysql服务器上的代理守护进程,通过简单远程服务集提供给 ...
- MySQL MMM高可用方案
200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍搭建MMM方案以及MMM架构的原理.这里不介绍主从.主主的搭建方 ...
- mysql mmm高可用架构设计
项目概述:搭建主从,双主,安装Perl模块 安装配置mmm软件 测试 硬件环境:4台虚拟PC 软件环境:rehl6.5 MySQL-5.6.26 percona-xtrabackup-2.3.4 ...
- CENTOS6.6下mysql MMM架构搭建
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn MMM(Master-Master replication mana ...
- CentOS7 以下安装Mysql MMM
參考文档 參考1 參考2 * 一. 规划 server IP 作用 monitor 192.168.1.210 监控server master-001 192.168.1.211 读写主机001 ma ...
- centos6.6部署mysql mmm高可用架构
一.环境简述 1.工作逻辑图 2.MySQL-MMM优缺点 优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性. 缺点:Monitor节点是 ...
- MySQL -MMM 学习整理
一. 规划 1.主机规划 服务器 IP 作用 monitor 10.0.0.10 监控服务器 master-01 10.0.0.5 读写主机01 master-02 10.0.0.6 读写主机02 s ...
- MySQL(MMM架构使用)
本案例要求基于普通版的MySQL服务器改造MMM架构,完成以下任务操作:启动MMM集群架构设置集群中服务器为online状态MySQL-MMM架构部署完成后需要启动,数据库端启动mmm-agent进程 ...
- 搭建MySQL MMM高可用
搭建MMM: 1,安装 agent 节点执行 yum install -y mysql-mmm-agent 2, monitor 节点执行 yum install -y mysql-mmm-monit ...
随机推荐
- Java 8 新日期时间 API
Java 8 新日期时间 API 1. LocalDate.LocalTime.LocalDateTime LocalDate.LocalTime.LocalDateTime 实例是不可变的对象,分别 ...
- centos / debian 安装iptables服务
debian: #使用可参考 https://www.debian.cn/archives/991 #配置文件位于 /etc/iptables #重新配置使用dpkg-reconfigure ipta ...
- 关闭文件描述符-close
头文件:#include<unistd.h> 原型:int close(int fd); 返回值:成功返回0,失败返回-1.
- KOBAS
1. What is KOBAS 3.0? KOBAS (KEGG Orthology Based Annotation System) is a web server for gene/protei ...
- const变量指针赋值给非const类型的指针运行结果
在c++可以定义一个const变量,然后把变量的值赋给一个非const指针,可以通过指针来改变const变量的值吗?下面的截图给出了答案
- 20155235 2016-2017-2 《Java程序设计》第7周学习总结
20155235 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 Lambda 认识Lambda语法 Lambda语法概览 Lambda表达式与函数 ...
- bitset相关
位关联容器 bitset<1000> s ;//新建一个容量为1000位的bitset s.test(k); //读取第k位,结果为0或1 s.set(k); ...
- 使用PrintWriter out=response.getWriter();输出script脚本时乱码解决
使用PrintWriter out=response.getWriter();输出script脚本时乱码解决 最近遇到了一个奇怪的事情,仅仅用out.print("<script ty ...
- 2018.07.03 POJ 3348 Cows(凸包)
Cows Time Limit: 2000MS Memory Limit: 65536K Description Your friend to the south is interested in b ...
- java socket 之UDP编程
一.概念 在TCP的所有操作中都必须建立可靠的连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外的一种传输协议——UDP,不可靠的连接(这种协议在各种聊天工具中被广泛使用) ...