iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL高可用架构之MHA
  • 878
分享到

MySQL高可用架构之MHA

MySQL高可用架构之MHA 2019-01-11 03:01:23 878人浏览 猪猪侠
摘要

一、MHA介绍   MHA(Master High Availability)目前在Mysql高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为mysql高可

一、MHA介绍

  MHA(Master High Availability)目前在Mysql高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为mysql高可用性环境下故障切换和主从提升的高可用软件。在Mysql故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

       MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。

  • 自动故障检测和自动故障转移

       MHA能够在一个已经存在的复制环境中监控MySQL,当检测到Master故障后能够实现自动故障转移,通过鉴定出最“新”的Salve的relay log,并将其应用到所有的Slave,这样MHA就能够保证各个slave之间的数据一致性,即使有些slave在主库崩溃时还没有收到最新的relay log事件。一个slave节点能否成为候选的主节点可通过在配置文件中配置它的优先级。由于master能够保证各个slave之间的数据一致性,所以所有的slave节点都有希望成为主节点。在通常的replication环境中由于复制中断而极容易产生的数据一致性问题,在MHA中将不会发生。

  • 交互式(手动)故障转移

       MHA可以手动地实现故障转移,而不必去理会master的状态,即不监控master状态,确认故障发生后可通过MHA手动切换

  • 在线切换Master到不同的主机

       MHA能够在0.5-2秒内实现切换,0.5-2秒的写阻塞通常是可接受的,所以你甚至能在非维护期间就在线切换master。诸如升级到高版本,升级到更快的服务器之类的工作,将会变得更容易。

二、MHA优势

• 自动故障转移快。

• 主库崩溃不存在数据一致性问题。

• 配置不需要对当前mysql环境做重大修改。

• 不需要添加额外的服务器(仅一台manager就可管理上百个replication)。

• 性能优秀,可工作在半同步复制和异步复制,当监控mysql状态时,仅需要每隔N秒向master发送ping包(默认3秒),所以对性能无影响。你可以理解为MHA的性能和简单的主从复制框架性能一样。

• 只要replication支持的存储引擎,MHA都支持,不会局限于innodb。

三、MHA组成

  MHA由Manager节点和node节点组成。

       MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave 提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。

四、MHA工作原理

• 从宕机崩溃的master保存二进制日志事件(binlog events);

• 识别含有最新更新的slave;

• 应用差异的中继日志(relay log)到其他的slave;

• 应用从master保存的二进制日志事件(binlog events);

• 提升一个slave为新的master;

• 使其他的slave连接新的master进行复制;

五、MHA安装

• 准备四个节点,其中一个是管理节点,三个是一主两从的环境

Manager节点:

MySQL03 (192.168.56.13) 

Node节点:

MySQL01 (192.168.56.11)

MySQL02 (192.168.56.12)

MySQL04 (192.168.56.14)

 

• 安装node节点

yum install -y perl-DBD-MySQL

wget https://GitHub.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.Centos.noarch.rpm 

rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

 

• 安装manager节点

yum install -y perl-DBD-MySQL

wget Https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58-0.el7.centos.noarch.rpm 

rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -ivh epel-release-latest-7.noarch.rpm

yum install perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager -y

wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

 

• 在四个节点的/etc/hosts中添加主机内容:

192.168.56.11  MySQL01

192.168.56.12  MySQL02

192.168.56.13  MySQL03

192.168.56.14  MySQL04

 

• 在manager节点创建配置文件 

[root@MySQL03 ~]# cat /etc/app1.cnf
# mysql user and passWord
user=mha
password=456
repl_user=repl
repl_password=mysql
#linux user ssh_user
=root # working directory on the manager manager_workdir=/var/log/masterha/app1 # working directory on MySQL Servers remote_workdir=/var/log/masterha/app1 [server1] hostname=MySQL01 port=3306 master_binlog_dir=/data/data [server2] hostname=MySQL02 port=3306 master_binlog_dir=/usr/local/mysql/data [server3] hostname=MySQL04 port=3306 master_binlog_dir=/usr/local/mysql/data

 

 

• 两个slave节点的my.cnf文件添加下面的参数:

log_bin=binlog
relay_log_purge=0

 

• 重启两个slave使配置文件生效

/etc/init.d/mysql.server restart

 

 • 创建"mha"@"192.168.56.%"用户用于manager节点监控mysql工作状态、操作mysql实例

create user "mha"@"192.168.56.%";

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SUPER ON *.* TO `mha`@`192.168.56.%` identified by "456";

 

创建

create user "repl"@"192.168.56.%";

GRANT REPLICATION SLAVE ON *.* TO `repl`@`192.168.56.%` identified by "mysql";
您可能感兴趣的文档:

--结束END--

本文标题: MySQL高可用架构之MHA

