MySQL高可用MHA
目录
前言
一、概述
二、配置免密、组从复制
三、MHA配置
四、测试
总结
前言
MySQL高可用管理工具(MHA,Master High Availability)是一个用于自动管理MySQL主从复制的工具,它可以提供高可用性和自动故障转移。MHA由原版的MHA工具和MHA Manager组成,它们协同工作以实现自动主从切换和监控。
MHA的主要功能和特点包括:
1. 自动故障检测和切换:MHA可以监测到主服务器的故障,并自动将一个备用服务器提升为新的主服务器,使数据库服务保持高可用性。
2. 平滑的主从切换:MHA可以确保在进行主从切换时,数据能够以无宕机的方式迁移到新的主服务器,避免数据丢失和应用程序中断。
3. 状态监测和报告:MHA可以监测MySQL主从复制的状态,并提供详细的报告和日志,帮助管理员进行故障诊断和维护。
4. 灵活的配置和管理:MHA提供了灵活的配置选项,可以根据具体需求进行定制。它也提供了命令行工具和Web界面(MHA Manager)来管理和监控MySQL高可用环境。
要使用MHA,通常需要将MHA工具和MHA Manager安装在一个单独的服务器上,该服务器作为MHA的管理节点。MHA Manager负责监听和监控MySQL主从复制环境,并在检测到故障时触发自动故障转移。MHA工具在备库服务器上运行,并负责实际的主从切换和复制管理。
总之,MHA是一个强大的工具,可以帮助实现MySQL数据库的高可用性和自动故障转移。它简化了管理和维护复杂的MySQL主从复制架构,提供了可靠的解决方案,以确保数据库服务在故障发生时能够持续可用。
一、概述
1、概念
| MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 |
| MHA 的出现就是解决MySQL 单点的问题。 |
| MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 |
| MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。 |
2、组成: 1、MHA manager管理节点
2、MHA node数据节点(每个节点上都需要安装)
3、特点:
自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失
使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性
目前MHA支持一主多从架构,最少三台服务,即一主两从
4、工作原理:
从宕机崩溃的master 保存二进制日志事件(binlog events);
识别含有最新的更新slave日志
应用差异的中继日志(relay log)到其他的slave
应用从master保存的二进制日志事件
提升一个slave为新的master
使其他的slave连接新的master进行复制
二、配置免密、组从复制
一、实验拓扑图

2、首先配置4台主机之间的免密
使用ssh-keygen与ssh-copy-id命令
##在192.168.115.131
ssh-keygen
for i in 132 133 134;do ssh-copy-id root@192.168.115.$i;done
##在192.168.115.132
ssh-keygen
for i in 131 133 134;do ssh-copy-id root@192.168.115.$i;done
##在192.168.115.133
ssh-keygen
for i in 132 131 134;do ssh-copy-id root@192.168.115.$i;done
##在192.168.115.134
ssh-keygen
for i in 132 133 131;do ssh-copy-id root@192.168.115.$i;done##测试
for i in 132 133 134;do ssh 192.168.115.$i hostname;done
3、配置MySQL的主从
在192.168.115.131 、192.168.115.132 、192.168.115.133上安装mariadb
for i in 131 132 133;do ssh 192.168.115.$i yum install -y mariadb mariadb-server mariadb;done
配置master192.168.115.131
##配置master
vim /etc/my.cnf
##在[mysqld]下插入
server-id = 20
log-bin = master-bin
log-slave-updates = true
##启动
systemctl restart mariadb
##创建用户
mysql -e "grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.131' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.133' identified by '123.com';"
mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.132' identified by '123.com';"
##查看状态,获取在为slave指定master时的所需信息
mysql -e "show master status";

