MySQL高可用集群

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 [email protected]'%' identified by "123456";

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

mysql> grant replication client,process,super on *.* to [email protected]'%'

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服务

[[email protected] ~]# /etc/init.d/mysql-mmm-agent start (stop,status)

[[email protected] ~]# netstat -anptu |grep 9989

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

[[email protected] ~]# /etc/init.d/mysql-mmm-monitor start

[[email protected] ~]# netstat -anptu |grep 9988

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

[[email protected] ~]# mmm_control show

[[email protected] ~]# 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。

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

时间: 2024-10-07 14:15:25

MySQL高可用集群的相关文章

通过MMM构建MYSQL高可用集群系统

本文为南非蚂蚁的书籍<循序渐进linux-第二版>-8.4的读笔记 MMM集群套件(MYSQL主主复制管理器) MMM套件主要的功能是通过下面三个脚本实现的 1)mmm_mond 这是一个监控进程,运行在管理节点上,主要负责都所有数据库的监控工作,同时决定和处理所有节点的角色切换 2)mmm_agentd 这是一个代理进程,运行在每个MYSQL服务器上,主要完成监控的测试工作以及执行简单的远端服务设置 3)mmm_control 简单的管理脚本,用来查看和管理集群运行状态,同事管理mmm_mo

基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以在未来的日子Corosync会逐渐取代Heartbeat.本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案. 相关介绍 Corosync Corosync是从OpenAIS中分支出来的一个项目,它在传递信息的时候可以通过一个简单的配置文件来定

heartbeat v2配置高可用web集群和基于nfs搭建MySQL高可用集群

安装环境:Centos 6.4, httpd2.4,mysql5.5,heartbeat v2 提供两台机器node1和node2,在/etc/hosts文件中添加名称解析,并且主机名称要与节点名称要相同,即uname -n的名称要和hosts定义的名称必须一样. #   IP                         HOSTNAME             ALIAS 10.204.80.79     node1.mylinux.com     node1 10.204.80.80  

mysql高可用集群——MHA架构

目录 1.下载 2.搭建mha 2.1 系统配置 2.2 架构 2.3 添加ssh公钥信任 2.4 安装mha节点 2.5 manager配置文件 2.6 检查 2.7 启动manager进程 2.8 碰到的问题 3.测试切换 3.1 正常切换测试 3.2 回切测试 3.3 雪崩测试 3.4 主从不一致切换测试 下载 mha链接地址:http://pan.baidu.com/s/1pJkDGX9#dir/path=%2Fmysql%2FHA%2Fmha 或者:https://code.googl

mysql高可用集群——heartbeat+drbd

heartbeat+drbd+mysql是一种早期的mysql高可用技术. 资料来源:http://www.drbd.org DRBD原理:DRBD是对磁盘块操作的复制,可看做网络raid1.不复制磁盘内容,只复制操作.原理可见下图 架构描述 服务器列表 192.168.1.82 192.168.1.1 3306 主 /dev/drbd0 192.168.1.82 192.168.1.2 3306 备 /dev/drbd0 架构图 安装配置: 配置drbd 1.检查机器名解析: 1.查看解析 s

企业主流MySQL高可用集群架构三部曲之PXC

前段时间,老张给大家介绍了企业中主流MySQL高可用集群架构三部曲中的前两部,有不了解的同学可以去访问我之前的博客内容. 第一部曲直通车>> 企业中MySQL主流高可用架构实战三部曲之MHA 第二部曲直通车>>企业中MySQL高可用集群架构三部曲之MM+keepalived 独家新课程上线>>MySQL体系结构深入剖析及实战DBA视频课程 今儿给大家介绍最后一部曲,是percona公司的percona xtraDB cluster.简称PXC.它是基于GaLera协议的

基于heartbeat v2 crm实现基于nfs的mysql高可用集群

前言 因heartbeat v1内置的资源管理器haresource功能比较简单,且不支持图形化管理,所以heartbeat v2不再支持haresource,转而使用更加强大的资源管理器crm进行集群管理.本文将讲解如何基于heartbeat v2 crm实现基于nfs的mysql高可用集群. 高可用实现 实验拓扑 实验环境 node1:172.16.10.123 mariadb-5.5.36 CentOS6.6 node2:172.16.10.124 mariadb-5.5.36 CentO

配置MySQL高可用集群MHA

配置MySQL高可用集群+++++++++++++++++++主机角色 :客户端 client50数据库服务器 mysql51 到 mysql55管理主机 mgm56VIP地址 192.168.4.100拓扑结构: client50 | mysql51主 | | | | | |mysql52 mysql53 mysql54 mysql55 mgm56从 从 从 从 管理集群备用主 备用主+++++++++++++++++++++++++++++++++++++++++++++++++++++++

mysql高可用集群方案

这里有一篇关于Mysql高可用方案的干货文章:[干货分享] 一文了解数据库高可用容灾方案的设计与实现 网友们公司中的使用方案讨论:想问各位大大 MySQL 是怎么做高可用的? 一.Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案. 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+Heartbeat) 方案三:主从复制架构 主从复制(一主多从) MMM架构(双主多从) MHA架构(多主多从) 方案四:数

# IT明星不是梦 # MySQL高可用集群之MMM

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