0

0

一起分析MySQL的高可用架构技术

WBOY

WBOY

发布时间:2022-02-22 18:12:13

|

2253人浏览过

|

来源于CSDN

转载

本篇文章中给大家带来了关于mysql中高可用架构技术分析的相关知识,其中主要介绍了mmm的技术分析、mysql主从架构以及cluster的相关问题,希望对大家有帮助。

一起分析MySQL的高可用架构技术

背景说明

随着信息技术的发展,企业越来越依赖于信息化管理,各业务应用的数据信息,主要存储在数据库中,企业对这些数据访问的连续性要求越来越高,为了避免因为数据的中断导致各种损失,数据库的高可用已成了企业信息化建设的重中之中。同时,对于电信、金融、能源、军工等等涉及国计民生的行业或领域的关键业务对于关键数据存储都需要高可用,必须保证数据系统7×24小时全天候运行,防止数据丢失、数据损坏。编程学习资料点击领取

高可用架构介绍

高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用可能更复杂,对用户的服务可用,不仅仅是能访问,还需要有正确性保证,因此数据库的高可用需要更加认证对待。

MySQL高可用架构分类

  • MySQL实现高可用之MMM
  • MySQL实现高可用之MHA
  • MySQL实现高可用之主从架构
  • MySQL实现高可用之Cluster模式

MMM的技术分析

MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。
  • MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热

  • MMM的监控端是会提供多个虚拟ip(vip),包括一个可写的vip,多个可读的vip,通过监管的管理,这些ip会绑定在可用的mysql上,当某一台mysql宕机时,会将vip迁移到其他mysql。

  • MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。

  • 这个套件也能基于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。

MMM的基础组件分析

  • mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。因此,脚本需要在监管上运行。
  • mmm_agentd:运行在每个msql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。
  • mmm_control:一个简单的脚本,提供管理mmm_mond进行的命令。

MMM实现基本实现原理

MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。

MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。

MMM的使用场景

由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。

对于那些对数据的一致性要求很高的业务,非常不建议采用MMM这种高可用架构。

  • MMM项目来自 Google:code.google.com/p/mysql-mas…
  • 官方网站为:mysql-mmm.org

MHA简介

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

  • MHA是一款开源的MySQL高可用程序,MHA在监控到master节点故障时,会自动提升其中拥有最新数据的slave节点成为新的master节点。

  • MHA会获取其他节点的额外信息来避免一致性方面的问题,也就是MHA会获取其他从节点中的数据信息,并将信息发给最接近主节点的从节点,这样主节点故障时会提升此从节点为主节点,而此从节点拥有其他从节点所有的数据信息。

  • MHA还提供了master节点的在线切换功能,即按需切换master/slave节点。

MHA的基础组件

MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。

MHA Manager可以单独部署在独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。

MHA的实现原理

  • MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。
  • 在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。
  • 例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL 5.5的半同步复制,可以降低数据丢失的风险。
  • MHA可以与半同步复制结合起来,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。

MHA的使用场景

目前MHA主要支持一主多从的架构。

ShoopD 网上商店系统
ShoopD 网上商店系统

用 php + mysql 驱动的在线商城系统,我们的目标为中国的中小企业及个人提供最简洁,最安全,最高效的在线商城解决方案,使用了自建的会员积分折扣功能,不同的会员组有不同的折扣,让您的商店吸引更多的后续客户。 系统自动加分处理功能,自动处理会员等级,免去人工处理的工作量,让您的商店运作起来更方便省事 采用了自建的直接模板技术,免去了模板解析时间,提高了代码利用效率 独立开发的购物车系统,使用最

下载
  • 要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库。

  • 因为至少需要三台服务器,出于机器成本的考虑,淘宝也在该基础上进行了改造,目前淘宝TMHA已经支持一主一从。

  • 从代码层面看,MHA就是一套Perl脚本,那么相信以阿里系的技术实力,将MHA改成支持一主一从也并非难事。

MySQL主从架构

此种架构,一般初创企业比较常用,也便于后面步步的扩展

此架构特点

  1. 成本低,布署快速、方便
  2. 读写分离
  3. 还能通过及时增加从库来减少读库压力
  4. 主库单点故障
  5. 数据一致性问题(同步延迟造成)

  1. 高可用软件可使用Heartbeat,全面负责VIP、数据与DRBD服务的管理
  2. 主故障后可自动快速切换,并且从库仍然能通过VIP与新主库进行数据同步
  3. 从库也支持读写分离,可使用中间件或程序实现

MySQL Cluster概述

MySQL Cluster技术在分布式系统中为MySQL提供了冗余特性,增强了安全性,可以的提高系统的可靠性和数据的有效性。MySQL集群需要一组计算机,每台计算机可以理解为一个节点,这些节点的功能各不相同。MySQL Cluster按照功能来分,可以分为三种节点:管理节点、数据节点和SQL节点。集群中的某台计算机可以是某一个节点,也可以是两种或者三种节点的集合,这些节点组合在一起,为应用提供具有高可靠性、高性能的Cluster数据管理;

目前企业数据量越来越大,所以对MySQL的要求进一步提高,以前的大部分高可用方案通常存在一定的缺陷,例如MySQL Replication方案,Master是否存活检测需要一定的时间,如果需要主从切换也需要一定的时间,因此高可用很大的程度上依赖于监控软件和自动化管理工具。随着MySQL Cluster的不断发展,终于在性能和高可用上得到了很大的提高;

MySQL Cluster基本概念

MySQL Cluster简单地讲是一种MySQL集群的技术,是由一组计算机构成,每台计算机可以存放一个或者多个节点,其中包括MySQL服务器,DNB Cluster的数据节点,管理其他节点,以及专门的数据访问程序,这些节点组合在一起,就可以为应用提高可高性能、高可用性和可缩放性的Cluster数据管理;

