mysql 群集架构mmm高可用群集及服务器上线

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

优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预。

缺点:monitor节点是单点,不过这个你也可以结合keepalived或者haertbeat做成高可用;至少三个节点,对主机的数量有要求,需要实现读写分离,还需要在前端编写读写分离程序。在读写非常繁忙的业务系统下表现不是很稳定,可能会出现复制延时、切换失效等问题。MMM方案并不太适应于对数据安全性要求很高,并且读、写繁忙的环境中。

二、部署实施

1、环境介绍

OS:centos7.2(64位)数据库系统:mysql5.7.13   关闭selinux


主机


Ip


Hostname


Server--id


Master1


192.168.119.129


Master1


1


Master2


192.168.119.130


Master2


2


Slave


192.168.119.131


Slave


3


Montior


192.168.119.132


Montior


4

使用yum进行安装相关的依赖包

安装perl相关的库

 字有点小(cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::ping Proc::Daemon Time::HiResParams::Validate Net::ARP)

在/etc/hosts里添加地址和主机名

测试能否ping通,进行通信

在master1中添加mysql   /etc/my.cnf主配置参数文件

在master2中添加/etc/my.cnf主配置文件

在slave中添加/etc/my.cnf主配置文件

修改完后关闭防火墙,启动mysql服务

其余两台master2、slave按照上图执行

创建主从复制环境,master1是master2、slave的主,master2是master1的主

创建授权连接用户

两台master上都执行

查看master1的状态

在master2上建立连接实现主从复制

启动slave查看是否连接必须为yes

在slave上建立连接实现主从复制

把master2设为主跟上面的步骤一样,只需把ip地址改一下即可

上面的已经把主主复制及主从复制做ok了

设置mysql-mmm

在master1上创建代理账号、创建监控账号,因为已经主从复制了就可以在主上面创建了,会同步的

查看那两台是否都存在监控和代理账号

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

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

mysql-mmm安装

在montior主机上安装监控程序

安装下载后的包

在master1、master2、slave中安装代理

配置mmm,要求必须四台主机必须一样的配置文件

安装后的所有配置文件都存放在/etc/mysql-mmm/下面,管理和数据库服务器上都要包含一个共同的文件mmm_common.cof,配置文件如下:

active_master_role      writer

<host default>

cluster_interface               eno16777736

pid_path                                /var/run/mmm_agentd.pid

bin_path                                /usr/lib/mysql-mmm/

replication_user                       rep

replication_password                   123

agent_user                      qqq

agent_password                  123

</host>

<host master1>

ip                                      192.168.119.129

mode                                   master

peer                                    master2

</host>

<host master2>

ip                                      192.168.119.130

mode                                   master

peer                                    master1

</host>

<host slave>

ip                                      192.168.119.131

mode                                   slave

</host>

<role writer>

hosts                                   master1,master2

ips                                      192.168.119.10

mode                                   exclusive

</role>

<role reader>

hosts                                   master1,master2, slave

ips                                     192.168.119.11,192.168.119.22,192.168.119.33

mode                                   balanced

</role>

使用for循环语句分发给其他三台主机

代理文件需要在master1、master2、slave中修改/mmm_agent.conf

this后面添加本地主机名就可以了

启动代理进程   需要进入脚本/etc/init.d/mysql-mmm-agent脚本

把mmm添加为系统服务并设置为自启

能显示出来ok证明前面做的没有问题,在三台代理的主机都设置

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

每个参数的意思

<monitor>

ip     127.0.0.1   设置只在本机监听,mmm_mond默认监听9988

pid_path    /var/run/mmm_mond.pid

bin_path    /usr/lib/mysql-mmm/

status_path  /var/lib/misc/mmm_mond.status

ping_ips  192.168.119.129,192.168.119.130,192.168.119.131  用于测试网络可用性 IP 地址列表

auto_set_online  0             设置自动online的时间,默认是60s

</monitor>

<check default>

check_period   5           检查周期默认为5s

trap_period   10           一个节点被检测不成功的时间持续trap_period秒

timeout      2            检查超时的时间

restart_after   10000     在完成restart_after次检查后,重启checker进程,默认值:10000

