广告
返回顶部
首页 > 资讯 > 数据库 >如何部署MySQL-MMM高可用群集
  • 647
分享到

如何部署MySQL-MMM高可用群集

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

如何部署Mysql-MMM高可用群集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介MMM(Master-Master re

如何部署Mysql-MMM高可用群集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

简介

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

MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。对于那些对数据的一致性要求很高的业务,非常不建议采用MMM这种高可用架构

实验拓扑图

如何部署MySQL-MMM高可用群集

实验目标

搭建mysql高可用群集

实验环境

如何部署MySQL-MMM高可用群集

在5台服务器上关闭防火墙,安全
setenforce 0
systemctl stop firewalld.service

实验步骤

一、master01、master02、slave01、slave02、monitor 5台mysql服务器配置
1.配置all云源(yum源)

wget -O /etc/yum.repos.d/Centos-Base.repo Http://mirrors.aliyun.com/repo/Centos-7.repo`

2.配置epel源(最新版本)

yum -y install epel-release

3.加载元数据缓存

yum clean all && yum makecache`

4.安装mariadb数据库和mysql-mmm软件包

yum install mariadb-sever mariadb  mysql-mmm*  -y

5.修改mariadb数据库主配置文件

vim /etc/my.cnf
[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       #字符集
log_bin=mysql_bin            #开启二进制文件
server_id=1                   #id号是唯一的
log_slave_updates=true         #同步开启
sync_binlog=1                  #同步二进制日志,1设为安全值
auto_increment_increment=2      #自增列,起点为1,增量为2
auto_increment_offset=1

备注:分别修改master02、slave01、slave02的配置文件server_id参数

6.启动mariadb 服务

systemctl enable mariadb       #开机自启动mariadb
systemctl start mariadb.service  #启动mariadb 服务

二、主、主复制(主服务器之间相互复制)
1.登录mariadb,在主服务器master1上授权

mysql
grant replication slave on *.* to 'replication'@'192.168.65.%' identified by '123456';

如何部署MySQL-MMM高可用群集

2.在master1上指定master2的日志和位置参数

change master to master_host='192.168.65.142',master_user='replication',master_passWord
='123456',master_log_file='mysql_bin.000003',master_log_pos=245;

3.开启同步
start slave;
如何部署MySQL-MMM高可用群集

4.在主服务器master2上授权

mysql
grant replication slave on *.* to 'replication'@'192.168.65.%' identified by '123456';

如何部署MySQL-MMM高可用群集

5.在master2上指定master1的日志和位置参数

change master to 
master_host='192.168.65.159',master_user='replication',master_password='123456',
master_log_file='mysql_bin.000003',master_log_pos=245;

6.开启同步

start slave;
show slave status\G

如何部署MySQL-MMM高可用群集

7.从服务器同步主(两台从服务器都指向同一台主服务器)
两台从服务器同样操作:

mysql
change master to master_host='192.168.65.159',master_user='replication',master_password='123456',master_log_file='mysql_bin.000003',master_log_pos=245;(# 注意主服务器位置参数变化)
start slave;   #开启同步

如何部署MySQL-MMM高可用群集
如何部署MySQL-MMM高可用群集

8.测试:四台全部同步
如何部署MySQL-MMM高可用群集
如何部署MySQL-MMM高可用群集
如何部署MySQL-MMM高可用群集
如何部署MySQL-MMM高可用群集

三、配置mysql-MMM服务器(5台服务器都配置)
1.编辑mysql-mmm的配置文件

vim mmm_common.conf          #所有主机都要配置,复制
<host default>
    cluster_interface         ens33    #修改网卡为ens33
    pid_path               /run/mysql-mmm-agent.pid
    bin_path               /usr/libexec/mysql-mmm/
    replication_user         replicantion
    replication_password     123456   #修改Mariadb给予权限的用户密码
    agent_user             mmm_agent
    agent_password         123456    #修改agent客户端代理用户密码
</host>

<host db1>  #指定第一个数据库
    ip      192.168.65.159   #指定IP地址
    mode    master   #模式为主服务器
    peer    db2    #与db2互为切换
</host>

<host db2>  #指定第二个数据库
    ip      192.168.65.142  #指定IP地址
    mode    master  #模式为主服务器
    peer    db1   #与db1互为切换
</host>

<host db3>  #指定第二个数据库
    ip      192.168.65.165  #指定IP地址
    mode    slave  #模式为从服务器
</host>

<host db4>   #指定第二个数据库 
    ip      192.168.65.152  #指定IP地址
    mode    slave   #模式为从服务器
</host>

<role writer>  #指定写入服务器
    hosts   db1, db2  #指定db1,db2为写入服务器
    ips     192.168.65.100  #指定写入虚拟ip地址
    mode    exclusive  #模式为单独的(只能有一个)
</role>

<role reader>  #指定读取服务器
    hosts   db3, db4  #指定db1,db2为写入服务器
    ips     192.168.65.101, 192.168.100.65.102  #指定读取虚拟ip地址
mode    balanced  #模式为负载均衡,读取操作会从db3、db4主机进行

2.将配置文件传输到其它4台数据库服务器上

scp mmm_common.conf root@192.168.65.142:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.65.152:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.65.165:/etc/mysql-mmm/
scp mmm_common.conf root@192.168.65.164:/etc/mysql-mmm/

备注:一定要去其它4台服务器上确认已修改!

3.monitor配置

cd /etc/mysql-mmm/
vim mmm_mon.conf          #改密码
  ping_ips            192.168.65.159,192.168.65.142,192.168.65.152,192.168.65.165
  auto_set_online     10   #修改为10,表示10秒钟上线
...... 省略部分内容
  <host default>
    monitor_user        mmm_monitor     #监控机用户名
    monitor_password    123456           #修改密码
</host>

4.在所有数据库上为mmm_agent授权
grant super,replication client,process on *.* to 'mmm_agent'@'192.168.65.%' identified by '123456';

6在所有数据库上为mmm_monitor授权

grant replication client on *.* to 'mmm_monitor'@'192.168.65.%' identified by '123456';
flush privileges; #刷新生效

7.在4台数据库上分别修改mmm_agent.conf

vim mmm_agent.conf 
   this is db1/2/3/4  #在4台数据库分别修改

8启动mysql-mmm-agent

systemctl restart mysql-mmm-agent.service
systemctl enable mysql-mmm-agent.service

9.启动mysql-mmm-monitor
systemctl start mysql-mmm-monitor.service    #启动服务

10.检查所有选项

mmm_control show    #查看各节点情况
mmm_control checks all

如何部署MySQL-MMM高可用群集

11.可以手动切换主服务器
mmm_control move_role writer db2
如何部署MySQL-MMM高可用群集

四、模拟故障
1.先停止db1,db3
systemctl stop mariadb
如何部署MySQL-MMM高可用群集
如何部署MySQL-MMM高可用群集

2.再查看mysql-mmm服务器状态
mmm_control show
如何部署MySQL-MMM高可用群集

3.恢复db1,db3上线
如何部署MySQL-MMM高可用群集

4.再查看mysql-mmm服务器状态
mmm_control show
如何部署MySQL-MMM高可用群集
5.当db1服务器恢复后,并不会抢占vip地址,而是作为备用机在等待着,
当db2下线后,再次查看
如何部署MySQL-MMM高可用群集

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 如何部署MySQL-MMM高可用群集

本文链接: https://www.lsjlt.com/news/61309.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高可用群集
    如何部署MySQL-MMM高可用群集,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简介MMM(Master-Master re...
    99+
    2022-10-18
  • MySQL+MMM 高可用集群部署(二)
    接上期,MySQL主从同步我们已经部署完成,接下来,我们开始部署本期的核心---MMM高可用集群四、MMM高可用集群部署    1、安装依赖包  ...
    99+
    2022-10-18
  • Mysql-mmm集群部署
      90主 <----------> 91主    |    |    |  ------------...
    99+
    2022-10-18
  • MySQL-MMM高可用群集
    一、MMM简介1、MMM(Master-Master replication manager for MySQL,MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。2、MMM是一套灵...
    99+
    2022-10-18
  • mysql MMM高可用的部署
    这篇文章给大家分享的是mysql MMM高可用的部署,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。1 环境:1.1 OS and MYSQL verson:...
    99+
    2022-10-18
  • MariaDB-MMM高可用群集
    什么是MMM MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双...
    99+
    2022-10-18
  • MySQL中的MMM集群部署是怎样的
    MySQL中的MMM集群部署是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MySQL-MMM集群部署MMM(Maste...
    99+
    2022-10-18
  • MySQL高可用群集------配置MMM高可用架构
    MMM简介: MMM(Master-Master replication manager for Mysql,Mysql 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语...
    99+
    2022-10-18
  • mysql系列之9--------mmm高可用集群
    mmm高可用集群介绍:     高可用集群介绍:主备模式,当主不能提供服务的时候备用主机接替它提供服务。这个过程对于客户端是透明的。一、前期准备工作 1、准备五台li...
    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
  • 基于MMM搭建MySQL Replication集群高可用架
    MMM介绍 MMM是Multi-Master Replication Manager for MySQL的缩写,它是MySQL提供的一个多主复制管理器,其核心是使用perl语言编写的一组脚本。实际上MMM是...
    99+
    2022-10-18
  • 如何在Kubernetes上部署Redis高可用集群
    如何在Kubernetes上部署Redis高可用集群,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 Redis 介绍Redis 代表REmote DI...
    99+
    2023-06-15
  • Rancher 2.4.3 - HA 部署高可用k8s集群
    对于生产环境,需以高可用的配置安装 Rancher,确保用户始终可以访问 Rancher Server。当安装在Kubernetes集群中时,Rancher将与集群的 etcd 集成,并利用Kubernetes 调度实现高可用。为确保高可用...
    99+
    2023-01-31
    集群 Rancher k8s
  • MySQL—MMM高可用群集的搭建(全过程,纯干货~~)
    本篇文章主要介绍搭建MMM方案以及MMM架构的原理。MMM方案不适用对数据一致性要求很高的业务。下面一起来学习学习。 先来看看具体的架构拓扑,如下: 其中, 角色 Hosts IP地址 应用属性 V...
    99+
    2022-10-18
  • Kubernetes​怎么部署高可用kube-apiserver集群
    这篇文章主要讲解了“Kubernetes怎么部署高可用kube-apiserver集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes怎么部署高可用kube-apiserv...
    99+
    2023-06-29
  • MySQL之高可用集群部署及故障切换实现
    一、MHA  1、概念 2、MHA 的组成 3、MHA 的特点 二、搭建MySQL+MHA 思路和准备工作 MHA架构 数据库安装 一主两从 MHA搭建 故障模拟 模拟主库失效 备选主库成为主库 原故...
    99+
    2022-05-24
    MySQL 高可用集群部署 MySQL 高可用集群 MySQL 故障切换
  • 怎么在MySQL数据库中实现MMM高可用群集架构
    这篇文章给大家介绍怎么在MySQL数据库中实现MMM高可用群集架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MMM高可用架构说明mmm_mond:监控进程,负责所有的监控工作,决定...
    99+
    2022-10-18
  • php中什么是集群部署?如何实现集群部署?
    随着互联网进入快速发展的时代,各种网站、应用如雨后春笋般出现,人们对于服务的需求越来越高。而随着用户量增加,单一服务器已经无法满足需求,集群部署PHP项目成为解决方案之一。一、什么是集群部署?集群部署是将多台服务器组合在一起,按照特定的方式...
    99+
    2023-05-14
    集群部署 php
  • 如何部署Spark集群
    今天就跟大家聊聊有关如何部署Spark集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 安装环境简介硬件环境:两台四核cpu、4G内存、500...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作