广告
返回顶部
首页 > 资讯 > 数据库 >mysql高可用中MMM高可用mysql方案是怎么样的
  • 505
分享到

mysql高可用中MMM高可用mysql方案是怎么样的

2024-04-02 19:04:59 505人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关Mysql高可用中MMM高可用mysql方案是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 MMM高可用mysql方案

这期内容当中小编将会给大家带来有关Mysql高可用中MMM高可用mysql方案是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

MMM高可用mysql方案

方案简介

MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。MMM不仅能提供浮动IP的功能,更可贵的是如果当前的主服务器挂掉后,会将你后端的从服务器自动转向新的主服务器进行同步复制,不用手工更改同步配置。这个方案是目前比较成熟的解决方案。

  1. 方案优缺点

优点:安全性、稳定性高,可扩展性好,高可用,当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。
缺点:至少三个节点,对主机的数量有要求,需要实现读写分离,对程序来说是个挑战。

  1. 方案架构

  1. 适用场景

MMM的适用场景为数据库访问量大,业务增长快,并且能实现读写分离的场景。

  1. 方案实战

    1. 实战环境介绍

实战环境服务器列表:

服务器 主机名 ip地址 Serverid 系统 Mysql
Monitor Mon 10.1.1.111 -- Centos 5.5 64bit --
Master1 db1 10.1.1.113 1 Centos 5.5 64bit 5.1.63
Master2 db2 10.1.1.75 2 Centos 5.5 64bit 5.1.63
Slave1 db3 10.1.1.108 3 Centos 5.5 64bit 5.1.63

实战环境虚拟IP列表:

VIP Role description
10.1.1.176 Read 应用配置的读取IP,也可以在前端加lvs等,做负载均衡 。三台数据库每台一个浮动VIP
10.1.1.177 Read
10.1.1.178 Read
10.1.1.179 Write 应用配置的写入的VIP,单点写入。
  1. MMM的安装

在安装mmm之前要安装epel包,因为Centos的默认源中没有mmm的安装包,Epel是企业版linux附加软件包(Extra Packages for Enterprise Linux)的缩写,是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(比如CentOS、Scientific Linux)的一个高质量附加软件包项目
安装epel:

wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm
rpm -Uvh epel-release-5-3.noarch.rpm

安装monitor的安装:

yum -y install mysql-mmm*

各个DB上只需要安装mysql-mmm-agent

yum -y install mysql-mmm-agent

  1. MMM的配置

    1. 配置之前的准备

前提是要配置好master1和master2的主主同步,master1和slave1的主从同步,限于篇幅这里我就不做介绍了。
在配置mmm之前首先要在mysql中创建除复制帐号之外的另外两个帐号,首先来介绍monitor user帐号,这个帐号是monitor服务器用来对mysql服务器做健康检查的,其次就是agent user,这个帐号是mmm agent(mmm代理)用来变成只读模式和同步master等,下面是创建这两个帐号的语句:

GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'10.1.1.%' IDENTIFIED BY 'monitor_passWord';
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'10.1.1.%'IDENTIFIED BY 'agent_password';
flush privileges;

这两个语句在每个mysql中都要执行一下。

  1. Monitor服务器的配置

  2. 的配置文件在/etc/mysql-mmm目录下,monitor需要配置的文件有mmm_common.conf、mmm_mon.conf两个文件。mmm_common.conf文件在mmm的各个节点都是一样的,因此配置好以后copy到各个DB节点即可。

我mmm_common.conf的配置如下:
vim /etc/mysql-mmm/mmm_common.conf

active_master_role      writer
 
<host default>
    cluster_interface       eth0
    pid_path                /var/run/mysql-mmm/mmm_agentd.pid
    bin_path                /usr/libexec/mysql-mmm/
    replication_user        replication
    replication_password    123456
    agent_user              mmm_agent
    agent_password          agent_password
</host>
 
<host db1>
    ip      10.1.1.113    #这个IP尤其注意是db1的IP
    mode    master
    peer    db2
</host>
 
<host db2>
    ip      10.1.1.75    #这个IP尤其注意是db2的IP
    mode    master
    peer    db1
</host>
 
