广告
返回顶部
首页 > 资讯 > 数据库 >MMM架构方案与实施
  • 393
分享到

MMM架构方案与实施

2024-04-02 19:04:59 393人浏览 独家记忆
摘要

             MMM架构方案与实施MMM即Master-Master Replication Manag

             MMM架构方案与实施

MMM即Master-Master Replication Manager for Mysqlmysql主主复制管理器),是关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。

MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用

MMM项目来自 Google:Http://code.google.com/p/mysql-master-master

官方网站为:http://mysql-mmm.org

MMM主要功能由下面三个脚本提供

mmm_mond    :负责所有的监控工作的监控守护进程,决定节点的移除等等

mmm_agentd  :运行在mysql服务器上的代理守护进程,通过简单远程服务集提供给监控节点

mmm_control :通过命令行管理mmm_mond进程

 

关于此架构的优缺点:

优点:安全性、稳定性高,可扩展性好,当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。

缺点:至少三个节点,对主机的数量有要求,需要实现读写分离,可以在程序扩展上比较难实现。同时对主从(双主)同步延迟要求比较高!因此不适合数据安全非常严格的场合。

实用场所:高访问量,业务增长快,并且要求实现读写分离的场景。

环境部署:

 MMM架构方案与实施

master1 ip :192.168.1.10

master2 ip :192.168.1.20

slave1  ip :192.168.1.30

slave2  ip:192.168.1.40

monitor ip:192.168.1.50

所有主机都要安装MMM的依赖包这里就单以master1为例进行演示其他四台均是如此,无任何的修改变动。

#yum -y install perl-*  libart_lgpl.x86_64  rrdtool.x86_64  rrdtool-perl.x86_64

 MMM架构方案与实施

安装perl库,使用Centos7的互联网yum源安装

#cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::Ping Proc::Daemon Time::HiResParams::Validate Net::ARP

 

MMM架构方案与实施 

为了防止后续环境中出现报错信息这里进行修改;给出解决方法:

解决方法:

# cpan Proc::Daemon
# cpan Log::Log4perl

 MMM架构方案与实施

在所有主机上配置/etc/hosts文件,添加如下内容:这里还是以master1为例;其他四台均是如此

 MMM架构方案与实施

在这里我们使用monitor对其他四台主机进行ping命令测试,查看是否可以互通:

MMM架构方案与实施 

 

MMM架构方案与实施 

在master1、master2、slave1、slave2主机上安装mysql5.7和配置复制

master1和master2互为主从,slave1、slave2为master1的从

在每个mysql的配置文件/etc/my.cnf中加入以下内容, 注意server_id不能重复。

master1服务器:

 

 

MMM架构方案与实施 

master2服务器

MMM架构方案与实施 

slave1服务器

MMM架构方案与实施 

slave2服务器

MMM架构方案与实施 

在完成了对my.cnf的修改后,通过systemctl restart mysqld重新启动mysql服务

4台数据库主机若要开启防火墙,要么关闭防火墙或者创建访问规则:

firewall-cmd --permanent --add-port=3306/tcp

firewall-cmd --reload

MMM架构方案与实施 在这里我们采用关闭防火墙;但如果应用在生产环境当中,此做法不可取,可使用上面的方式,开放3306端口

MMM架构方案与实施 主从配置(master1和master2配置成主主,slave1和slave2配置成master1的从):

MMM架构方案与实施 在master1上授权:

MMM架构方案与实施 mysql> grant replication slave on *.* to rep@'192.168.1.%' identified by '123456';

MMM架构方案与实施

MMM架构方案与实施 在master2上授权:

MMM架构方案与实施 mysql> grant replication slave on *.* to rep@'192.168.1.%' identified by '123456';

MMM架构方案与实施

把master2、slave1和slave2配置成master1的从库:

 

在master1上执行show master status; 获取binlog文件和Position点

mysql> show master status;

 

MMM架构方案与实施 

在master2、slave1和slave2执行

mysql> change master to master_host='192.168.1.10',master_port=3306,master_user='rep',master_passWord='123456',master_log_file='mysql-bin.000001',master_log_pos=451;

 

master2执行:

MMM架构方案与实施 

 

slave1执行:

MMM架构方案与实施 

 

slave2执行:

MMM架构方案与实施 

 

执行成功之后开始验证主从复制结果:

mysql> start slave;

mysql> show slave status\G;

首先对master2进行验证结果let's go

MMM架构方案与实施 

接下来是slave1验证:

MMM架构方案与实施 

最后是对slave2进行验证:

MMM架构方案与实施 

通过以上结果表明这四台数据库的主从复制已经搭建好了;但是我们需要的是master1和master2是主主复制,所以接下来还要对master1进行配置:

把master1配置成master2的从库:

在master2上执行show master status ;获取binlog文件和Position点

mysql> show master status;

MMM架构方案与实施 

在master1上执行:

