欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

bbsmax mysql_Problems with MMM for mysql(译文)

发布时间:2024/9/19 数据库 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 bbsmax mysql_Problems with MMM for mysql(译文) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Problems with mmm for mysql

posted in MySQL by shlomi

出于兴趣和研究目的翻译了此文,最近也看了大众点评关于后台使用MMM来做高可用的一些信息(貌似2014年开始转用MHA来做HA),想评估下下MMM在实际生产环境当中的可用性。

正文:

我最近在部署MMM for MySQL的时候遭遇到了一些问题,这使我决定不把它应用到生产环境上。

就在我开始写下这篇文章的同一天,Baron 发表了What's wrong with MMM?.而我也发现MMM存在缺陷所以希望把我遭遇到的问题都呈现出来,在过去的两周中,

我做了两次不同的部署,在3个不同应用场景下遇到了4次故障。

在下面的所有场景中,都部署了一个活动/被动的MySQL双主同步,一个写入VIP,一个读VIP

问题1:(unjustified failover)非常规的failover操作会破坏MySQL复制

(unjustified failover)非常规的failover是很正常的操作,我可以忍受在数月中有几秒钟的宕机情况

但是在这两个不同的应用部署中,才间隔几天,就发生了两次让人闹心的unjustified failover非常规failover:MySQL复制故障

故障是怎么发生的?之前的活动Master,现在变成非活动的,并且日志position回到大概10天之前,我没有把日志保留10天那么多,所以这就是个突然的复制失败

到现在我还不能在MMM中定位原因,但是

1、没有电源故障

2、MySQL实例没有停掉

3、在发生Failover时复制还都是正常的

4、没有人工干预(我自己或别人使用过)

我明白在上面的情况发生时我没有把所有的都监控到,所以我不能责怪说“当电源关闭时Replication没有把主库信息发送到磁盘”。

我认为这非常可疑;但是,发生了两次,在两个不同的环境部署中。。。

这么多疑点,足以证明了!

说实话,这段我看的不是很明白,这个场景很奇怪

问题2:Master Hanging,没有failover

活动的Master宕机,可能是任何一个硬件或者软件原因引起的,它不执行任何任务工作,TCP/IP链接不上

但不仅仅只是链接不上:是停住不动了。如果尝试用ssh来连,链接会hang住:没有被拒绝链接。SSH客户端没有在合理的时间内终止链接。

嗯哼,是时候做故障转移了吧?

显然还是没有。告警的电话响了,邮件也发过来了。然后开始人工介入,这时候MMM 监控怎么说的呢?什么也没说!It's frozen。现在我没有去

读源码,我不会PERL!但是在我看来这个监控守护进程只是运行了一个单一的线程,它用这一个线程去连所有的主机,在链接活动Master时hang住了,

所以整个monitor都停了,没办法,我只好kill掉,我可以选择重现配置去忽略掉原活动Master,但是我还是决定让它重新工作,让它继续回复原装我

必须操作两次,我意识到该做Failover了。

为什么失败了?假设我的分析正确,这是一个重要的设计缺陷,绝不应该用一个单一进程去监控多路主机环境

这个问题倒是比较大,但我也不会PERL,不好下结论

问题3:no servers

系统挂了,不能操作数据库,这时候MMM监控会告诉我们什么呢?

两台机器都是HARD_OFFLINE。

嗯哼,两台机器都出于运行状态时,它们互相同步复制。并且都可以连接操作,MySQL是这样的。

但是没有一台机器是通过VIP来关联的

假如两台Agent 都未能意识到到它们的MYSQL服务器处于运行状态或者Monitor线程都没有接收到信息,这两种情况有问题吗?没有

MMM不会移走所有的VIP。那行,假如MMM确信两台都挂掉了,会怎样?MMM要把所有的VIP丢到其中的一台机器上,所以问题来了,

没有机器了,哪里出错了?

需要有机器来安置这些VIPs.

作者模拟出两台server都挂掉,这种情况出现的几率......

上面列出来的这些不意味这我对MMM的作者反感,我很尊敬他,这些不是容易解决的问题,显然也没有100%的解决方案,只是我不会再用MMM了。