MySQL Cluster的访问过程大致是这样的,应用通常使用一定的负载均衡算法将对数据访问分散到不同的SQL节点,SQL节点对数据节点进行数据访问并从数据节点返回数据结果,管理节点仅仅只是对SQL节点和数据节点进行配置管理;

理解MySQL Cluster节点

MySQL Cluster按照节点类型可以分为3种类型的节点,分别是管理节点、SQL节点、数据节点,所有的这些节点构成了一个完整的MySQL集群体系,事实上,数据保存在NDB存储服务器的存储引擎中,表结构则保存在MySQL服务器中,应用程序通过MySQL服务器访问数据,而集群管理服务器则通过管理工具ndb_mgmd来管理NDB存储服务器;

【1.管理节点】

管理节点主要是用来对其他的节点进行管理。通常通过配置config.ini文件来配置集群中有多少需要维护的副本、配置每个数据节点上为数据和索引分配多少内存、IP地址、以及在每个数据节点上保存数据的磁盘路径;

管理节点通常管理Cluster配置文件和Cluster日志。Cluster中的每个节点从管理服务器检索配置信息,并请求确定管理服务器所在位置的方式。如果节点内出现新的事件的时候,节点将这类事件的信息传输到管理服务器,将这类信息写入到Cluster日志中;

一般在MySQL Cluster体系中至少需要一个管理节点,另外值得注意的是,因为数据节点和SQL节点在启动之前需要读取Cluster的配置信息,所以通常管理节点是最先启动的;

【2.SQL节点】

SQL节点简单地讲就是mysqld服务器,应用不能直接访问数据节点,只能通过SQL节点访问数据节点来返回数据。任何一个SQL节点都是连接到所有的存储节点的,所以当人任何一个存储节点发生故障的时候,SQL节点都可以把请求转移到另一个存储节点执行。通常来讲,SQL节点越多越好,SQL节点越多,分配到每个SQL节点的负载就越小,系统的整体性能就越好;

【3.数据节点】

数据节点用来存放Cluster里面的数据,MySQL Cluster在各个数据节点之间复制数据,任何一个节点发生了故障,始终会有另外的数据节点存储数据;

通常这3种不同逻辑的节点可以分布在不同的计算机上面,集群最少有3台计算机,为了保证能够正常维护集群服务,通常将管理节点放在一个单独的主机上;

推荐学习:mysql视频教程

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

109

2026.01.26

edge浏览器怎样设置主页 edge浏览器自定义设置教程
edge浏览器怎样设置主页 edge浏览器自定义设置教程

在Edge浏览器中设置主页,请依次点击右上角“...”图标 > 设置 > 开始、主页和新建标签页。在“Microsoft Edge 启动时”选择“打开以下页面”,点击“添加新页面”并输入网址。若要使用主页按钮,需在“外观”设置中开启“显示主页按钮”并设定网址。

16

2026.01.26

苹果官方查询网站 苹果手机正品激活查询入口
苹果官方查询网站 苹果手机正品激活查询入口

苹果官方查询网站主要通过 checkcoverage.apple.com/cn/zh/ 进行,可用于查询序列号(SN)对应的保修状态、激活日期及技术支持服务。此外,查找丢失设备请使用 iCloud.com/find,购买信息与物流可访问 Apple (中国大陆) 订单状态页面。

136

2026.01.26

npd人格什么意思 npd人格有什么特征
npd人格什么意思 npd人格有什么特征

NPD(Narcissistic Personality Disorder)即自恋型人格障碍,是一种心理健康问题,特点是极度夸大自我重要性、需要过度赞美与关注,同时极度缺乏共情能力,背后常掩藏着低自尊和不安全感,影响人际关系、工作和生活,通常在青少年时期开始显现,需由专业人士诊断。

7

2026.01.26

windows安全中心怎么关闭 windows安全中心怎么执行操作
windows安全中心怎么关闭 windows安全中心怎么执行操作

关闭Windows安全中心(Windows Defender)可通过系统设置暂时关闭,或使用组策略/注册表永久关闭。最简单的方法是:进入设置 > 隐私和安全性 > Windows安全中心 > 病毒和威胁防护 > 管理设置,将实时保护等选项关闭。

6

2026.01.26

2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】
2026年春运抢票攻略大全 春运抢票攻略教你三招手【技巧】

铁路12306提供起售时间查询、起售提醒、购票预填、候补购票及误购限时免费退票五项服务,并强调官方渠道唯一性与信息安全。

122

2026.01.26

个人所得税税率表2026 个人所得税率最新税率表
个人所得税税率表2026 个人所得税率最新税率表

以工资薪金所得为例,应纳税额 = 应纳税所得额 × 税率 - 速算扣除数。应纳税所得额 = 月度收入 - 5000 元 - 专项扣除 - 专项附加扣除 - 依法确定的其他扣除。假设某员工月工资 10000 元,专项扣除 1000 元,专项附加扣除 2000 元,当月应纳税所得额为 10000 - 5000 - 1000 - 2000 = 2000 元,对应税率为 3%,速算扣除数为 0,则当月应纳税额为 2000×3% = 60 元。

35

2026.01.26

oppo云服务官网登录入口 oppo云服务登录手机版
oppo云服务官网登录入口 oppo云服务登录手机版

oppo云服务https://cloud.oppo.com/可以在云端安全存储您的照片、视频、联系人、便签等重要数据。当您的手机数据意外丢失或者需要更换手机时,可以随时将这些存储在云端的数据快速恢复到手机中。

121

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 811人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号