Mysql高可用架构

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mysql高可用架构

一致性:

  • 最终一致性:时效性要求不高,在一定时间内达到一致即可
  • 强一致性:时效性要求严格

提要

正常情况下,只要主库更新生成的 bin log,都能传到备库且正确执行,备库就能达到跟主库一致的状态,这就是最终一致性。但是,Mysql 要提供高可用能力,只有最终一致性是不够的,今天我们就来聊聊这个问题。

这里再放一下,上一篇文章中的双 M 机构的主备切换流程图。

主备延迟

主备切换可能是主动运维的动作,比如,软件升级、主库所在机器计划下线等等,也有可能是被动操作,比如主库所在机器掉电等。

在介绍主动切换流程前,先说明一个概念“同步延迟”:

  1. 主库 A 完成一个事务,写bin log,这个时刻记为 T1;
  2. 之后传给备库 B,B收到bin log 时刻记为 T2;
  3. 备库B 解析并执行完这个事务,这个时刻记为 T3。

所谓主备延迟,指的是同一个事务,在备库执行完成时间与在主库执行完成时间的差值,也就是T3-T1。

你可以在备库上执行 show slave status 命令,通过返回结果的 seconds_behind_master 查看当前备库与主库延迟了多少秒,精度为秒。seconds_behind_master 的计算方法是这样的:

  1. 每个事务的 bin log 里,都会记录这个事务在主库上写入的时间;
  2. 备库取出这个时间,跟自己当前系统时间计算差值,得到 seconds_behind_master 。
    说明:如果主库和备库的系统时间不一致,备库在连接到主库的时候,会通过执行 SELECT UNIX_TIMESTAMP() 函数获取主库的系统时间,如果不一致,备库在计算 seconds_behind_master 的时候会扣掉这个差值

在网络正常的时候,binlog 在传给备库的时间是很短的,这种情况下,主备延迟的主要来源就是备库接收完bin log 和执行完这个事务的时间差。

主备延迟的来源

一、 非对称部署,就是说备库所在的机器性能要比主库所在机器的性能差。

二、即使对称部署,在备库压力大时,也会出现主备延迟。对于主库,由于会影响业务,大家用起来比较克制,从而忽视了备库的压力控制。结果就是备库上的查询耗费了大量的cpu资源,影响了同步速度,造成主备延迟。这种情况,一般可以这么处理:

  • 一主多从。除了备库外,再多接几个从库,让这些从库来分担读的压力;
  • 通过 binlog 输出到外部系统,比如 Hadoop 这类系统,让外部系统提供一部分查询能力。

一般会采用一主多从的方式,因为数据系统还必须保证有定期的全量备份。而从库就很适合用来做备份。

三、大事务

这种情况很好理解,只有等到主库上的事务执行完成才会写入 bin log,再传给备库。所以,如果一个在主库上执行了10分钟的语句,那么这个事务很可能会导致从库延迟10分钟。尽量减少大事务,如:一次性delete 掉太多数据。

四、备库的复制能力,下一篇文章展开讨论。

主备切换策略

一、可靠性优先策略

在双M架构下,从状态1切换到状态2的流程如下:

  1. 在备库上查看 seconds_behind_master ,如果小于某个值(比如5秒)继续下一步,否则持续重试第一步;
  2. 这里 seconds_behind_master 已经小于我们预期的值了,把主库改为只读状态;
  3. 判断备库的 seconds_behind_master 是否为 0,直到为 0 为止;
  4. 把备库 B 改为可读写状态;
  5. 把业务请求切到备库 B。

细心的同学可能意识到了,这种策略有一段时间的服务不可用,也就是等 seconds_behind_master 为0 的这段时间。所以,在第一步就需要保证 seconds_behind_master 足够小,尽量减少不可用时间。

二、可用性优先策略

也就是说,强行把步骤4、5 提到最开始执行,也就是说不等主备一致,直接切换。结果就是主备数据可能不一致

总结

在满足数据可靠性的前提下,数据库的高可用性,是依赖于主备延迟的。延迟越小,在主库故障的时候,切换的时间就越短,可用性就越高。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
运维 监控 关系型数据库
MySQL高可用方案:MHA与Galera Cluster对比
本文深入对比了MySQL高可用方案MHA与Galera Cluster的架构原理及适用场景。MHA适用于读写分离、集中写入的场景,具备高效写性能与简单运维优势;而Galera Cluster提供强一致性与多主写入能力,适合对数据一致性要求严格的业务。通过架构对比、性能分析及运维复杂度评估,帮助读者根据自身业务需求选择最合适的高可用方案。
|
2月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
3月前
|
运维 监控 搜索推荐
MSE ZooKeeper:Flink 高可用架构的企业级选择
本文深入解析了 Apache Flink 架构中 ZooKeeper 的核心作用,包括 Leader 选举、Checkpoint 管理、作业协调及配置管理等关键功能,并结合金融风控与电商推荐等典型场景,分析了 ZooKeeper 在实际应用中的技术实现。
|
25天前
|
运维 监控 安全
公链开发中的高可用架构设计要点
本指南提供公链高可用架构的可复用流程与模板,涵盖目标拆解、先决条件、分步执行、故障排查及验收标准,结合跨链DApp与量化机器人案例,提升落地效率与系统稳定性。
|
6月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
2月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
6月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2104 57
|
4月前
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
217 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
5月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
7月前
|
消息中间件 存储 设计模式
RocketMQ原理—5.高可用+高并发+高性能架构
本文主要从高可用架构、高并发架构、高性能架构三个方面来介绍RocketMQ的原理。
2492 21
RocketMQ原理—5.高可用+高并发+高性能架构

热门文章

最新文章

推荐镜像

更多