<host db3>
    ip      10.1.1.108
    mode    slave
</host>
 
<role writer>
    hosts   db1, db2
    ips     10.1.1.179
    mode    exclusive
</role>
 
<role reader>
    hosts   db1, db2, db3
    ips     10.1.1.176, 10.1.1.177, 10.1.1.178
    mode    balanced
</role>

我的mmm_mon.conf配置如下:
vim /etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf
 
<monitor>
    ip                  127.0.0.1
    pid_path            /var/run/mysql-mmm/mmm_mond.pid
    bin_path            /usr/libexec/mysql-mmm
    status_path         /var/lib/mysql-mmm/mmm_mond.status
    ping_ips            10.1.1.1, 10.1.1.113, 10.1.1.75, 10.1.1.108
# ping_ips 监控了网关IP和其他的DB节点IP
    auto_set_online     60
</monitor>
 
<host default>
    monitor_user        mmm_monitor
    monitor_password    monitor_password
</host>
 
debug 0

  1. 各个DB服务器的配置

各个DB服务器要配置的东西比较不多,主要有mmm_common.conf、mmm_agent.conf和/etc/default/mysql-mmm-agent文件。

  • db1 的配置

  • 文件的配置和前面monitor的一样,直接copy过来即可使用

  • 的配置:

vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
this db1

  • 的配置:

vim /etc/default/mysql-mmm-agent

  1.  

  • db2 的配置

  • 文件的配置和前面monitor的一样,直接copy过来即可使用

  • 的配置:

vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
this db2

  • 的配置:

vim /etc/default/mysql-mmm-agent

  1.  

  • db3 的配置

  • 文件的配置和前面monitor的一样,直接copy过来即可使用

  • 的配置:

vim /etc/mysql-mmm/mmm_agent.conf

include mmm_common.conf
this db3

  • 的配置:

vim /etc/default/mysql-mmm-agent

  1.  

  1. MMM的管理

    1. MMM的启动和停止

  • MMM的启动

启动mmm agent

/etc/init.d/mysql-mmm-agent start

将agent的启动命令写入到三个DB的rc.local文件中
启动mmm monitor

/etc/init.d/mysql-mmm-monitor start

将monitor的启动命令写入到monitor服务器的rc.local文件中

  • MMM的停止

停止mmm agent

/etc/init.d/mysql-mmm-agent stop

停止mmm monitor

/etc/init.d/mysql-mmm-monitor stop

  1. MMM的基本管理

查看集群的状态

mmm_control show

将db1设置成online状态

mmm_control set_online db1

更多管理命令请使用mmm_control help查看,或者参考:
Http://blog.chinaunix.net/uid-20639775-id-154606.html

  1. MMM架构的测试

环境搭建好以后,就需要进行周密的测试,看是否实现了预期的功能:

  • 停掉master1后在monitor端使用mmm_control show看是否能切换。看看slave1是否能正确切换同步。

  • 启动master1后在monitor端使用mmm_control show看是否能切换。

  • 停掉master2后看看能否正确切换。

    1. MMM架构的监控

为实现高可用,系统的各个层面都需要全面的监控起来,比如agent进程的监控,monitor进程的监控,mysql可用性的监控,数据库同步的监控等,推荐使用nagiOS对以上资源进行监控,第一时间发现问题,第一时间处理。

上述就是小编为大家分享的mysql高可用中MMM高可用mysql方案是怎么样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: mysql高可用中MMM高可用mysql方案是怎么样的