本文链接: https://www.lsjlt.com/news/3176.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL高可用架构之MHA架构全解
    目录一、介绍二、组成三、工作过程四、架构五、实例展示MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating m...
    99+
    2024-04-02
  • MySQL高可用之MHA架构企业实战
    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 擅长主流数据Oracle、MySQL、...
    99+
    2023-08-17
    mysql 架构 数据库 MHA
  • mysql MHA 高可用架构部署
    MHA简介:即Master High Availability Manager and Tools for MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具, 该工具仅...
    99+
    2024-04-02
  • MySQL高可用架构之MHA的原理分析
    这篇文章主要介绍了MySQL高可用架构之MHA的原理分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MHA角色部署MHA 服务有两种角色,...
    99+
    2024-04-02
  • MHA实现MySQL高可用集群架构
    转转连接 https://www.cnblogs.com/tanxiaojun/p/10424699.html MHA简介 MHA(Master HighAvailability)目前在MySQL高可...
    99+
    2024-04-02
  • 【MySQL】【高可用】基于MHA架构的MySQL高可用故障自动切换架构
    基于MHA架构的MySQL高可用切换架构 环境: ​ CentOS7+MySQL 5.7 + GTID 业务系统:mainBusiness ​ node1 : 192.16...
    99+
    2024-04-02
  • MySQL数据库实现高可用架构之MHA的实战
    目录一、MySQLMHA介绍1.1什么是MHA1.2MHA的组成1.3MHA的特点二、MySQLMHA搭建1.MHA架构部分2.故障模拟部分3.实验环境三、实验步骤1、关闭防火墙和S...
    99+
    2024-04-02
  • 企业中MySQL主流高可用架构实战三部曲之MHA
    老张最近两天有些忙,一些老铁一直问,啥时更新博文,我可能做不到天天更新啊,但保证以后一有空就写一些干货知识分享给大家。我们如果想要做好技术这项工作,一定要做到理论与实践先结合。我一个曾经被数据库虐得体无完肤...
    99+
    2024-04-02
  • MySQL之高可用架构详解
    目录引言MySQL高可用一主一备:MySQL主从同步的几种模式:总结引言 “高可用”是互联网一个永恒的话题,先避开MySQL不谈,为了保证各种服务的高可用有几种常用的解决方案。 服务...
    99+
    2024-04-02
  • MySQL高可用架构之MaxScale实践
        本次安装部署基于MHA已部署的情况下,只部署MaxScale,并且采用的是rpm包安装     MaxScale是ma...
    99+
    2024-04-02
  • MySQL MHA高可用架构部署配置实例是怎样的
    本篇文章给大家分享的是有关MySQL MHA高可用架构部署配置实例是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MHA高可用架构部署配...
    99+
    2024-04-02
  • MySQL高可用架构中MHA的本质以及如何部署
    这篇文章将为大家详细讲解有关MySQL高可用架构中MHA的本质以及如何部署,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL高可用架构之MHA1、关于...
    99+
    2024-04-02
  • MySQL数据库之MHA高可用群集
    MHA概述 日本DeNA公司youshimaton (现就职于Facebook公司) 开发一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件 MHA的组成 MHA Manager (...
    99+
    2024-04-02
  • MHA高可用架构部署以及配置(详细)
    目录 一、MHA概述 1、简介 2、MHA特点 3、何为高可用 4、故障切换过程 二、MHA高可用架构部署 1、架构图 2、 实验环境:需要四台Centos7服务器 3、实验部署 3.1、master、slave1、slave2安装mysq...
    99+
    2023-09-04
    数据库 mysql 运维
  • Mysql实现MHA高可用
    环境: CentOS7.4 x 4 mha4mysql-manager x 1 mha4mysql-node x 3 node节点搭建一主双从 mha4mysql代码托管:https://co...
    99+
    2024-04-02
  • MySQL之高可用架构的示例分析
    小编给大家分享一下MySQL之高可用架构的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL高可用MySQL的高可用也是同样的思路,首先要有多个MySQL实例提供服务,其次就是当某个实例挂掉时,可以自动切换流...
    99+
    2023-06-22
  • 初识MariaDB之7——MHA高可用
    一、背景介绍在传统的MySQL一主一从或一主多从结构中,主节点存在单点故障隐患,为了解决该故障,进而引入了MHA高可用的方式。MHA由manager和node两部分组成,manager可以安装在一个独立的服...
    99+
    2024-04-02
  • MySQL高可用方案MHA怎么用
    这篇文章主要为大家展示了“MySQL高可用方案MHA怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL高可用方案MHA怎么用”这篇文章吧。 MyS...
    99+
    2024-04-02
  • 配置MySQL高可用集群MHA
    配置MySQL高可用集群+++++++++++++++++++主机角色 :客户端 client50数据库服务器 mysql51 到 mysql55管理主机 mgm56VIP地址 ...
    99+
    2024-04-02
  • MYSQL架构中如何主从MHA
    这篇文章给大家介绍MYSQL架构中如何主从MHA,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MHA – GTID模式MasterHigh Availability Manager a...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作