MYSQL 常见应用架构经验分享(二)|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 快速学习 MYSQL 常见应用架构经验分享

开发者学堂课程【MySQL 企业常见架构与调优经验分享MYSQL 常见应用架构经验分享】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/383/detail/4814


MYSQL 常见应用架构经验分享(二)


内容简介

一、 MYSQL 常见的应用架构分享

1、Heartbeat/SAN 高可用解决方案

2、Heartbeat/DRBD 高可用解决方案


一、 MYSQL 常见的应用架构分享

1、Heartbeat/SAN 高可用解决方案(最传统)

在这个方案中,处理 fail over 的方式是高可用集群软件 Heartbeat ,它监控和管理各个节点间连接的网络,并监控集群服务,当节点出现故障或者服务不可用时,自动在其他节点启动集群服务。

在数据共享方面,通过 SAN ( Storage Are a Network )  存储来共享数据。

这种方案可以实现 99.990% 的 SLA 。

1.png

原理:平时就一个 MySQL ,一个主一个备。我们这块叫主备,他不是一个主从的关系。主备呢,他其实是一个严格的,一个主,一个备。正常的情况下它是从前端的 MySQL 的主去读这个数据,那么他这个主的数据挂的是共享磁盘所以它会去根据共享磁盘去读数。

那么这是正常情况下,不正常情况 MySQL 主出现故障之后呢,那第二步就是要解决的是故障之后 Heartbeat 这个监控,他会第一时间发现,发现了之后呢,会把集群的这个资源,也就是 VIP从MySQL 主自动切换到 MySQL 从那么第二个要完成的任务,它会把 MySQL 主之前挂的共享磁盘自动卸载,然后他会让 MySQL 自动去挂载共享磁盘,然后继续对位外提供服务。

这个方式呢,他的一个好处在这个可用性方面是比较好的,因为他使用的是共享存储,所以他数据同步效率就不存在了。因为都是挂载的是一块盘。当然这块也还存在一种脑力现象。

他没有把磁盘卸载掉,而这个时候 MySQL 备变成主之后,他又把这个磁盘给挂载上了,那么这个时候就出现了一个共享磁盘被两个机同时挂载的情况,那么这个时候都进行读写的话。那么这个文件系统就完蛋了。

这个就号称脑力问题,那么解决这个脑力问题有个比较成型的方案。比如我们用一些分磁盘设备,避免事情发生。那么最常见的就是在 Heartbeat 这一集训软件里,我们调用了系统本身的分磁设备。

2、Heartbeat/DRBD 高可用解决方案

2.png

DRBD 这个模块主要功能他其实叫一个网络镜像器,什么叫网络镜像器呢,实际上就是我们在两台机器上有两块独立的磁盘,或者说磁盘分区也可以。通过 DRBD 这个设备它可以把这个一个网络上的 A 主机的一个磁盘的数据实时的同步到B磁盘。那么就是通过这个 DRBD 软件去实现的。

那么具体是怎么实现的。如上图所示。这个两块磁盘是独立的不是一块共享设备,那么两块磁盘,比如说磁盘1和一个磁盘1的镜像,他们之间是通过 DRBD 这么一个开源软件去实现数据的同步。那么这样的话其实数据有两份,而不像 SAN 一样,数据只有一份,这是通过 DRBD 实现数据,他们前端都是一样的,那么正常情况下 MySQL 主去提供服务,他用自身的磁盘1去取数据,然后做一个读写操作那么当 MySQL1 出现异常的情况下,那当然也是 Heartbeat 去实现监控,他监控到这个 MySQL1 有故障之后呢,做一个集群的资源切换。这个时候集群的资源其实有两个,第一个资源其实是我们所说的 VIP 漂移 IP 地址,首先它会把这个 VIP 地址从这个 MySQL 主然后转到 MySQL 备这样一个机器上来,这是第一个。

另外一个就是关于把这个磁盘这个,就是他会把这个 MySQL 主的磁盘分区给卸载,然后他会在 MySQL 备机上,把这个磁盘给挂载,因为熟悉这个的都知道,就是 DRBD 两块磁盘之间进行同步的话,正常来说,这个磁盘1是主的话,它是可以挂载的,也可以读写的。

正常情况下镜像1他也可以挂载,但是这个磁盘分区不能进行读写操作的。这是它的一个不太好的地方。如果他也能实现读写操作的话,那么他这个结果就非常完美了。

那么 DRBD 不能实现两个镜像磁盘可以同时读写的,那么这块也就保证了我们数据的一致性。那么当这个架构从 MySQL 主切到 MySQL 备之后呢,他要做的一个工作就是把这个主的磁盘给卸载。或者说把这个主的写操作给关闭,在备机上,它会把这个磁盘给挂载上,然后实现读写操作,这个看似操作比较复杂,,其实实际操作比较简单。

正常情况下所有业务都是通过 MySQL 主提供操作的,MySQL 主呢在这就是这个磁盘1,我们仅仅通过 DRBD 把数据同步到这个镜像磁盘的,而镜像磁盘是不提供服务的。

所以这块不存在两个之间性能的差别。但是可能有一点,如果说这个磁盘1这个数据的写比较频繁,那么 DRBD 他对数据的同步也会比较频繁,那么若说网络数据比较频繁,对网络要求就比较高了。

此方案处理 fail over 的方式上依旧采用 Heartbeat ,不同的是,在数据共享方面,采用了基于块级别的数据同步软件 DRBD 来实现。

DRBD 是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和 SAN 网络不同,它并不共享存储,而是通过服务器之间的网络复制数据。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
18天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
19天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
23天前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
41 3
|
23天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
45 1
|
24天前
|
监控 持续交付 API
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
24 0
|
25天前
|
边缘计算 监控 自动驾驶
揭秘云计算中的边缘计算:架构、优势及应用场景
揭秘云计算中的边缘计算:架构、优势及应用场景
|
25天前
|
存储 监控 API
深入解析微服务架构及其在现代应用中的实践
深入解析微服务架构及其在现代应用中的实践
36 0
|
13天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
87 15
|
6天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。

推荐镜像

更多
下一篇
DataWorks