配置slave192.168.115.132 、192.168.115.133
##配置master
vim /etc/my.cnf
##在[mysqld]下插入
server-id=31
log-bin=master-bin
relay-log=relay-log-bin
relay-log-index=relay-log-bin.index
##启动
systemctl restart mariadb
##创建用户
[root@localhost ~]# mysql -e "grant replication slave on *.* to 'myslave'@'192.168.115.%' identified by '123.com';"
[root@localhost ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.%' identified by '123.com';"
[root@localhost ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.131' identified by '123.com';"
[root@localhost ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.133' identified by '123.com';"
[root@localhost ~]# mysql -e "grant all privileges on *.* to 'mha'@'192.168.115.132' identified by '123.com';"
##指定主从
[root@localhost ~]# mysql -e "change master to master_host='192.168.115.131',master_user='myslave',master_password='123.com',master_log_file='master-bin.000003',master_log_pos=1013;"
##相同方法配置slave2
验证,在master上建立库jx1,来到slave1、slave2查看
slave1 上查看
slave2上查看

三、MHA配置
1、所有节点安装perl环境
yum install epel-release -y
yum -y install perl-DBD-MySQL perl-ExtUtils-MakeMaker perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes perl-CPAN
2、node:所有节点安装node
tar xf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL && make && make install
验证
cd /usr/local/bin
看到脚本就OK
3、安装manager
tar xf mha4mysql-manager-0.57.tar.gz
cd /root/mha4mysql-manager-0.57
perl Makefile.PL && make && make install
cp samples/scripts/master_ip_failover /usr/local/bin/
cp samples/scripts/master_ip_online_change /usr/local/bin/

4、脚本说明:
master_ip_failover 自动切换时 VIP 管理的脚本
master_ip_online_change 在线切换时 vip 的管理
power_manager 故障发生后关闭主机的脚本
send_report 因故障切换后发送报警的脚本
5、配置文件建立:
mkdir /etc/masterha
vim /etc/masterha/app1.cnf

6、目录创建
mkdir /var/log/masterha/app1![]()
7、测试MAH
vim /usr/local/bin/master_ip_failover
masterha_check_ssh --conf=/etc/masterha/app1.cnf


masterha_check_repl --conf=/etc/masterha/app1.cnf
8、启动命令
nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
启动时masterIP异常:需要工程手动配置VIP
四、测试
测试:停用master的mariadb服务
systemctl stop mariadb
来到slave1查看ip a
此时的slave1成为了master了,在slave1上创建库haohaoxuexi到slave2查看
创建
查看
成功!!
如果想把master修好可以进行以下操作:
修改app1.cnf启动配置:添加master主机配置信息
分别在slave上重新指定master主机及binlog日志同步信息
总结
本次实验要注意以下几点:
1、确保各主机之间的通联性,比如开启ssh互相免密;
2、确保主从复制成功建立
3、每台主机都要配置epel环境、node
4、管理设备上安装manger注意脚本中的ip、路径是否正确
相关文章:
MySQL高可用MHA
目录 前言 一、概述 二、配置免密、组从复制 三、MHA配置 四、测试 总结 前言 MySQL高可用管理工具(MHA,Master High Availability)是一个用于自动管理MySQL主从复制的工具,它可以提供高可用性和自动故障转移。MHA由原版的MHA工具…...
DoIP学习笔记系列:(五)“安全认证”的.dll从何而来?
文章目录 1. “安全认证”的.dll从何而来?1.1 .dll文件base1.2 增加客户需求算法传送门 DoIP学习笔记系列:导航篇 1. “安全认证”的.dll从何而来? 无论是用CANoe还是VFlash,亦或是编辑cdd文件,都需要加载一个与$27服务相关的.dll(Windows的动态库文件),这个文件是从哪…...
205、仿真-51单片机直流数字电流表多档位切换Proteus仿真设计(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)
毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括: 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源…...
服务器如何防止cc攻击
对于搭载网站运行的服务器来说,cc攻击应该并不陌生,特别是cc攻击的攻击门槛非常低,有个代理IP工具,有个cc攻击软件就可以轻易对任何网站发起攻击,那么服务器如何防止cc攻击?请看下面的介绍。 服务器如何防止cc攻击&a…...
解读注解@Value占位符替换过程
之前写过一篇关于介绍Spring占位符替换原理的博客,传送门 :Spring的占位符是怎么工作的 在这篇文章基础上,再介绍一下Value替换原理,两篇文章有一定的相关性。 继续以上一篇的工程为例,项目结构一样,这里就…...
浅谈5G技术会给视频监控行业带来的一些变革情况
5G是第五代移动通信技术,能够提供更高的带宽和更快的传输速度,这将为视频技术的发展带来大量机会。随着5G技术的逐步普及与商用,人们将能够享受到更加流畅的高清视频体验,并且5G技术还拥有更低的延迟和更高的网络容量。这些优势不…...
Java常用API---快速达到Java工作水准系列(1)
目录 1.集合 2.包装类 3.日期处理以及格式化 4.字符串处理类 5.数组 5.BigDecimal 6.Math 1.集合 毋庸置疑,集合在实际项目的使用概率几乎是百分之百。无论是用于数据存储和管理、去重和查找亦或是数据检索和遍历,都离不开集合的使用。任何一个项…...
Python中使用隧道爬虫ip提升数据爬取效率
作为专业爬虫程序员,我们经常面临需要爬取大量数据的任务。然而,有些网站可能会对频繁的请求进行限制,这就需要我们使用隧道爬虫ip来绕过这些限制,提高数据爬取效率。本文将分享如何在Python中使用隧道爬虫ip实现API请求与响应的技…...
深入源码分析kubernetes informer机制(四)DeltaFIFO
[阅读指南] 这是该系列第四篇 基于kubernetes 1.27 stage版本 为了方便阅读,后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 client-go中的存储结构DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 总结 client-go中的存储结构…...
UI设计师个人工作总结范文
UI设计师个人工作总结范文篇一 感受到了领导们“海纳百川”的胸襟,感受到了作为广告人“不经历风雨,怎能见彩虹”的豪气,也体会到了重庆广告从业人员作为拓荒者的艰难和坚定(就目前国内广告业而言,我认为重庆广告业尚在发展阶段并…...
explicit关键字 和 static成员
explicit关键字 和 static成员 1、explicit 关键字2、static成员(静态成员变量属于类的(只有所属这个类的对象才能修改),不同于全局变量(任何对象都能修改))2.1 定义和性质2.2 静态成员的使用场…...
安装Linux操作系统CentOS 6详细图文步骤
为满足业务对Linux操作系统部署的要求,本文档主要提供CentOS 6操作系统的最小化安装和基本配置, 安装本系统建议最少1GB内存和2GB磁盘空间。 1、 使用光盘或者挂载ISO镜像,在出现如下图形界面时选择【Install or upgrade an existing system】并按Ent…...
新增守护进程管理、支持添加MySQL远程数据库,支持PHP版本切换,1Panel开源面板v1.5.0发布
2023年8月14日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.5.0版本。 在这个版本中,1Panel新增了守护进程管理功能;支持添加MySQL远程数据库;支持添加FTP/S和WebDAV的SFTP服务;支持PHP版本切换。此外&am…...
十、接口(1)
本章概要 抽象类和方法接口创建 默认方法多继承接口中的静态方法Instrument 作为接口 接口和抽象类提供了一种将接口与实现分离的更加结构化的方法。 这种机制在编程语言中不常见,例如 C 只对这种概念有间接的支持。而在 Java 中存在这些关键字,说明…...
percentile_approx 聚合函数
返回组内 expr 的百分位近似值。 此函数是 approx_percentile 聚合函数的同义词。 语法 percentile_approx ( [ALL | DISTINCT ] expr, percentile [, accuracy] ) [FILTER ( WHERE cond ) ] 还可以使用 OVER 子句将此函数作为窗口函数调用。 参数 expr:数值表达…...
面试热题(全排列)
给定一个不含重复数字的整数数组 nums ,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 先在这里说明一下排列和组合的区别? 组合:是指从一…...
一文走进时序数据库性能测试工具 TSBS
一、背景 在物联网、车联网等时序数据场景中,数据的高速写入能力至关重要,会对产品方案的可用性、可靠性和扩展性产生影响。 以物联网为例,当面临千万甚至上亿设备、平均每个设备采集几十个到几百个指标时,每秒生成的数据将达到…...
通俗讲解-动量梯度下降法原理与代码实例
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一.动量梯度下降法介绍 1.1 动量梯度下降法简介与思想 1.2 动量梯度下降法的算法流程 二.动量梯度下降法代码实例 2.1 动量梯度下降法实例代码 一.动量梯度下降法介绍…...
【【STM32-USART串口协议】】
STM32-USART串口协议 USART串口协议 •通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统 •通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 就是我们并不能在芯片上设计完全部的一下子完成所有的设计&…...
vue3.0组件通信
1、props 没有加TS限制类型的时候 1. 数组写法 defineProps([count, changCount]) 2. 对象写法 defineProps({count: Number,changCount: Function }) 3. 配置对象 defineProps({count: {type: Number,default: 2},changCount: {type: Function,required: true} })注意: defi…...
Windows热键冲突终极解决方案:Hotkey Detective帮你找回失窃的快捷键
Windows热键冲突终极解决方案:Hotkey Detective帮你找回失窃的快捷键 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective…...
HarmonyOS 6 Chip 组件:不显示后缀图标使用文档
文章目录概述源码隐藏后缀图标核心实现原理1. 核心控制字段2. 双重隐藏条件3. 冗余回调说明组件配置解析总结概述 Chip组件后缀图标包含两类:系统默认关闭图标、自定义suffixIcon后缀图标。 通过组件配置项可统一关闭后缀图标展示,实现仅前缀图标文字的…...
终极M3U8视频下载指南:5个技巧轻松掌握开源工具
终极M3U8视频下载指南:5个技巧轻松掌握开源工具 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 想要下载在线视频却总是失败?面对M3U8格式束手无策&#x…...
找工厂用什么工具?为什么“收录企业更多“是个伪指标
很多人在选工商数据工具的时候,被一个指标带着走——“收录企业数量更多”。直觉上,数据库越大越好,选谁不选大的。 但如果你的实际需求是"找工厂"——上游销售要找工厂客户、采购方要找代工供应商、跨境卖家要找一手代工厂——这个指标对你毫无意义,甚至是负担。原因…...
AI驱动的CNC闭环控制系统:边缘实时感知与控制实践
1. 项目概述:这不是在改装一台机床,而是在给金属加工装上“神经系统”“AI-Driven Machining: Building a Closed-Loop CNC System with IIoT Feedback (Building the CNC)”——这个标题里没有一个词是虚的。它不是在讲怎么用AI生成个加工路径图&#x…...
深入剖析Golang环境搭建:从基础配置到高效开发实践
1. 项目概述:为什么Golang环境搭建值得深究?如果你刚接触Go语言,可能会觉得“环境搭建”不就是下载、安装、配个变量吗?网上教程一搜一大把,五分钟搞定。但作为一名在多个生产环境中部署过Go服务的老兵,我必…...
数据安全合规实战:等保2.0和GDPR要求下的文件加密配置清单
从“过等保”到“过审计”,一份可直接照抄的配置模板又到了每年合规审计季。去年我们公司同时面临等保2.0三级复测和欧盟客户要求的GDPR合规审查,其中文件加密是两者共同的重点项。我们以天锐绿盾为基础,整理了一套加密合规配置清单ÿ…...
告别单片机C语言:用FlexLua和CH9329模块5分钟自制USB自动化小工具
零代码革命:用FlexLuaCH9329打造办公自动化神器 每天重复点击鼠标、敲击键盘的枯燥操作是否让你疲惫不堪?想象一下,早晨电脑自动打卡、会议自动记录、邮件自动回复——这些看似需要专业编程知识的自动化操作,现在只需5分钟就能实现…...
历年各批次“重点小巨人”企业全面分析报告
国家级重点专精特新“小巨人”企业是专注于细分市场、创新能力强、市场占有率高、掌握关键核心技术、质量效益优的“排头兵”企业。自政策实施以来,重点“小巨人”已逐步成为我国培育新质生产力、推进新型工业化、提升产业链供应链韧性与安全水平的核心抓手。从工业…...
铜钟音乐平台完整指南:三步打造纯净无干扰的听歌体验
铜钟音乐平台完整指南:三步打造纯净无干扰的听歌体验 【免费下载链接】tonzhon-music 铜钟 Tonzhon (tonzhon.whamon.com): 干净纯粹的音乐平台 (铜钟已不再使用 tonzhon.com,现在的 tonzhon.com 不是正版的铜钟) 项目地址: https://gitcode.com/GitHu…...
