一、MHA简介

MHA(Master High Availability)目前在mysql高可用方面比较成熟。是一套优秀的作为
mysql高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA
能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA
能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。管理节点可以单独部署在一台独立的机器上来管理多个master-slave集群,也可以部署在一台slave节点上。数据节点运行在每台mysql服务器上。Manager会定期检查master,若出现故障时,会自动将最新数据的slave提升为新的master,然后将其他的slave指向新的master。整个故障转移程序完全透明。

二、搭建过程

server2  :master  node

Server3和server4: slave  node

Server5:Manager

在server2、3、4为gtid主从复制的环境下进行mysql的高可用搭建。(gtid的主从复制的搭建,可以参考之前博客https://www.cnblogs.com/uthnb/p/9719800.html)

1)首先进行软件的安装:(在server2、3、4为gtid主从复制的情况进行如下操作)

Server2:

---> yum  install  mha4mysql-node-0.56-0.el6.noarch.rpm

Server3:

---> yum  install  mha4mysql-node-0.56-0.el6.noarch.rpm

--->  mysql  -p

Mysql >  set  global  read_only=1            # 设置节点为只读

Server4:

---> yum  install  mha4mysql-node-0.56-0.el6.noarch.rpm

---> mysq  -p

Mysql > set global  read_only=1

Server5:

---> yum  install  mha4mysql-node-0.56-0.el6.noarch.rpm  
mha4mysql-manager-0.56-0.el6.noarch.rpm

perl-Config-Tiny-2.12-7.1.el6.noarch.rpm   
perl-Email-Date-Format-1.002-5.el6.noarch.rpm

perl-Log-Dispatch-2.27-1.el6.noarch.rpm    perl-Mail-Sender-0.8.16-3.el6.noarch.rpm

perl-Mail-Sendmail-0.79-12.el6.noarch.rpm  
perl-MIME-Lite-3.027-2.el6.noarch.rpm

perl-MIME-Types-1.28-2.el6.noarch.rpm      
perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm

2)对manager(server5)进行配置

--->  mkdir /etc/masterha

--->  cd  /etc/masterha

--->  vim  app1.cnf

[server default]

manager_workdir=/etc/masterha

manager_log=/etc/masterha/manager.log

master_binlog_dir=/var/lib/mysql

#master_ip_failover_script= /usr/local/bin/master_ip_failover

#master_ip_online_change_script= /usr/local/bin/master_ip_online_change

password='Xniu+123'

user=root ping_interval=1

remote_workdir=/tmp0

repl_password='Xniu+123'

repl_user=repl

#report_script=/usr/local/send_report

#secondary_check_script= /usr/local/bin/masterha_secondary_check -s server03 -s server02             #shutdown_script=""

ssh_user=root

[server2]

hostname=172.25.2.2

port=3306

[server3]

hostname=172.25.2.3

port=3306

candidate_master=1

check_repl_delay=0

[server4]

hostname=172.25.2.4

port=3306

--->  masterha_check_ssh --conf=/etc/masterha/app1.cnf   # 此时会出现三个节点之间ssh连接验证问题。

解决方法:在server5中生成密钥并分发给各个节点即可。

--->  ssh-keygen            # 全部回车

--->  ssh-copy-id  172.25.2.5            # 把本机设置为锁

--->  scp -r .ssh/ server2:              # 把生成的key复制给各个节点

--->  scp -r .ssh/ server3:

--->  scp -r .ssh/ server4:

# 再次执行ssh的检测,是以下状态代表成功

--->  masterha_check_ssh  --conf=/etc/masterha/app1.cnf

--->  masterha_check_repl  --conf=/etc/masterha/app1.cnf       # 进行repl同步复制的检测,会出现如下问题

# 解决方法如下:在server2中进行root用户的授权,在srver3和4中对repl用户授权

Server2:   # 创建监控用户

Mysql > grant all  on *.* root@’%’ identified by  ‘Xniu+123’;

Server3和server4:

Mysql> grant replication slave on *.* to repl@’%’ identified  by  ‘Xniu+123’;

# 修改之后,在执行repl的检测是ok的。

3)查看MHA MANAGER的状态

---> masterha_check_status --conf=/etc/masterha/app1.cnf  # 此时监控还没有打开

4)启动MHA Manager监控

5) 查看启动日志

# 最后一行Ping(SELECT) succeeded, waiting until MySQL doesn't respond.."说明整个系统已经开始监控了。

mysql5.7高可用架构之MHA的更多相关文章

  1. MySQL系列:高可用架构之MHA

    前言 从11年毕业到现在,工作也好些年头,入坑mysql也有近四年的时间,也捣鼓过像mongodb.redis.cassandra.neo4j等Nosql数据库.其实一直想写博客分享下工作上的零零碎碎 ...

  2. mysql高可用架构之MHA,haproxy实现读写分离详解

    MySQL高可用架构之MHA 一.运维人员需要掌握的MySQL技术: 1.基本SQL语句 2.基本的管理[库表数据的管理    权限的管理] 3.容灾       保证数据不丢失. 二.工作中MySQ ...

  3. (转)MySQL高可用架构之MHA

    MySQL高可用架构之MHA  原文:http://www.cnblogs.com/gomysql/p/3675429.html 简介: MHA(Master High Availability)目前 ...

  4. mysql实现高可用架构之MHA

    一.简介 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能.MHA 在监控到 mas ...

  5. mysql +keeplive+drbd高可用架构(MHA基于监听端口VIP的高可用)

    1MySQL+DRBD+keepalived高可用架构 DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的开源软件,类似于 ...

  6. mysql高可用架构之-MHA学习

    此博文参考  博主:mysql高级DBA yayun  完成 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司 ...

  7. MySQL 高可用架构 之 MHA (Centos 7.5 MySQL 5.7.18 MHA 0.58)

    目录 简介 环境准备 秘钥互信 安装基础依赖包 安装MHA组件 安装 MHA Node组件 安装 MHA Manager 组件 建立 MySQL 一主三从 初始化 MySQL 启动MySQL 并简单配 ...

  8. MySQL高可用架构之MHA

    简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是 ...

  9. MySQL高可用架构之MHA 原理与实践

    MHA简介 关于MHA MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover 功能.MHA在监控到mas ...

随机推荐

  1. Ubuntu 14.04 更新gcc版本至4.9.2

    参考: ubuntu 14.04 更新 gcc/g++ 4.9.2 Ubuntu 14.04 更新gcc版本至4.9.2 1.更新源,安装gcc v4.9.2 $ sudo add-apt-repos ...

  2. 【Python】【元编程】【一】动态属性和特性

    #19.1 使用动态属性转换数据"""#栗子19-2 osconfeed.py:下载 osconfeed.jsonfrom urllib.request import u ...

  3. codeforces 352 div 2 C.Recycling Bottles 贪心

    C. Recycling Bottles time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  4. MINA2.0用户手册中文版

    MINA2.0用户手册中文版--第一章 MINA2.0入门 MINA2.0用户手册中文版--第二章 第一节 MINA应用程序架构 MINA2.0用户手册中文版--第二章 第二节 TCP服务端实例 MI ...

  5. Linux 之 ./configure --prefix 命令

    参考 http://blog.sina.com.cn/s/blog_406127500101dsmy.html 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(mak ...

  6. Codeforces 918C - The Monster

    918C - The Monster 思路1: 右键在新窗口打开图片 代码: #include<bits/stdc++.h> using namespace std; #define ll ...

  7. C#一套简单的单例系统

    单例基类 public class CSingletonBase<TYPE> { public static TYPE Singleton { get { return m_singlet ...

  8. codeforces 1042c// Array Product// Codeforces Round #510(Div. 2)

    题意:给出一个数组,2种操作:.1:x*y然后x消失,2:除掉x(2操作最多只能进行一次).问最大的结果的一种操作方式.逻辑题,看能不能想全面. 1先数好0,正,负的数量,zero,pos,neg.如 ...

  9. 在 Confluence 6 中的 Jira 设置

    名字(Name) 输入一个有意义的服务器名字,会让你在 JIRA 服务器中更好的识别你的目录服务器: Jira Service Desk Server My Company Jira 服务器URL(S ...

  10. ccf窗口

    #include<iostream> #include<cstring> #include<algorithm> #include<vector> us ...