Mysql MHA高可用集群及故障切换

news2025/1/20 20:14:35

文章目录

  • 一、MHA概述
    • 1.MHA的特点
    • 2. MHA的工作原理
    • 3.故障切换时MHA会做什么
  • 二、实验搭建MySQL+MHA
    • 1.配置主从分离
    • 2.安装MHA软件
  • 总结

一、MHA概述

MHA(MasterHigh Availability)是一套优秀的mysql高可用环境下故障切换和主从复制的软件。
MHA解决了mysql数据库单点故障问题,提高了数据的安全性
MHA的出现就是为了解决mysql单点故障。
Mysql故障切换过程中,MHA能做到0-30秒内自动完成故障性切换操作。
MHA能在故障切换的过程中最大程度保证数据的一致性,已达到真正意义上的高可用。
MHA的组成
MHA Node(数据节点)
MHA Node运行在每台MySQL服务器上。
Node功能:在发生故障时,尽可能的保存二进制日志,并且实现故障切换(VIP地址飘逸)
MHA Manger(管理节点)
MHA Manger 可以单独部署在一台独立的机器上,管理多个 Master-Slave 集群;也可以部署在一台Slave上。
MHA Manger会定时探测集群中的master 节点。当master出现故障时,他可以自动将最新数据的slave提升为新的master,然后将其他所有slave重新指向新的master。(整个故障转移对应用程序完全透明)
Manager功能:做MHA启动、关闭管理和检测MySQL健康状态

1.MHA的特点

自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志文件,最大程度的保证数据不丢失。
使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。
MHA所需要的配置文件
Master IP failover:命令工具,定义的是基于VIP的检测和故障转移(VIP从master转到新的master)
app1.conf:MHA的主要配置文件,主要定义了MHA的工作目录、日志,mysql二进制日志位置,使用MHA登录MySQL的用户、密码登录从服务器,身份同步master的账号和密码。

2. MHA的工作原理

从宕机崩溃的master保存二进制日志事件(binlog events);
识别含有最新的更新slave 日志;
应用差异的中继日志(relay log)到其他的slave;
应用从master保存的二进制日志事件;
提升一个slave为新的master;
使其他的slave连接新的master进行复制;

3.故障切换时MHA会做什么

MHA会多次尝试检测master的存活状态
MHA会多次尝试尽可能地保存master的二进制日志
MHA会根据app1.cnf中的配置部分,进行从服务器切换到主服务器位置
MHA最后会将master的VIP地址切换到从服务器的位置
MHA在选择完新的master之后,会在其余的slave上执行change master操作,指向新的master来保证MySQL的集群的健康

二、实验搭建MySQL+MHA

1.配置主从分离

首先搭建三台mysql查一下3306端口看服务有没有起来
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

slave1、slave2节点设置为只读模式

set global read_only=1;

2.安装MHA软件

1、所有服务器上都安装 MHA 依赖的环境,首先安装 epel 源,需要在线源安装
再在所有服务器上安装 node 组件

将软件包mha4mysql-node-0.57.tar.gz放入/opt目录下

cd /opt
tar zxvf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL
make && make install

在 MHA manager 节点上安装 manager 组件
将软件包mha4mysql-manager-0.57.tar.gz放入/opt目录下

cd /opt
tar zxvf mha4mysql-manager-0.57.tar.gz
cd mha4mysql-manager-0.57
perl Makefile.PL
make && make install

在这里插入图片描述
在manager上配置MHA
1、 在 manager 节点上复制相关脚本到/usr/local/bin 目录

cp -rp /opt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin

#复制后会有四个执行文件

ll /usr/local/bin/scripts/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在所有服务器上配置免密认证
1、在manager(192.168.169.20)节点上配置所有数据库节点的免密认证

ssh-keygen -t rsa         #一路按回车键
ssh-copy-id 192.168.169.10
ssh-copy-id 192.168.169.30
ssh-copy-id 192.168.169.40

在 manager 节点上测试 ssh 无密码认证,如果正常最后会输出 successfully。

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

在这里插入图片描述
在这里插入图片描述

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527586.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

铁路铁鞋UWB定位系统

在铁路运输过程中,当列车到达车站时,需要用专用铁鞋将列车固定在前轮和后轮上,以防止列车打滑和前进。所以,实时掌握铁鞋的位置信息十分重要,如果工人忘记撤回铁鞋子,则可能导致车辆停车和跳轨等事故频发。…

淘宝关键词搜索分析商品价格走势(商品列表接口,销量接口,价格接口,分类ID精准商品数据接口)接口代码对接

淘宝 OpenAPI(Open application programming interface)是一套 REST 方式的开放应用程序编程接口。淘宝网根据自己提供的电子商务基础服务,抽象并做成一系列的 API 接口。通过这些接口,可以让外部用户能够通过程序的方式访问淘宝网…

Vue 实现轮播图功能

Vue 是一款流行的前端框架,它提供了一系列的工具和组件,使得开发者可以更加便捷地创建交互式的 Web 应用程序。轮播图是 Web 应用程序中常见的一种交互式组件,可以用来展示图片、新闻、广告等内容。在 Vue 中,我们可以使用第三方组…

RVMedia VCL 8.0 for Delphi Crack

RVMedia VCL 8.0 for Delphi Crack FGX Native Network Frame是制造跨平台和现代移动设备的强大工具。FG开发团队的主要目标是简化移动应用程序的开发,使大多数人都能以各种技能开发应用程序。此外,这种形式的网络最重要的功能可以在100%的用户界面中设计…

分库分表的 21 条法则,hold 住!

