温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-15 21:22:14 来源:网络 阅读:14558 作者:攀岩人生 栏目:建站服务器

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

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

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

二、部署实施

1、环境介绍

OS:centos7.264位)数据库系统: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进行安装相关的依赖包

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

安装perl相关的库

mysql 群集架构mmm高可用群集及服务器上线 字有点小(cpan -i Algorithm::Diff Class::Singleton DBI DBD::mysql Log::Dispatch Log::Log4perl Mail::Send Net::ping Proc::Daemon Time::HiResParams::Validate Net::ARP

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

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

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

测试能否ping通,进行通信

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

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

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

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

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

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

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

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

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

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

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

其余两台master2slave按照上图执行

创建主从复制环境,master1master2slave的主,master2master1的主

创建授权连接用户

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

两台master上都执行

查看master1的状态

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

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

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

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

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

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

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

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

下图是在master1上执行的

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

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

设置mysql-mmm

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

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

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

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

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

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

mysql-mmm安装

montior主机上安装监控程序

mysql 群集架构mmm高可用群集及服务器上线 安装下载后的包

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

master1master2slave中安装代理

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

配置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循环语句分发给其他三台主机

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

代理文件需要在master1master2slave中修改/mmm_agent.conf

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

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

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

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

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

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

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

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

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

每个参数的意思

<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正常模式,1debug模式

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

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

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

chkconfig --add mysql-mmm-monitor

chkconfig mysql-mmm-monitor on

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

把服务器上线

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

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

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

查看所有的群集状态

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

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI