一、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. 【eclipse】聚合工程maven启动Tomcat报错

    严重: Error configuring application listener of class严重: Skipped installing application listeners due ...

  2. js delete可以删除对象属性及变量

    ,对象属性删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete o ...

  3. Linux command line exercises for NGS data processing

    by Umer Zeeshan Ijaz The purpose of this tutorial is to introduce students to the frequently used to ...

  4. shell 去掉字符串的单引号

    echo \'deded\' | sed $'s/\'//g'

  5. MongoDB(课时3 MongoDB基本操作)

    3.3 MongoDB的基本操作 在MongoDB数据库里面存在数据库的概念,但没有模式(所有的信息都是按照文档保存的),保存数据的结构是BSON结构,只不过在进行一些数据处理的时候才会使用到Mong ...

  6. SCSS 調用筆記

    /*常用*/ $family: unquote("Droid+Sans"); @import url("http://fonts.googleapis.com/css?f ...

  7. Confluence 6 完成你的任务

    很好,宇航员们,你已经令人钦佩的展示了你自己的.我们确定你新招募的员工已经对你了解的 Confluence 知识感到赞叹. 在这个指南中,我们已经完成了: 在主面板中对 Confluence 的功能进 ...

  8. Fair CodeForces - 987D (bfs)

    链接 大意:给定无向图边权均为1, 每个节点有一种货物, 对于每个节点, 求出拿到$s$种不同货物的最短距离 (每种货物独立计算,并且不用返回) 因为$s$较小, 直接枚举每种货物即可 所以问题就转化 ...

  9. 名称随id的变化而变化

    $("#user_id").change(function () { var uid = $(this).val(); if (uid == '') { $("#user ...

  10. thinkphp查询缓存

    S()函数的使用:  ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用  不同的缓存方式的时候并不需要关注具体的缓存 ...