MySQL-集群的高可用

news2024/9/25 11:15:09

MMM: Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)

官网:

http://www.mysql-mmm.org     https://code.google.com/archive/p/mysql-master-master/downloads

MHA Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库,出于机器成本的考虑,淘宝进行了改造,目前淘宝TMHA已经支持一主一从

弊端:管理端只能用Centos7做,其容灾性好,但其只能达到999

官网:  https://code.google.com/archive/p/mysql-master-ha/

Galera Cluster:wsrep(MySQL extended with the Write Set Replication)通过wsrep协议在全局实现复制;任何一节点都可读写,不需要主从复制,实现多主读写,容灾可达9999,但是灵活性不好,比较古板

GR(Group Replication):MySQL官方提供的组复制技术(MySQL 5.7.17引入的技术),基于原生复制技术Paxos算法、

MHA集群架构

提升原则:健康(服务器和数据健康)、关系好 

首先MHA是一个manager管控多个业务的集群架构体系,它的高可用实现主服务器宕机,提升新主。它基于远程连接ssh协议来同步数据(同步主节点的master的binlog events),此时会涉及到两种情况:

①主节点数据库宕机,那么它会基于ssh协议直接将binlog events 直接同步到从服务器中,并将其提升为新主(必须要健康),其它从节点change master to 直接指向新主,从而实现新一轮的主从复制

②主节点直接宕机;如果是主节点数据库宕机,一旦主节点数据库宕机,此时MHA的manager就会从后台挑选一个日志差异化最小的latest slave作为新主,将主节点的二进制日志对应的数据,基于远程连接协议同步到提升新的从节点去。同步之后,新的latest slave去重放binlog events,重放完之后,从服务器就会变成一个新主(此时新主二进制日志的数据量和之前的master数据量相差无几),新的主节点会将它的二进制日志同步给从节点,从而形成新一轮的主从复制

在master节点启用参数:

sync_binlog=1     每次写后立即同步二进制日志到磁盘,性能差

 【注】:MHA是基于远程连接协议ssh来同步数据的,所以必须要求做MHA整个高可用集群架构之前,必须先基于key验证,做免密(管理节点和所有的主节点、以及所有的从节点做key验证)

MHA工作原理

1.MHA利用SELECT 1 As Value指令判断master服务器的健康性,一旦master宕机,MHA从宕机崩溃的master保存二进制日志事件(binlog events)

2.识别含有最新更新的slave,新的latest slave去重放binlog events,重放完之后,从服务器就会变成一个新主(此时新主二进制日志的数据量和之前的master数据量相差无几)

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

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

5.提升一个slave为新的master

6.使其他的slave连接新的master进行复制

MHA软件由两部分组成,Manager工具包和Node工具包

Manager工具包主要包括以下几个工具:

masterha_check_ssh 检查MHA的SSH配置状况

masterha_check_repl 检查MySQL复制状况

masterha_manger 启动MHA

masterha_check_status 检测当前MHA运行状态

masterha_master_monitor 检测master是否宕机

masterha_master_switch 故障转移(自动或手动)

masterha_conf_host 添加或删除配置的server信息

Node工具包:这些工具通常由MHA Manager的脚本触发,无需人为操作)主要包括以下几个工具:

save_binary_logs 保存和复制master的二进制日志

apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的slave

filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用此工具)

purge_relay_logs 清除中继日志(不会阻塞SQL线程)

自定义扩展:

secondary_check_script: 通过多条网络路由检测master的可用性

master_ip_ailover_script: 更新Application使用的masterip

shutdown_script: 强制关闭master节点

report_script: 发送报告

init_conf_load_script: 加载初始配置参数

master_ip_online_change_script:更新master节点ip地址

配置文件:

global配置,为各application提供默认配置

application配置:为每个主从复制集群

步骤:①:实现基于KEY密码认证

           ②:manager节点安装两个mha程序包,其他被管理节点只需安装node包

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

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

相关文章

成功者的8个时间管理技巧,让你在职场中脱颖而出

在职场中,高效的时间管理不仅能帮助你完成更多工作,还能提升你的工作效率和工作质量。以下是八个时间管理技巧: 一、明确职业目标,设定优先级 明确自己的职业目标,并根据这些目标设定工作任务的优先级。这有助于你专…

HTML5实现酷炫个人产品推广、工具推广、信息推广、个人主页、个人介绍、酷炫官网、门户网站模板源码

文章目录 1.设计来源1.1 主界面1.2 我的产品界面1.3 关于我们界面1.4 照片墙界面1.5 发展历程界面1.6 优秀人才界面1.7 热门产品界面1.8 联系我们界面 2.灵活调整模块3.效果和源码3.1 动态效果3.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.c…

PADS 规则设置-导线不跟随器件-导线允许回路

1、PADS Layout中设置拖动器件时导线不跟着移动 2、PADS Router中设置走线允许回路

Python基础学习之logging模块