mysql> change master to master_host='192.168.1.20',master_port=3306,master_user='rep',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154;

MMM架构方案与实施 

验证master1和master2的主主复制:

mysql> start slave ;

mysql> show slave status\G;

MMM架构方案与实施 

我们来捋一捋思路;这里master1和master2是主主复制

slave1和slave2与master1是主从复制的关系,接下来配置MMM的配置;

首先:在4台mysql节点上创建用户{master1、2和 slave1、2}

创建代理账号:

mysql> grant super,replication client,process on *.* to 'mmm_agent'@'192.168.1.%' identified by '123456';

MMM架构方案与实施 

创建监控账号:

mysql> grant replication client on *.* to 'mmm_monitor'@'192.168.1.%' identified by '123456';

MMM架构方案与实施

 

这里还是以master1为例,由于他们已经是主从同步的关系了,所以其他三台主机也有这两个账号。

这里呢我们以其中的一台slave2为例查看下是否存在呢?

MMM架构方案与实施 

可以看到在master1上创建的两个账号,在slave2上面已经同步过来了。

mmm_monitor用户:mmm监控用于对mysql服务器进程健康检查

mmm_agent用户:mmm代理用来更改只读模式,复制的主服务器等

二:mysql-mmm的安装

在monitor主机上安装监控程序:

tar -zxf mysql-mmm-2.2.1.tar.gz

cd mysql-mmm-2.2.1

make install

MMM架构方案与实施 

在数据库{master1,master2,slave1,slave2上安装代理}

tar -zxf mysql-mmm-2.2.1.tar.gz

cd mysql-mmm-2.2.1

make install

主:此软件必须在每台MySQL上面进行安装;这个不能同步。

master1服务器;

MMM架构方案与实施 

master2服务器:

 MMM架构方案与实施

slave1服务器:

MMM架构方案与实施 

slave2服务器:

MMM架构方案与实施 

接下来进入激动人心的时刻了,大家提起点精神,开始配置MMM的文件,五台文件要保持一致。{mmm_commin.conf}

所有的配置文件都放到了/etc/mysql-mmm/下面。管理服务器和数据库服务器上都要包含一个共同的文件mmm_common.conf,内容如下:

MMM架构方案与实施 

MMM架构方案与实施 

MMM架构方案与实施 

将以上的文件拷贝到其他四台服务器上确保这五台服务器的此文件内容相同。此外:

还有一个mmm_agent.conf需要修改,其内容是:

includemmm_common.conf

this master1

MMM架构方案与实施 

这里以master1为例:其他三台修改为{master2、slave1、slave2}monitor除外

启动代理进程 其他三台也是monitor除外,这里以master1为例:

在 /etc/init.d/mysql-mmm-agent的脚本文件的#!/bin/sh下面,加入如下内容 

MMM架构方案与实施 

加入系统服务

MMM架构方案与实施 

启动服务会报错解决方法:

# cpan Proc::Daemon
# cpan Log::Log4perl

就可以解决

在此重启的结果

MMM架构方案与实施 

MMM架构方案与实施

以上都是以master1为例,其他三台配置方式和master1方式相同, 但在mmm_agent.conf文件修改不同上面已经指出。

 

编辑 monitor主机上的/etc/mysql-mmm/mmm_mon.conf 

includemmm_common.conf

MMM架构方案与实施 

启动监控进程:

在 /etc/init.d/mysql-mmm-monitor的脚本文件的#!/bin/sh下面,加入如下内容 
source /root/.bash_profile 

MMM架构方案与实施 

添加成系统服务并设置为自启动

#chkconfig --add mysql-mmm-monitor

#chkconfig mysql-mmm-monitor on

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

启动会报错。解决方法

安装下列perl的库

#cpan Proc::Daemon

#cpan Log::Log4perl

在此启动

MMM架构方案与实施 

MMM架构方案与实施 

接下来查看群集状态:

以及服务器上线的命令:

MMM架构方案与实施 

群集状态:

MMM架构方案与实施 

查看所有群集的状态:

MMM架构方案与实施 

接下来可以将主master1的服务器模拟宕机,查看vip是否会漂移到master2上面。这里不再重复。

这就是今天为大家带来的MMM架构,如果有什么疑问可以在评论中提问。

 


您可能感兴趣的文档:

--结束END--

本文标题: MMM架构方案与实施

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

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

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

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

