广告
返回顶部
首页 > 资讯 > 数据库 >MySQL高可用群集------配置MMM高可用架构
  • 148
分享到

MySQL高可用群集------配置MMM高可用架构

2024-04-02 19:04:59 148人浏览 安东尼
摘要

MMM简介: MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语

MMM简介:

MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理Mysql Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡。MMM是一套灵活的脚本程序,基于Perl实现,用来对mysql replication进行监控和故障转移并能管理Mysql Master-Master复制的配置

MMM高可用架构的说明:

1.mmm_mon:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行
2.mmm_agent:运行在每个Mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在各节点上运行
3.mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令
4.mysql-mmm的监控端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用的Mysql之上,当某一台Mysql宕机时,监控会将VIP迁移至其他Mysql
在整个监管过程中,需要在Mysql中添加相关授权用户,以便让Mysql可以支持监理机的维护。授权的用户包括一个mmm_monitor和一个mmm_agent用户。

实验案例环境部署:

本实验使用五台服务器模拟搭建(Centos7 操作系统
主服务器master1 : ip:192.168.100.10 db1 vip: 192.168.100.199
主服务器master2:ip: 192.168.100.20 db2
从服务器 slave1 : ip:192.168.100.30 db3 vip: 192.168.100.33
从服务器 slave2: ip: 192.168.100.40 db4 vip: 192.168.100.44
监控服务器 monitor ip: 192.168.100.50


实验的过程已整理好脚本如下:

----------master01/master02/slave01/slave02都需要安装mysql数据库-----
配置ALI云源,然后安装epel-release源。 (四台主从服务器都需要装)
systemctl stop firewalld.service
setenforce 0
wget -O /etc/yum.repos.d/CentOS-Base.repo Http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release //安装epel源
yum clean all && yum makecache //清空所有,重新设置数据缓存


----------搭建本地yum源----------下面直接做-----------------
yum -y install mariadb-server mariadb (四台主从服务器都需要装)
systemctl stop firewalld.service
setenforce 0
systemctl start mariadb


----------修改ml主配置文件-----------(四台主从服务器都需要)-------------------------
vi /etc/my.cnf (9dd删掉之前的内容)
vi /etc/my.cnf (9dd删掉[mysqld]标签之前的内容,重新插入下面的配置)
[mysqld]
log_error=/var/lib/mysql/mysql.err //开启错误日志功能
log=/var/lib/mysql/mysql_log.log //开启一般日志功能
log_slow_queries=/var/lib/mysql_slow_queris.log //开启慢日志功能
binlog-ignore-db=mysql,infORMation_schema //不需要同步的数据库名称
character_set_server=utf8 //设置默认的字符集为utf-8
log_bin=mysql_bin //开启二进制日志,用于主从数据复制
server_id=1 //每台server_id的值不能相同
log_slave_updates=true //此数据库宕机,备用数据库接管
sync_binlog=1
auto_increment_increment=2 //字段一次递增2
auto_increment_offset=1 //自增字段的起始值:1,3,5,7.........等奇数ID


修改完后:
systemctl stop firewalld.service
setenforce 0
systemctl start mariadb
netstat -anpt | grep 3306


-------------没有问题后,把配置文件复制到其他3台数据库服务器上并启动服务器----------
一台一台配置 或:scp /etc/my.cnf root@192.168.100.10:/etc/ //此命令在文件源端服务器上执行
注:第二台server_id=2 第三台11 第四台22


-------------配置主主复制----两台主服务器互相复制---------------------------------------
show master status; //记录日志文件名称和位置,在两台主上查看。
-----在m1上为m2授予从的权限,在m2上也要给m1授予从的权限----
grant replication slave on . to 'replication' @'192.168.100.%' identified by '123456'; //两台主都执行,从不需要

change master to master_host='192.168.100.20',master_user='replication',master_passWord='123456',master_log_file='mysql_bin.000003',master_log_pos=245;
注意:在m1上要指定m2上的日志文件名和位置参数。在m2上要反过来指定m1的。(注意其中要改的IP地址、文件名及偏移量)

start slave; //开启同步功能
show slave status\G;
Slave_I0_Running: Yes
Slave_SQL_Running: Yes


----------------在两台从上做------注意日志文件和位置参数的改变--------------
注:两台从都需要指向其中的一台主服务器(这里指向m1)
change master to master_host='192.168.100.10',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=245;

start slave; //开启同步
show slave status\G;//查看状态


---------------测试主从、主主、同步情况------------
建立数据库然后测试同步情况


----------------安装MMM-----在所有服务器上安装--------注意,epel源要配置好
yum -y install mysql-mmm*


----------------安装结束后 对mmm进行配置---------------------------------
cd /etc/mysql-mmm/
vim mmm_common.conf //所有主机上都要配置,直接复制多份
<host default>
cluster_interface ens33
.....
replication_user replication
replication_password 123456
agent_user mmm_agent
agent_password 123456

<host db1>
ip 192.168.100.10
mode master
peer db2
</host>

<host db2>
ip 192.168.100.20
mode master
peer db1
</host>

<host db3>
ip 192.168.100.30
mode slave
</host>

<host db4>
ip 192.168.100.40
mode slave
</host>

<role writer>
hosts db1,db2
ips 192.168.100.199 //虚拟IP
mode exclusive
</role>

<role reader>
hosts db3,db4
ips 192.168.100.33, 192.168.100.44 //虚拟IP
mode balanced
</role>

远程复制 覆盖配置文件:
scp mmm_common.conf root@192.168.100.20:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.100.30:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.100.40:/etc/mysql-mmm/
vim /etc/mysql-mmm/mmm_common.conf 挨个查看一下


-----------最后一台监控服务器也需要安装mmm--------(epel源先装好)------
systemctl stop firewalld.service
setenforce 0
wget -0 /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum clean all && yum makecache (可不执行)
yum install -y mysql-mmm*
scp mmm_common.conf root@192.168.100.50:/etc/mysql-mmm/ //在m1上执行


--------------在monitor服务器上配置---------------------------------------
cd /etc/mysql-mmm/
vim mmm_mon.conf
ping_ips 192.168.100.10,192.168.100.20,192.168.100.30,192.168.100.40 //监视器监听的服务器地址
auto_set_online 10 //自动上线时间10秒
<host default>
monitor_user mmm_monitor
monitor_password 123456 //改密码
</host>


---------------在所有数据库上为mmm_agent授权----------(进入数据库)-----------------
grant super, replication client, process on . to 'mmm_agent'@'192.168.100.%' identified by '123456';


---------------在所有数据库上为mmm_moniter授权---------(进入数据库)------------------
grant replication client on . to 'mmm_monitor'@'192.168.48.%' identified by '123456';

flush privileges; //刷新


---------------修改所有数据库的mmm_agent.conf---------------------------------------------
vim /etc/mysql-mmm/mmm_agent.conf
this db1 //根据之前代理名称的规划进行逐一调整


----------------在所在数据库服务器上启动mysql-mmm-agent----------------------------------
systemctl start mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service //开机自启动


----------------在monitor服务器上配置----------------------------------------------------------
cd /etc/mysql-mmm/
vim mmm_mon.conf
..........
ping_ips
192.168.100.10,192.168.100.20,192.168.100.30,192.168.100.40 //数据库服务器地址

auto_set_online 10 //自动上线时间10秒
........
systemctl start mysql-mmm-monitor.service //启动监控服务mysql-mmm-montior

mmm_control show //查看各节点的情况:
db1(192.168.235.132) master/ONLINE. Roles:writer(192.168.100.199)
db2(192.168.235.191) master/ONLINE. Roles:
db3(192.168.235.177) slave/ONLINE. Roles:reader(192.168.100.33)
db4(192.168.235.181) slave/ONLINE. Roles:reader(192.168.100.44)

mmm_control checks all //需要各种OK
mmm_control move_role writer db2 //将虚拟IP200切换到db2服务器上

service mariadb restart //监控机做客户端
systemctl restart mysql-mmm-agent


-----------------------故障测试-----------------------------------------------
停止m1 确认 虚拟地址 200 是否移动到m2上。 注意:主不会抢占。
systemctl stop mariadb.service

然后再监控服务器上 ,查看是否切换到m2上:mmm_control show


可以把从服务器一台也关掉 试一下。 注意:从会抢占

在m1服务器上进数据库为监控机地址授权登录
grant all on . to 'testdba'@'192.168.100.50' identified by '123456';
flush privileges; //刷新

按理来讲监控服务器只单独充当监控这一角色就行了,这里临时将它也作为客户端来配置一下:
yum install -y mariadb-server mariadb


------------------在监控服务器上登录-------------------------------------------
mysql -utestdba -p -h 192.168.100.199 //虚拟地址
创建数据,测试同步情况

脚本到此结束!

本篇总结

.MySQL-MMM适用于数据的一致性要求不是很高,但是又想最大程度地保证业务可用性的场景。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL高可用群集------配置MMM高可用架构

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL高可用群集------配置MMM高可用架构
    MMM简介: MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语...
    99+
    2022-10-18
  • MySQL-MMM高可用群集
    一、MMM简介1、MMM(Master-Master replication manager for MySQL,MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。2、MMM是一套灵...
    99+
    2022-10-18
  • Mysql-MMM高可用群集部署
    何为MMM?MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言...
    99+
    2022-10-18
  • MariaDB-MMM高可用群集
    什么是MMM MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双...
    99+
    2022-10-18
  • 基于MMM搭建MySQL Replication集群高可用架
    MMM介绍 MMM是Multi-Master Replication Manager for MySQL的缩写,它是MySQL提供的一个多主复制管理器,其核心是使用perl语言编写的一组脚本。实际上MMM是...
    99+
    2022-10-18
  • MySQL+MMM 高可用集群部署(二)
    接上期,MySQL主从同步我们已经部署完成,接下来,我们开始部署本期的核心---MMM高可用集群四、MMM高可用集群部署    1、安装依赖包  ...
    99+
    2022-10-18
  • MySQL中MMM高可用架构的安装配置流程
    下文我给大家简单讲讲关于MySQL中MMM高可用架构的安装配置流程,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完MySQL中MMM高可用架构的安装配置流程对大家多少有点帮助吧...
    99+
    2022-10-18
  • 如何部署MySQL-MMM高可用群集
    如何部署MySQL-MMM高可用群集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介MMM(Master-Master re...
    99+
    2022-10-18
  • mysql系列之9--------mmm高可用集群
    mmm高可用集群介绍:     高可用集群介绍:主备模式,当主不能提供服务的时候备用主机接替它提供服务。这个过程对于客户端是透明的。一、前期准备工作 1、准备五台li...
    99+
    2022-10-18
  • MySQL高可用架构-MMM、MHA、MGR、PXC
    主从复制如何工作 在主库把数据记录到binlog(二进制日志)。 备库开IO线程把binlog复制到自己的relaylog(中继日志)。 备库读取中继日志,重放到备库上。 半同步复制 半同步复制可以确保备库拥有主库数据的拷...
    99+
    2015-08-21
    MySQL高可用架构-MMM MHA MGR PXC
  • 怎么在MySQL数据库中实现MMM高可用群集架构
    这篇文章给大家介绍怎么在MySQL数据库中实现MMM高可用群集架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MMM高可用架构说明mmm_mond:监控进程,负责所有的监控工作,决定...
    99+
    2022-10-18
  • 浅淡MySQL集群高可用架构
    前言高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个...
    99+
    2022-10-18
  • Centos7 下 mysql5.7-mmm 高可用群集
    Centos7 下 mysql5.7-mmm 高可用群集 MMM介绍 MMM( Master- Master replication manager for MYSQL, MYSQL主主复制管理器)是一套支...
    99+
    2022-10-18
  • 配置MySQL高可用集群MHA
    配置MySQL高可用集群+++++++++++++++++++主机角色 :客户端 client50数据库服务器 mysql51 到 mysql55管理主机 mgm56VIP地址 ...
    99+
    2022-10-18
  • MHA实现MySQL高可用集群架构
    转转连接 https://www.cnblogs.com/tanxiaojun/p/10424699.html MHA简介 MHA(Master HighAvailability)目前在MySQL高可...
    99+
    2022-10-18
  • MySQL-MMM 高可用
    MMM 简介         MMM (Master-Master relication manager fro MySQL ...
    99+
    2022-10-18
  • harbor高可用集群配置
    arbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,而且提供了一个非常漂亮的web界面。说明...
    99+
    2023-06-05
  • MySQL中怎么实现集群高可用架构
    今天就跟大家聊聊有关MySQL中怎么实现集群高可用架构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL+DRDB架构通过DRBD基于bloc...
    99+
    2022-10-18
  • MySQL 高可用之MMM
    原文地址:...
    99+
    2021-09-05
    MySQL 高可用之MMM 数据库入门 数据库基础教程 数据库 mysql
  • MySQL高可用架构-MMM、MHA、MGR、PXC(补小结,laoqi)
    小结 MMM是 MHA是 MGR是 主从复制如何工作 在主库把数据记录到binlog(二进制日志)。 备库开IO线程把binlog复制到自己的relaylog(中继日志)。 备库读取中继日志,重放到备库上。 半同步复制 半...
    99+
    2019-01-17
    MySQL高可用架构-MMM MHA MGR PXC(补小结,laoqi)
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作