MMM实现Mysql高可用

MySQL主主同步方案 l  MySQL主主+Keepalived l  MySQL+DRBD+Heartbeat 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主主方案, ...

MySQL高可用性大杀器之MHA

MySQL高可用性大杀器之MHA   提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heartbeat+DRBD,不过这些方案的复杂性常常让人望而却步,与之相对,利用MySQL ...

【mysql】高可用集群之MMM

一.复制的常用拓扑结构 复制的体系结构有以下一些基本原则: (1)    每个slave只能有一个master: (2)    每个slave只能有一个唯一的服务器ID: (3)    每个maste ...

CentOS系统MySQL双机热备配置

1  概述 在集成项目中需要应对不同环境下的安装配置,主流操作系统大致可以分为三种:Linux.Windows以及UNIX.其中Linux备受青睐的主要原因有两个: 首先,Linux作为自由软件有两个 ...

常见的高可用MySQL解决方案

MySQL数据库作为最基础的数据存储服务之一,在整个系统中有着非常重要的地位,因此要求其具备高可用性是无可厚非的.有很多解决方案能实现不同的SLA(服务水平协定),这些方案可以保证数据库服务器在硬件或 ...

linux 安装mysql两种方式

yum -y install gcc gcc-c++ ncurses-devel cmake  bison   zlib    zlib-devel libxml  openssl   dtrace ...

mysql安装方法

Window版本 1.下载 MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ 2.解压 如果想要让MySQL安装在 ...

centos 7.0 编译安装mysql 5.6.22 再次总结 成功编译安装~ 越来越熟练了~

查找php.ini文件所在位置 [root@localhost /]# find -name php.ini ./usr/etc/php/etc/php.ini mysql官网的安装说明http:// ...

随机推荐

rails enum用于存储数据

http://api.rubyonrails.org/classes/ActiveRecord/Enum.html 新的项目中有一个字段是展示类型,可以用下拉框去做,用string存储具体的类型字段. ...

JavaScript网站设计实践(七)编写最后一个页面 改进表单

一.最后一个页面 contact.html.改进表单 在该页面实现的功能: 几乎所有的网站都会有表单填写,对于用户输入和填写的数据,首先我们一般现在前台验证,然后再去后台验证. 在前台最简单的验证:检 ...

【记录】haphost免费vps初始配置

1.配置德国epel源 yum install yum-priorities rpm -Uvh http://ftp-stud.hs-esslingen.de/pub/epel/6/i386/epel ...

Jmeter之app性能测试(ios,android)

测试小菜鸟alter今天一大早又学习了一点东西关于jmeter-app性能测试,现在记录一下.提到性能测试,那我就简单总结一下.(想跳过的,直接将页面下移到下一个红色字体处) 性能测试的相关知识介绍 ...

带BOM头文件解析

在java中apache提供了一个工具类BOMStream,在获取文件流时,将获取到的文件流转化成为BOM流: InputStreamReader is = new InputStreamReader ...

LINUX 配置定时任务,每天凌晨1点定时备份数据库

一.安装定时任务如果本地没有安装包,在能够连网的情况下可以在线安装 yum install vixie-cronyum install crontabs 查看crond服务是否运行: pgrep cr ...

Nagios 配置自动发邮件功能

安装sendmailyum install -y sendmail* mailx 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.se ...

SpringCloud Netflix Eureka(服务注册/发现)

⒈Eureka是什么? Eureka是Netflix的一个子模块,也是核心模块之一,Eureka是一个基于REST的服务,用于定位服务以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务架构来 ...

Linux查看操作系统版本

Linux版本太多,不同版本的命令又有所区别,所以在解决Linux的一些问题时候无从下手 或者 走一些弯路,这里提供解决此类问题的思路: 查看linux版本号 有了版本号,不同版本 统一问题解决方案不 ...

freemarker插值

http://blog.csdn.net/chang_li/article/details/51913105 在复杂页面上(包含大量判断.日期金额格式化)的页面上,freemarker的性能比使用ta ...

总结

以上是生活随笔为你收集整理的bbsmax mysql_Problems with MMM for mysql(译文)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。