码迷,mamicode.com
首页 > 数据库 > 详细

MySQL高可用集群

时间:2018-01-27 00:29:45      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:path   default   ant   net   客户端连接   mis   mysql-mmm   add   clust   

1 MMM概述

1.1 关于mysql-mmm

MySQL主主复制管理器

MySQL主主复制配置的监控,故障转移和管理的一套脚本套件;

能对居于标准的主从配置的任意数量的从服务器进行读负载均衡和实现数据备份;

通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。

1.2 高可用集群介绍:

主备模式 当主不能提供服务的时候备用主机接替它提供服务,这个过程对于客户端是透明的。

1.3 前提环境:主从从结构

4台数据库服务器,2台互为主主,另2台为主中的一台的从。


2 Mysql-MMM构架

2.1 服务器角色

管理节点:mmm-monitor(服务进程)

#负责所有的监控工作的监控守护进程,决定故障节点的移除或恢复;

数据库节点:mmm-agent(服务进程)

#运行在Mysql服务器上的代理守护进程,提供简单远程服务集,提供给监控节点;

2.2 核心软件包及作用

Net-ARP:分配虚拟Ip地址

mysql-mmm 构架的核心进程

2.3 配置

(1)tar -xf mysql-mmm-2.2.1.tar.gz(所有主机上安装)

查看说明文件,执行make install

配置文件路径:/etc/mysql-mmm

(2)修改数据节点主机mmm_agentd服务的配置文件

vim /etc/mysql-mmm/mmm_agent.conf #指定服务器在集群中的名称,不能重复

this 主机名  #配置声明自己的主机名

(3)修改管理节点主机mmm_monitor服务的配置文件

vim /etc/mysql-mmm/mmm_mon.conf

include mmm_common.conf  #加载公共配置文件

<monitor>

        ip                    192.168.4.55  #管理节点主机(即监控主机的IP地址)

        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.4.51, 192.168.4.52, 192.168.4.53, 192.168.4.54

                      #设置被监控的数据库

</monitor>

<host default>

        monitor_user             monitor   #监控数据库的mysql用户

        monitor_password        123456

</host>

debug 0  #启动服务不显示启动信息(1显示)

(4)修改公共配置文件

active_master_role      writer

<host default>

        cluster_interface               eth0

        pid_path                       /var/run/mmm_agentd.pid

        bin_path                       /usr/lib/mysql-mmm/

replication_user          ser51  

#设置主从同步的用户,要和主数据库给本机授权的用户一致,

#可在/var/lib/mysql/master.info 中查看

    replication_password    123456

        agent_user           agent  #mmm_agent控制用户

        agent_password      123456

</host>

<host master51>  #设置第一个主服务器

        ip                  192.168.4.51 #主服务器IP

        mode              master

        peer               master52 #指定另一台主服务器

</host>

<host master5>  #设置第二个主服务器

        ip                  192.168.4.52

        mode               master

        peer                master51

</host>

<host slave53>

        ip                   192.168.4.53

        mode               slave

</host>

<host slave54>  #设置第一个从服务器

        ip                   192.168.4.54

        mode               slave

</host>

<role writer>    #设置写服务器工作模式

        hosts            master51,  imaster52 #写的主服务器

        ips              192.168.4.100   #设置VIP地址

        mode            exclusive       #只允许一个使用

</role>

<role reader>

        hosts            slave53,  slave54

        ips              192.168.4.101, 192.168.4.102

        mode            balanced   #均衡模式

</role>

(5)根据配置文件设置,在数据节点主机添加对应的授权用户

管理节点监控数据库用户授权

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

数据库节点控制数据库用户授权

mysql> grant replication client,process,super on *.* to agent@'%'

identified by "123456";

2.4 安装依赖关系

yum -y install perl.*

yum -y install gcc gcc-c++

tar -xf Algorithm-Diff-1.1902.tar.gz

cd Algorithm-Diff-1.1902

perl  Makefile.PL

make

make install

rpm -ivh perl-Log-Log4perl-1.26-1.el6.rf.noarch.rpm

tar -zxf Proc-Daemon-0.03.tar.gz

cd Proc-Daemon-0.03

perl Makefile.PL

make

make install

gunzip Net-ARP-1.0.8.tgz

tar -xf Net-ARP-1.0.8.tar

cd Net-ARP-1.0.8/

perl Makefile.PL

make

make install

2.5启动服务

(1)启动数据节点主机mmm_agentd服务

[root@ser51 ~]# /etc/init.d/mysql-mmm-agent start (stop,status)

[root@ser55 ~]# netstat -anptu |grep 9989

(2)启动管理节点主机mmm_monitor服务

[root@ser55 ~]# /etc/init.d/mysql-mmm-monitor start

[root@ser55 ~]# netstat -anptu |grep 9988

(3)在管理节点主机上,查看监控信息

[root@ser55 ~]# mmm_control show

[root@ser55 ~]# mmm_control set_online master51(agent配置文件里设置的名称;set_offine:不在线状态)

(1)数据节点主机查看 VIP 地址?

ip  addr  show   |  grep  192.168.4.

2.6 测试

mysql> grant all on *.* to  用户名@'%' identified by "123456";

#授权客户端连接数据库用户

mysql  -h192.168.4.100  -u用户名  -p123456

无论关掉master51的还是master52的数据库服务,此时VIP会被其中一个占用,用户连接同样的VIP一样能够连接数据库,且在数据库进行操作后,挂掉主的数据库服务器重启启用后,数据会自动同步。此时VIP不会被抢占。

停掉agent服务,当其中一个主数据库停掉,监控不能够自动切换VIP。


MySQL高可用集群

标签:path   default   ant   net   客户端连接   mis   mysql-mmm   add   clust   

原文地址:http://blog.51cto.com/13452945/2065676

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!