当前位置: 首页 > news >正文

【MySql】mysql之MHA高可用配置及故障切换

一、MHA概念

MHA(Master High Availability)是一套优秀的Mysql高可用环境下故障切换和主从复制的软件。

  • MHA的出现就是解决Mysql单点的问题。

  • Mysql故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

  • MHA能在故障切换的过程中最大程度受伤保证数据的一致性,以达到真正意义上的高可用。

1、MHA的组成

MHA Node(数据节点)

  • MHA Node运行在每台Mysql服务器上

MHA Manager(管理节点)

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

2、MHA的特点

  • 自动故障切换过程中, MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失。
  • 使用半同步复制 ,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其它所有的slave服务器上,因此可以保证所有节点的数据一致性。
  • 目前MHA支持一主多从架构,最少三台服务,即一主两从。

3、主从复制有多少种复制方法

总共有三种:同步、半同步、异步

异步: 在主从架构中加入当客户端发送了一条update语句,主服务器上I/O 线程将二进制日志写入到binlog文件之后就返回客户端结构,不管从服务器是否已经同步到了自己的relay-log(中继日志中)。

  • 优点:性能是最好的。
  • 缺点:主服务器宕机,容易造成数据不一致,mysql中默认的就是异步复制。

同步: 也称全同步,当主服务器完成更新,并且同步到所有从服务器才会返回成功结果。

  • 优点:安全
  • 缺点:效率低,影响性能。

半同步: 将两个方法折中,当主服务器完成更新,至少有一个从服务器接收到并完成更新,主服务器就返回成功。

4、MHA工作原理

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

二、实验:

三、总结

1、mha

① 作用:mysql的高可用 + 故障切换

② 核心部分:
MHA组件:

  • manager: 主要的功能:做MHA 启动、关闭管理和检测mysql各种健康状态
  • node: 在发生故障时,尽可能的保存二进制日志,并且实现故障切换(VIP地址飘逸)

③ MHA需要配置的文件(2个):

  • master ip failover脚本文件: 命令工具 ,定义的是基于VIP的检测和故障转移 (VIP从master----->新的 master)
  • app1.conf配置文件: mha的主要配置文件,主要定义了mha的工作目录、日志。
    mysql二进制日志位置
    用mha的登录mysql的用户、密码使用从服务器
    身份同步master的账号、密码 (五个)

④ 故障切换mha会做哪些动作:

1)mha会多次尝试检测master的存活状态

2)mha会多次尝试、尽可能的保存master的二进制日志

3)mha会根据app1.cnf中的配置部分,进行从服务器------》 主服务器的位置

4)mha最后会将master的VIP地址切换到从服务器的位置

5)mha再选择完新的master之后,会在其余的salve上执行change master操作,指向性的master, 来保证Mysql的集群的健康性

2、mha故障问题

① 软件连接必须要做

② mysql配置文件,/etc/my.cnf中的建议将中文字符集注释掉

③ 免交互必须得做

③ 五个账号授权(其中三个账号是测试环境需要做的)

④ 初次运行MHA功能是,需要临时添加虚拟IP

⑤ 配置文件–效验 (master_ip_failover 1个故障切换的脚本,app1.cnf mha的主配置文件)

⑥ 先安装node节点 再安装主节点。
⑦ app1.cnf 配置文件中,mysql的二进制文件位置,一定要指对。

⑧ mha的内存,建议4G以上,否则可能导致VIP地址无法漂移

----->新的 master)

  • **app1.conf配置文件:**mha的主要配置文件,主要定义了mha的工作目录、日志。
    mysql二进制日志位置
    用mha的登录mysql的用户、密码使用从服务器
    身份同步master的账号、密码 (五个)

④ 故障切换mha会做哪些动作:

1)mha会多次尝试检测master的存活状态

2)mha会多次尝试、尽可能的保存master的二进制日志

3)mha会根据app1.cnf中的配置部分,进行从服务器------》 主服务器的位置

4)mha最后会将master的VIP地址切换到从服务器的位置

5)mha再选择完新的master之后,会在其余的salve上执行change master操作,指向性的master, 来保证Mysql的集群的健康性


 

相关文章:

【MySql】mysql之MHA高可用配置及故障切换

一、MHA概念 MHA(Master High Availability)是一套优秀的Mysql高可用环境下故障切换和主从复制的软件。 MHA的出现就是解决Mysql单点的问题。 Mysql故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程…...

如何在 Spring Boot 中进行数据备份

在Spring Boot中进行数据备份 数据备份是确保数据安全性和可恢复性的关键任务之一。Spring Boot提供了多种方法来执行数据备份,无论是定期备份数据库,还是将数据导出到外部存储。本文将介绍在Spring Boot应用程序中进行数据备份的不同方法。 方法1: 使用…...

为Yolov7环境安装Cuba匹配的Pytorch

1. 查看Cuba版本 方法一 nvidia-smi 找到CUDA Version 方法二 Nvidia Control Panel > 系统信息 > 组件 > 2. 安装Cuba匹配版本的PyTorch https://pytorch.org/get-started/locally/这里使用conda安装 conda install pytorch torchvision torchaudio pytorch-cu…...

SpringBoot基于jackson对象映射器扩展mvc框架的消息转换器

在SpringBoot中,可以基于jackson对象映射器扩展mvc框架的消息转换器 具体步骤如下: 1、创建对象映射器: package com.java.demo.common;import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.datab…...