下载Word文档
猜你喜欢
  • MMM架构方案与实施
                 MMM架构方案与实施MMM即Master-Master Replication Manag...
    99+
    2022-10-18
  • Heartbeat+DRBD+MySQL高可用架构方案与实施
      实验参考    http://blog.csdn.net/qq_19175749/article/details/51607210  ...
    99+
    2022-10-18
  • MySQL基操---高可用架构MMM搭建与容灾测试
    MMM介绍MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理My...
    99+
    2022-10-18
  • 项目实施方案
    1.1  项目实施方法采用标准的实施方法和实施规范是项目成功实施的保证。经过对多家大型企业信息门户平台项目成功实施的经验总结,同时结合国内外先进的实施方法和实施工具,并根据我国企业的实际情况,提炼出一套标准的、科学的实施方法。此方...
    99+
    2023-06-05
  • MySQL 5.6通过MMM实现读写分离的高可用架构
    上一篇博文我们使用keepalived+主从同步搭建了一个简单的MySQL高可用架构(详见https://blog.51cto.com/jiangjianlong/1981994),今天再分享下通过MMM搭...
    99+
    2022-10-18
  • 公募基金核心生产业务传统架构转型超融合实施方案
    夏岩  英大基金  信息技术部副总经理毕业于吉大计算机及通信黄埔北邮,二十年金融IT经验,现任英大基金信息技术部副总经理、证监会证券期货业信息技术顾问,主要负责基金企业的IT信息化建设管理及规划工作。摘要:本文介绍了英大...
    99+
    2023-06-03
  • 怎么在MySQL数据库中实现MMM高可用群集架构
    这篇文章给大家介绍怎么在MySQL数据库中实现MMM高可用群集架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MMM高可用架构说明mmm_mond:监控进程,负责所有的监控工作,决定...
    99+
    2022-10-18
  • oracle11gR2 RAC更换网卡实施方案
    环境: 数据库版本:oracle 11.2.0.4  是否RAC:两个节点的RAC --准备工作 更换前: 10.100.10.62   en1 10.100.10.200  ...
    99+
    2022-10-18
  • jQuery的实施方案是怎样的
    本篇文章给大家分享的是有关jQuery的实施方案是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。jQuery实施方案.每个公司的情况都不...
    99+
    2022-10-19
  • MyCAT高可用方案和架构图
    MyCAT的优势 基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优...
    99+
    2022-10-18
  • 云服务器架构设计方案
    下面是云服务器架构设计方案的一些主要组成部分: 数据库:提供云服务器所需的各种数据库服务,包括 MySQL、PostgreSQL、MongoDB 等。这些数据库服务可以按需安装、升级和扩展。 虚拟化:使用虚拟化技术将多个物理服务器虚拟为...
    99+
    2023-10-27
    设计方案 架构 服务器
  • 阿里云服务器架构方案
    阿里云服务器架构可以根据您的需求和性能要求来选择不同的架构方案。以下是一些常见的阿里云服务器架构方案和它们的优点和缺点: 方案一:裸金属架构 优点:裸金属架构可以节省成本,因为您不需要在服务器上添加任何东西,只需要一个裸金属机箱即可。裸金...
    99+
    2023-10-26
    阿里 架构 服务器
  • 解析高可用Redis服务架构分析与搭建方案
    基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysq...
    99+
    2022-11-12
  • 微服务架构下的服务调用与鉴权——某保险公司微服务平台实施案例分享
    转载本文需注明出处:微信公众号EAWorld,违者必究。引言:根据保险行业发展趋势,目前保险交易已经呈现高频化、碎片化、场景化等特点,对系统的处理能力、容量、业务连续性、需求相应速度、运维响应速度提出了更高的要求。业务模式创新重塑导致系统更...
    99+
    2023-06-05
  • MySQL双主(主主)架构配置方案
    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加mysql入口,增加高可用。...
    99+
    2022-05-14
    MySQL 双主 mysql双主双从
  • mysql备份以及构架常用方案
    mysql备份工具:xtrabackup通过keepalived可以搭建mysql双主高可用构架mysql集群构架MHAMMM构架mysql高可用集群 ...
    99+
    2022-10-18
  • Mysql架构篇--Mysql 主从同步方案
    文章目录 前言一、传统的主从复制:1 原理:2 缺点: 二、半同步复制(Semi-Synchronous Replication):三、组复制:1 原理:2 实现:2.1 myql 实例安...
    99+
    2023-09-23
    mysql 架构 数据库
  • 短视频App开发方案IOS架构
    简介 随着社交媒体的兴起和短视频的日益普及,开发短视频App已成为一个赚钱的好主意。iOS开发人员在创建这些应用程序方面非常有需求,因为这需要一组独特的功能和设计。在本文中,我们将探讨在iOS上开发短视频App的不同方法,并提供源代码的演示...
    99+
    2023-08-30
    音视频 ios
  • MySQL主从复制与高可用架构方案与项目环境准备_MySQL高可用复制与分布式集群架构01
    MySQL高可用复制与分布式集群架构之01:MySQL主从复制与高可用架构方案与项目环境准备视频教程学习地址   http://edu.51cto.com/course/14238.ht...
    99+
    2022-10-18
  • MaxScale读写分离项目实施与维护_MySQL高可用复制与分布式集群架构08
    MaxScale读写分离项目实施与维护_MySQL高可用复制与分布式集群架构08视频教程学习地址    http://edu.51cto.com/course/14433.ht...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作