max_backlog   86400     记录检查rep_backlog日志的最大次数

</check>

<host default>

monitor_user  www         监控db服务器的用户

monitor_password  123      监控db服务器的密码

</host>

debug  0                  debug 0正常模式,1为debug模式

启动监控进程在/etc/init.d/mysql-mmm-monitor文件中添加

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

chkconfig --add mysql-mmm-monitor

chkconfig mysql-mmm-monitor on

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

把服务器上线

检查所有的db服务器群集状态

查看所有的群集状态

查看命令,监控命令参数有很多,可以从网上查找。

时间: 2024-10-17 21:31:43

mysql 群集架构mmm高可用群集及服务器上线的相关文章

mysql群集架构mmm高可用群集

MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.优点:高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性.当主服务器挂掉以后,另一个主立即接管,其他的从服务器能自动切换,不用人工干预. master1 ip地址:192.168.60.135master2 ip地址:192.168.60.136slave1 ip地址:192.168.60.143sl

MySQL数据库——MMM高可用群集架构

概念 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的). MMM高可用架构说明 mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动.此脚本需要在监管机上运行. mmm_agentd:运行在每个mysql服务器上的代理

MySQL数据库——MMM高可用群集配置(实战!)

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

MMM高可用群集

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

mysql系列之--------mmm高可用集群

mmm高可用集群介绍: 高可用集群介绍:主备模式,当主不能提供服务的时候备用主机接替它提供服务. 这个过程对于客户端是透明的. 一.前期准备工作 1.准备五台linux服务器:主(192.168.4.122),主备(192.168.4.123) 从(192.168.4.126),从(192.168.4.127),管理主机(192.168.4.128) 四台主机做主从的用户名:tongbu,密码:123456 2.主和主备做成相互的主从模式,两台从服务器做成主备的从 3.IP规划,write-vi

MySQL—MMM高可用群集的搭建(全过程,纯干货~~)

本篇文章主要介绍搭建MMM方案以及MMM架构的原理.MMM方案不适用对数据一致性要求很高的业务.下面一起来学习学习. 先来看看具体的架构拓扑,如下: 其中, 角色 Hosts IP地址 应用属性 VIP master1 master 192.168.142.135 write 192.168.142.188 master2 backup 192.168.142.132 write|read 192.168.142.188 slave1 slave 192.168.142.136 read 192

详解 MySQL 高可用群集,MMM搭建高可用

目录: 1·MMM 简介2·MMM 各个角色说明3·案例环境介绍4·案例实施5·总结 一:MMM 简介: 1)MMM 是什么:说得简单点,就是 MySQL 主主复制的管理器.之前的一篇文章讲述了 MySQL的主从复制 + 读写分离,其中原理都相同,有兴趣的朋友可以访问:MySQL主从复制 + 读写分离 2)还有就是,虽然是主主复制,但是在业务上的话,同一时间值额能对一个主进行写入,另一台就是备选.它可以实现故障切换,还可以实现多个 Slave 读 的负载均衡.可以自动或者手动切换主服务器,因为可

Consul, ProxySQL and MySQL MHA(mysql 读写分离,高可用)

背景:mysql 官方目前没有提供比较成熟,稳定的高可用的方案,使得Mysql的高可用方案相对较少,一般都只有简单的主从,今天和大家分享一个Consul, ProxySQL and MySQL MHA架构的高可用方案: 架构特性:1,高可用2,读写分离,查询路由3,sql过滤等功能 Installation of Consul:Firstly, we'll need to install the required packages, download the Consul archive and

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

为什么要使用MySQL高可用群集 在实际生产环境中,当普通的MySQL主从复制和读写分离不能满足实际需求时,就需要考虑MySQL的高可用群集,出于安全角度考虑,当数据访问量过大带来主服务器负载增大,当出现主服务器宕机一个时,保证数据服务不会中断的情况下,从服务器会自动寻找另一主服务器,而从服务器也会像主服务器一样,当其中一个宕机时,依旧可以保证服务不会中断. MMM高可用架构 什么是MMM? MMM(Master-Master replication manager for MySQL)是一套支