计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度(matlab代码)

目录 1 主要内容 系统结构 CCPP-P2G-燃气机组子系统 非线性处理缺陷 2 部分代码 3 程序结果 4 程序链接 1 主要内容 该程序参考《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》模型,主要实现的是计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度…...

【低代码表单设计器】:创造高效率的流程化办公!

当前,有不少用户朋友对低代码表单设计器挺感兴趣。其实,如果想要实现提质增效的办公效率,创造一个流程化办公,那么确实可以了解低代码技术平台。流辰信息作为服务商,拥有较强的自主研发能力,根据市场的变化…...

26、类型别名

类型别名 顾名思义,其实就是类型类型起别名(新起一个名字) demo: type Name string; type NameConsole () > string; type NameUnite Name | NameConsole; function getName(n: NameUnite): Name {if( typeof n string)…...

nslookup命令查询指定域名或ingress地址对应的IP地址。举个例子

使用nslookup命令查询指定域名或ingress地址的IP地址时,可以按照以下方式进行操作: 对于域名查询: 复制代码 nslookup www.example.com 这将返回该域名对应的IP地址。 对于ingress地址查询: 复制代码 nslookup your-ingress-a…...

如何设计一个网络爬虫?

网络爬虫也被称为机器人或蜘蛛,它被搜索引擎用于发现网络上的新内容或更新内容。内容可以是网页、图片、视频、PDF文件等。网络爬虫开始时会收集一些网页,然后跟随这些网页上的链接收集新的内容。图9-1展示了爬取过程的可视化示例。 爬虫的作用&#xff…...

风储联合系统的仿真模型研究

摘要 风能是目前国内外应用较为广泛的一种绿色可再生能源,近几年我国风电产业的发展十分迅速。然后,越来越多的风力发电系统建并网,风力发电产生的电能受外界因素影响较大,具有一定的随机性和波动性,给并网后的电力系统…...

JS VUE 用 canvas 给图片加水印

最近写需求,遇到要给图片加水印的需求。 刚开始想的方案是给图片上覆盖一层水印照片,但是这样的话用户直接下载图片水印也会消失。 后来查资料发现用 canvas 就可以给图片加水印,下面是处理过程。 首先我们要确认图片的格式,我们通…...

主动配电网故障恢复的重构与孤岛划分matlab程序

微❤关注“电气仔推送”获得资料(专享优惠) 参考文档: A New Model for Resilient Distribution Systems by Microgrids Formation; 主动配电网故障恢复的重构与孤岛划分统一模型; 同时考虑孤岛与重构的配电网故障…...

2023C语言暑假作业day6

1.选择题 1 1、以下叙述中正确的是( ) A: 只能在循环体内和switch语句体内使用break语句 B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行 C: continue语句的作用是:在执…...

java try 自动关闭流

Java Try自动关闭流实现步骤 在开始之前,我们先来了解一下整个实现过程的流程。下面的表格展示了实现"try自动关闭流"的步骤: 步骤 描述 1 创建需要操作的流对象 2 在try语句块中使用流对象 3 在try语句块中自动关闭流对象 接下来…...

WebDAV之π-Disk派盘 + 元思笔记

元思笔记是一款面向大众的卡片笔记软件,解决了笔记类软件的一个痛点:绝大多数人都很难坚持每天记一点东西。任何笔记工具,不论是纸笔还是电子,能够让人坚持记录就是好工具。 元思笔记是一款基于卢曼卡片盒的移动端卡片笔记软件;隐私优先,本地存储数据且支持云备份;丰富的…...

electron自定义标题栏,并监听双击以及右键改变窗口大小。

1、前言 当需要在标题栏添加一些额外的操作时候,比如添加 帮助 菜单,自带的标题栏开发起来比较困难(没了解不知道能不能实现),这时候,自己写一个标题栏就比较方便。 2、实现 首先是禁止掉原先的标题栏&a…...

Beam Focusing for Near-Field Multi-User MIMO Communications阅读笔记

abstract 大天线阵列和高频段是未来无线通信系统的两个关键特征。大规模天线与高传输频率的组合通常导致通信设备在近场(菲涅耳)区域中操作。在本文中,我们研究了潜在的波束聚焦,可行的近场操作,在促进高速率多用户下…...

Unity基础课程之物理引擎6-关于物理材质的使用和理解

每个物体都有着不同的摩擦力。光滑的冰面摩擦力很小,而地毯表面的摩擦力则很大。另外每种材料也有着不同的弹性,橡皮表面的弹性大,硬质地面的弹性小。在Unity中这些现象都符合日常的理念。虽然从原理上讲,物体的摩擦力和弹性有着更…...

用c语言写一个剪刀石头布小游戏

用简单的生成随机数,来对电脑进行的选择。再用if else和swtich语句实现输出和输赢的判断 test.c: #define _CRT_SECURE_NO_WARNINGS#include "game.h"void menu() {printf("There can be choose for you,type:\n");printf("0 for rock\n&…...

【MySQL入门到精通-黑马程序员】MySQL基础篇-DCL

文章目录 前言一、DCL-介绍二、DCL-管理用户二、DCL-权限控制总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记,课程地址在这。如有侵权,立即删除。 一、DCL-介绍 DCL英文全称是Data Control Language(数据控制语言&#x…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...