在Python编程中,日志记录(Logging)是一个非常重要的功能。它不仅可以帮助我们追踪和调试代码中的错误,还可以记录程序运行时的关键信息,以便后续分析和优化。Python标准库中的logging模块为我们提供了强大的日志记录功…

受控文件传输要怎么做 才能保障数据不泄露?

受控文件传输是指在严格的安全措施和政策控制下进行文件传输的过程,受控文件传输的目的是确保数据的安全性和完整性,同时满足合规性和审计要求,适用于需要高安全级别的企业环境,如金融机构、医疗机构、政府机构等。 为了实现受控文…

Rust 实战thiserror+自定义错误消息体

导航 一、背景二、实践1、导入thiserror2、自定义错误消息体(1)创建ErrMsg.rs和创建自定义结构体(2)lib.rs添加ErrMsg(3)main函数(4)完整代码 一、背景 开发中遇到需要通用、能够满…

发卡授权盗u源码系统搭建ZHU16728

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包去除后门板,搭建系统TGaqxm01 。功能完美。 此套系统二开后完美授权成功,百分百授权。不是市面上那种授不了权的那种。 授权额度Unlimited 懂的都懂。 1.Php静态 2.目录puicta 3.扩sal 4.ss…

避雷!7.7分,新增1区TOP被标记On Hold,5本已被踢除!

本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…

Mysql索引失效情况

索引失效的情况 这是正常查询情况,满足最左前缀,先查有先度高的索引。 1. 注意这里最后一种情况,这里和上面只查询 name 小米科技 的命中情况一样。说明索引部分丢失! 2. 这里第二条sql中的,status > 1 就是范围查…

【图书推荐】《ChatGLM3大模型本地化部署、应用开发与微调》

本书目的 本书通过多个PyTorch实战案例,帮助读者掌握ChatGLM3大模型本地化部署、应用开发与微调技能。智能问答机器人、美妆助手、上市公司财务报表信息抽取、上市公司财务报表智能问答与财务预警等案例,都可以按读者自己的业务需求,改造成可…

Ubuntu多版本(低版本)gcc/g++安装、切换与卸载图文教程

目录 1 问题背景2 多版本安装3 多版本切换4 多版本卸载5 其他问题 1 问题背景 环境: gcc 9.4.0g 9.4.0Ubuntu20.04 现象:通过apt install build-essential安装的gcc和g默认是当前版本系统支持的最高版本编译器,但是很多工程的编译需要安装低版…

大数据信用风险特别高,那大数据信用高风险要如何降低呢?

在大数据信用报告中,综合评分是直观体现信用风险高低的重要元素,也就是我们长听说的大数据信用分,很多人在查大数据信用报告之后,发现自己的大数据信用风险特别高,那大数据信用高风险要如何降低呢?小编从引起高风险的…

在线点餐系统搭建重点,会用到哪些三方服务?

在线点餐系统的搭建是一个涉及多个环节和技术的过程,其重点包括需求分析、系统设计、功能实现、用户体验以及系统的稳定性和安全性等方面。在搭建过程中,可能会使用到以下三方服务: 云服务提供商:云服务为在线点餐系统提供了基础…

充电宝怎么选?哪些充电宝的性价比比较高?性价比高充电宝推荐

在快节奏的现代生活中,共享充电宝已成为我们出行的常见伴侣。它们遍布城市的各个角落,为手机电量告急的我们提供了及时的帮助。然而,这种便利背后也隐藏着一些不那么方便的小插曲。 首先,我们得承认共享充电宝的便捷性。无论你是…

【JavaEE 初阶(二)】线程安全问题

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多线程知识 目录 1.前言2.synchronized2.1例子2.2synchronized修饰代码块2.3 synchronized修饰方法2.4sy…

多模态路径:利用其他模态的无关数据改进变压器(CVPR 2024)

<Multimodal Pathway: Improve Transformers with Irrelevant Data from Other Modalities> 论文地址&#xff1a;https://arxiv.org/abs/2401.14405 项目网页&#xff1a;https://ailab-cvc.github.io/M2PT/ 开源代码&#xff1a;https://github.com/AILab-CVC/M2PT 讲…

天锐绿盾 | 公司防泄密软件

天锐绿盾是一款专为企业设计的图纸及文件加密防泄密软件&#xff0c;旨在保护企业的核心信息资产和知识产权。这款软件提供了强大的数据保护功能&#xff0c;通过透明加密技术&#xff0c;在不影响员工正常工作流程的前提下&#xff0c;自动对指定类型的文件&#xff08;如设计…

流程:采集1688店铺内有成交的商品列表||1688商品订单列表+订单详情API接口

此API目前支持以下基本接口&#xff1a; item_get 获得1688商品详情item_search 按关键字搜索商品item_search_img 按图搜索1688商品&#xff08;拍立淘&#xff09;item_search_suggest 获得搜索词推荐item_fee 获得商品快递费用seller_info 获得店铺详情item_search_shop 获得…