一、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. springmvc基础知识及注解

    SpringMVC 1.概念 Spring的MVC框架是一个基于DispatcherServlet的MVC框架,主要由DispatcherServlet.处理器映射.处理器.视图解析器.视图组成.每一 ...

  3. 【Coursera】SecondWeek(2)

    The First Two Packets on the Internet Leonard Kleinrock Kleinrock 是一名工程师和计算机科学家,他在APRANET网络中起到了至关重要的 ...

  4. pandas (loc、iloc、ix)的区别

    loc:通过行标签索引数据 iloc:通过行号索引行数据 ix:通过行标签或行号索引数据(基于loc和iloc的混合) 使用loc.iloc.ix索引第一行数据: loc: iloc: ix:

  5. [osg]osg自定义事件的理解

    参考:http://blog.csdn.net/l_andy/article/details/51058907 添加自定义事件 首先osg在其内部通过osgGA::EventQueue类维护了一个事件 ...

  6. 【Python】给图片添加水印的Python及Golang实现

    前言 不知道大家有没有这样的习惯,一篇比较得意的博客在发表一段时间之后会特别关注,前段时间一篇写到凌晨的博客被 码迷 这个网关爬取之后发表了,因为搜索引擎先爬取码迷的,所以我的博客无法被搜索到,即使直 ...

  7. 告诉maven,我真的不需要web.xml

    <!-- 告诉maven,我真的不需要web.xml --> <plugin> <groupId>org.apache.maven.plugins</grou ...

  8. bartender学习

    参考: 官网  https://www.seagullscientific.com/label-software/barcode-label-design-and-printing 文章 http:/ ...

  9. 12月8日 周五 image_tag.

    Overview of helpers provided by Action View 6.1 AssetTagHelper:用于generate html语言 image_tag ,return a ...

  10. Ciel the Commander CodeForces - 321C (树, 思维)

    链接 大意: 给定n结点树, 求构造一种染色方案, 使得每个点颜色在[A,Z], 且端点同色的链中至少存在一点颜色大于端点 (A为最大颜色) 直接点分治即可, 因为最坏可以涂$2^{26}-1$个节点 ...