大家好,我是小富~ (一)好好的系统,为什么要分库分表? 本文是《分库分表ShardingSphere5.x原理与实战》系列的第二篇文章,距离上一篇文章已经过去好久了,惭愧惭愧~ 还是…

GIS应用技巧之Landsat、Sport等遥感影像去除黑边的多种方法

一、前言 当我们利用GIS对遥感影像处理过程中,有时候需要将几张小的影像图镶嵌为一张大的,但是却被黑边所阻挡,这时候就需要找到一种方法来将黑边去掉了。由于遥感影像一般都太大了,不好获取也不好处理,这里我们选用的…

【C#】继承和序列化

前言 在之前的一篇文章中: 【C#】复杂Json的反序列 任意Json获取_code bean的博客-CSDN博客其中result这个key对应的内容是可能发生变化的,所以这里可以用到泛型。如何将一个复杂类型的JSON进行反序列化。那就是如何把json拆解成一个个子类的过程。htt…

NLP 中语言表示 (向量化) 的基本原理和历史演变综述

目录 1 前言2 语言表示2.1 离散表示2.1.1 独热编码2.1.2 词袋模型2.1.3 TF-IDF 模型2.1.4 N-gram 模型2.1.5 基于聚类的表示 2.2 连续表示2.2.1 分布式表示2.2.2 Word Embedding2.2.2.1 Word2Vec2.2.2.2 GloVe2.2.2.3 FastText 2.2.3 基础神经网络模型2.2.3.1 神经词袋模型2.2.…

Excel 设置只能输入指定的字符

目录 1. 创建你要用的表格 2. 确定你要限定输入的行/ 列 3. 创建另一个sheet,用来保存限制输入的配置信息 4. 选中【是否外包】列,并选择数据验证 5. 设置数据限制 6. 确认结果 7. 不想设置配置sheet怎么办? 在工作中,你们…

基于Java+SpringBoot+vue+node.js的图书购物商城系统详细设计和实现

基于JavaSpringBootvuenode.js的图书购物商城系统详细设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码…

70.建立一个轮播图组件第一部分

本次我们的目标是实现如图所示的 初始代码如下&#xff1a; ● 现在我们把图片、文本、按钮等元素添加进去 <div class"carousel"><img src"maria.jpg" alt"Maria de Almeida" /><blockquote class"testimonial">&…

一、Go基础知识入门

1、go语言介绍 2、go开发环境搭建 2.1、go的安装 go下载地址&#xff1a;All releases - The Go Programming Language&#xff0c;windows选择下载go1.20.2.windows-amd64.msi文件。 双击go1.20.2.windows-amd64.msi&#xff0c;点击"Next"&#xff0c;然后勾选同…

开启自主创新基础设施领先之路,超融合缘何能担当大任?

数字基础设施领域最重要的趋势都有哪些&#xff1f; 毫无疑问&#xff0c;超融合便是其中之一。Gartner《2022年中国ICT技术成熟度曲线报告》&#xff08;Hype Cycle for ICT in China, 2022&#xff09;预测&#xff0c;超融合技术未来2年内将到达“生产力成熟期”&#xff0…

2023企业数智化财务创新峰会西安站圆满举办

5月11日&#xff0c;“初夏之际从头越&#xff0c;数智财务待有时。”由用友主办的「智能会计 价值财务」2023企业数智化财务创新峰会 西安站圆满举办&#xff01;西安交通大学管理学院副院长、教授、博士生导师田高良&#xff0c;山东高速集团有限公司财务共享中心收入核算部…

面向Java开发者的ChatGPT提示词工程(2)

在这篇博客文章中&#xff0c;我将分享一些关于提示词的关键原则&#xff0c;帮助你在使用语言模型时获得更好的结果。具体来说&#xff0c;我将介绍两个关键原则&#xff0c;帮助你编写有效的提示词。同时&#xff0c;我也鼓励你在阅读文章的过程中运行代码&#xff0c;亲自体…

浅谈IDC数据中心综合布线第二篇——结构化布线

数据中心网络在当今的业务中扮演着越来越重要的作用&#xff0c;提供数据的存储、管理、共享、交换、应用等功能。在数据中心中&#xff0c;大量的数据在服务器、交换机、存储设备之间通过物理层的光缆&#xff08;仅讨论光纤布线&#xff09;进行传输。数据表明&#xff0c;在…

java Collection 所有单列集合的父接口

为了在程序中可以保存数目不确定的对象或数据&#xff0c; Java提供了一系列特殊的类&#xff0c;这些类可以存储任意类型的对象&#xff0c; 并且长度可变&#xff0c;这些类被统称为集合。集合类都位于java.util包中&#xff0c; 使用时必须导包。集合按照其存储结构可以分为…

微信小程序开发之获取用户信息

环境 微信开发者工具 Stable 1.06.2303220云开发控制台 v1.5.47 用户的openid和头像名称信息 openid 是小程序用户的唯一标识。注意&#xff0c; openid 并不是微信用户的唯一标识&#xff0c;它是和小程序绑定的。也就是说&#xff0c;同一个微信用户&#xff0c;他在小程序…

【Unity-UGUI控件全面解析】| Dropdown 下拉菜单组件详解

🎬【Unity-UGUI控件全面解析】| Dropdown 下拉菜单组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 监听开关事件4.2 添加删除节点💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 �…

alembic迁移

alembic 作用 alembic是sqlalchemy的作者开发的。用来做OMR模型与数据库的迁移与映射。alembic使用方式跟git有点了类似&#xff0c;表现在两个方面。 第一个&#xff0c;alembic的所有命令都是以alembic开头 第二&#xff0c;alembic的迁移文件也是通过版本进行控制的。首先…