本文链接: https://www.lsjlt.com/news/70401.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql高可用中MMM高可用mysql方案是怎么样的
    这期内容当中小编将会给大家带来有关mysql高可用中MMM高可用mysql方案是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 MMM高可用mysql方案 ...
    99+
    2022-10-19
  • mysql MMM高可用的部署
    这篇文章给大家分享的是mysql MMM高可用的部署,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。1 环境:1.1 OS and MYSQL verson:...
    99+
    2022-10-18
  • 在MySQL中的高可用集群方案MGR是怎样的
    本篇文章给大家分享的是有关在MySQL中的高可用集群方案MGR是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近绝地求生这个游戏太火了...
    99+
    2022-10-18
  • MySQL高可用方案MHA怎么用
    这篇文章主要为大家展示了“MySQL高可用方案MHA怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL高可用方案MHA怎么用”这篇文章吧。 MyS...
    99+
    2022-10-18
  • MySQL高可用方案介绍
    本文简单描述了本人初学MySQL的时候整理的一个MySQL高可用方案的PPT,虽然不太全面也不一定准确,但还是想拿出来和大家共享一下,共同讨论,共同进步。 另外,此偏文章做成PPT,忽悠领导或上级 是非常好...
    99+
    2022-10-18
  • MySQL中MHA高可用集群是怎样的
    本篇文章为大家展示了MySQL中MHA高可用集群是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是MHA传统的主从复制如果主库宕机,其余从库不会自动的...
    99+
    2022-10-18
  • Mysql之高可用方案浅析
    在工程项目中,系统应用的高可用性越来越重要,业主越来越重视。其实高可用可以分为应用层高可用和数据层高可用,数据层高可用中常见的有关系型数据库mysql的高可用、非关系型NoSQl数据库redis的...
    99+
    2023-09-06
    mysql 高可用 双机热备
  • MySQL中MMM高可用架构的安装配置流程
    下文我给大家简单讲讲关于MySQL中MMM高可用架构的安装配置流程,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完MySQL中MMM高可用架构的安装配置流程对大家多少有点帮助吧...
    99+
    2022-10-18
  • 金融级MySQL高可用方案-Xenon
    搞了一下午,终于把xenon环境搭建起来了。 [root@devdb01 zxdata]# /usr/local/xenon/bin/xenoncli cluster status +-----------...
    99+
    2022-10-18
  • 怎么在MySQL数据库中实现MMM高可用群集架构
    这篇文章给大家介绍怎么在MySQL数据库中实现MMM高可用群集架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MMM高可用架构说明mmm_mond:监控进程,负责所有的监控工作,决定...
    99+
    2022-10-18
  • MySQL高可用方案的一些思考
    我在去年QCon和Gdevops广州站的时候,讲到MySQL和Oracle的现状和发展时,简单总结了下一个常见的使用误区:把MySQL当Oracle用,或者把Oracle当做MySQL用。...
    99+
    2022-10-18
  • MySQL高可用方案MHA如何部署
    这篇文章将为大家详细讲解有关MySQL高可用方案MHA如何部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MHA(Master High Availability)是一...
    99+
    2022-10-18
  • 常见的MySQL高可用方案有哪些
    这篇文章主要介绍了常见的MySQL高可用方案有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇常见的MySQL高可用方案有哪些文章都会有所收获,下面我们一起来看看吧。1. 概...
    99+
    2022-10-19
  • MySQL同步复制及高可用的方案
    本篇内容主要讲解“MySQL同步复制及高可用的方案”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL同步复制及高可用的方案”吧!1.前言mysql作为应用...
    99+
    2022-10-18
  • MySQL高可用架构的PXC实践是怎样的
    这篇文章给大家介绍MySQL高可用架构的PXC实践是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、PXC简介    官方介绍: &nb...
    99+
    2022-10-18
  • MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
    本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。 先来看看具体的架构拓扑,如下: 其中, 角色 Hosts IP地址 应用属性 V...
    99+
    2022-10-18
  • MySQL高可用之keepalived方案的示例分析
    这篇文章主要为大家展示了“MySQL高可用之keepalived方案的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL高可用之keepalive...
    99+
    2022-10-18
  • MySQL 5.6通过MMM实现读写分离的高可用架构
    上一篇博文我们使用keepalived+主从同步搭建了一个简单的MySQL高可用架构(详见https://blog.51cto.com/jiangjianlong/1981994),今天再分享下通过MMM搭...
    99+
    2022-10-18
  • 运维中的高可用MySQL解决方案有哪些
    运维中的高可用MySQL解决方案有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。数据库作为最基础的数据存储服务之一,在存储系统中有着非常重...
    99+
    2022-10-19
  • 常见的高可用MySQL解决方案有哪些
    这篇文章主要介绍常见的高可用MySQL解决方案有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1. 主从复制解决方案   主从...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作