高性能MySQL.读书笔记(六)高可用性

高性能MySQL读书笔记(一) mysql是开发必备知识,不管是工作还是面试中mysql性能优化都是一个热门话题,最近买了《高性能MySQL》这本书,我在每看完一章后都会写一遍博客来作为读书笔记,方便自己日后查阅也希望能帮助到正在看这边博客的你。 MySQL逻辑架构 MySQL的逻辑架构图如下所示: 最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。 第二层机构是MySQL比较有意思的部分。大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、. 阅读详情

什么是高可用性

每个应用对可用性的需求各不相同。在设定一个可用时间的目标之前,先问问自己,是不是确实需要达到这个目标。可用性每提高一点,所花费的成本都会远超之前;可用性的效果和开销的比例并不是线性的。需要保证多少可用时间,取决于能够承担多少成本。高可用性实际上是在宕机造成的损失与降低宕机时间所花费的成本之间取一个平衡。换句话说,如果需要花大量金钱去获得更好的可用时间,但所带来的收益却很低,可能就不值得去做。总的来说,应用在超过一定的点以后追求更高的可用性是非常困难的,成本也会很高,因此我们建议设定一个更现实的目标并且避免过度设计。幸运的是,建立2个9或3个9的可用时间的目标可能并不困难,具体情况取决于应用。

有时人们将可用性定义成服务器正在运行的时间段。我们认为可用性的定义还应该包括应用是否能以足够好的性能处理请求。有许多方法可以让一个服务器保持运行,但服务并不是真正可用。对一个很大服务器而言,重启MySQL之后,可能需要几个小时才能充分预热以保证查询请求的响应时间是可以接受的,即使服务器只接收了正常流量的一小部分也是如此。

如果服务器遭遇灾难性故障,可能多少都会丢失一此数据,例如最近已经写入二进制日志但尚未传递到备库中的中继日志中的事务。你能够容忍吗?大多数应用能够容忍;因为替代方案大多非常昂贵且复杂,或者有一些性能开销。例如,可以使用同步复制,或是将二进制日志放到一个通过DRBD进行复制的设备上,这样就算服务器完全失效也不用担心丢失数据。(但整个数据中心也有可能会掉电。)

一个良好的应用架构通常可以降低可用性方面的需求,至少对部分系统而言是这样的,良好的架构也更容易做到高可用。将应用中重要和不重要的部分进行分离可以节约不少工作量和金钱,因为对于一个更小的系统改进可用性会更容易。

 

如何实现高可用

提升平均失效时间(MTBF)

在分类整理宕机事件并追查导致宕机的根源时,我们发现,很多宕机本来是有一些方法可以避免的。我们发现大部分宕机事件都可以通过全面的常识性系统管理办法来避免。

l      测试恢复工具和流程,包括从备份中恢复数据。

l      遵循最小权限原则。

l      谨慎安排升级数据库服务器。

l      在升级前,使用诸如Percona Toolkit中的pt_uptrade之类的工具仔细检查系统

l      除非能证明有效,否则禁用查询缓存。

l      避免使用复杂的特性,例如复制过滤和触发器,除非确实需要。

l      定期检查复制完整性。

l      归档并清理不需要的数据。

l      养成习惯,评估和管理系统的改变、状态以及性能信息。

降低平均恢复时间(MTTR)

可以通过减少恢复时间来获得高可用性。事实上,一些人走得更远,只专注于减少恢复时间的某个方面:通过在系统中建立冗余来避免系统完全失效,并避免单点失效问题。

在降低恢复时间上进行投资是非常重要的,一个能提供冗余和故障转移能力的系统架构,则是降低恢复时间的关键环节。但实现高可用性不单单是一个技术问题,还有许多个人和组织的因素。组织和个人在避免宕机和从宕机事件中恢复的成熟度和能力层次各不相同。

团队成员是最重要的高可用性资产,所以为恢复制定一个好的流程非常重要。拥有熟练技能、应变能力、训练有素的员工,以及处理紧急事件的详细文档和经过仔细测试的流程,对从宕机中恢复有巨大的作用。但也不能完全依赖工具和系统,因为它们并不能理解实际情况的细微差别,有时候它们的行为在一般情况下是正确的,但在某些场景下去是个灾难。

避免单点失效

找到并消除的可能失效的单点,并结合切换到备用组件的机制,这是一种通过减少恢复时间(MTTR)来改善可用性的方法。如果你够聪明,有时候甚至能将实际的恢复时间降低至0,但总的来说这很困难。(即使一些非常引人注目的技术,例如昂贵的负载均衡器,在发现问题并进行反馈时也会导致一定的延迟。)

共享存储或磁盘复制

共享存储通常使用的是SAN。如果主服务器挂了,备用服务器可以挂载相同的文件系统,执行需要的恢复操作,并在失效服务器上的数据上启动MySQL。这个过程会更快,因为备用服务器已经启动,MySQL随时可以运行。当开始做故障转移时,检查文件系统、恢复InnoDB以及预热(Percona Server提供了一个新特性,能够把buffer pool保存下来并在重启后还原,在使用共享存储时能够很好地工作。MySQL5.6也有相似的特性)是最有可能遇到延迟的地方,但检测失效本身在许多设置中也会花费很长时间。

共享存储可以避免除存储外的其他任何组件失效所引起的数据丢失,并为非存储组件建立冗余提供可能。不过,共享存储本身仍是可能失效的单点。如果MySQL崩溃等故障导致数据文件损坏,可能会导致备用服务器也无法恢复。

主动-主动访问模式的共享存储怎么样?

在一个SAN、NAS或者集群文件系统上以主动-主动模式运行多个实例怎么样?MySQL不能这么做。因为MySQL并没有被设计成和其他MySQL实例同步对数据的访问,所以无法在同一份数据上开启多个MySQL实例。

MySQL中最普遍使用的磁盘复制技术是DRBD,并结合Linux-HA项目中的工具使用。

由于在备用DRBD设备上的写入必须要在主设备上的写入完成之前,因此备用设备的性能至少要和主设备一样,否则就会限制主设备的写入性能。带电池写缓存的RAID控制器对DRBD而言几乎是必需的,因为在没有这样的控制器时性能可能会很差。

DRBD和SAN很相似,DRBD是获得一份复制的数据,而SAN则是使用同一份数据副本,所以DRBD没有单点问题,但这两种情况下,当启动备用机器时,MySQL服务器的缓存都是空的。

DRBD有一些很好的特性和功能,但也有缺点:

l      DRBD故障转移无法做到秒以内。它通常至少需要几秒时间来将备用设备提升成主设备,这还不包括任何必须的文件系统恢复和MySQL恢复。

l      它很昂贵,因为必须在主动-被动模式下运行。热备服务器的复制设备因为处于被动模式,无法用于其他任务。连MySQL服务都是停用的。

l      对MyISAM表用处不大,因为MyISAM表崩溃后需要花费很长时间来检查和修复。

l      DRBD无法代替备份。如果磁盘由于蓄意的破坏、误操作、BUG或者其他硬件故障导致数据损坏,DRBD将无济于事。此时复制的数据只是被损坏数据的完美副本。你需要使用备份(或MySQL延时复制)来避免这些问题。

l      对写操作而言增加了负担。网络往返开销增加了写入延迟。使用DRBD导致服务器变慢最常见的原因是MySQL使用InnoDB并采取了完全持久化模式(innodb_flush_log_at_trx_commit=1),这会导致许多小的写入和fsync()调用,通过DRBD同步时会非常慢。

 

MySQL同步复制

当使用同步复制时,主库上的事务只有在至少一个备库上提交后才能认为其执行完成。

MySQL本身并不支持同步提制(MySQL5.5只支持半同步复制。)

这里可以在应用中加一个模拟方式,应用的业务在主库上提交后,马上连接到备库,调用函数MASTER_POS_WAIT检查备库是否同主库同步,但是这样会极大增加主库上业务提交返回的延迟。

基于复制的冗余

复制管理器是使用标准MySQL复制来创建冗余的工具。尽管可以通过复制来改善可用性,但也有一些“玻璃天花板”会阻止MySQL当前版本的异步复制和半同步复制获得和真正的同步复制相同的结果。复制无法保证实时的故障转移和数据零丢失,也无法将所有节点等同对待。

复制管理器通常监控管理三件事:应用和MySQL间的通信、MySQL服务器的健康度,以及MySQL服务器间的复制关系。它们即可以修改负载均衡的配置,也可以在必要的时候转移虚拟IP地址以使应用连接到合适的服务器上。大体上操作并不复杂:只需要确定写入不会发送到一个还没有准备好提供写服务的服务器上,并保证当需要提升一台备库为主库时记录下正确的复制坐标。

这听起来在理论上是可行的,但实际经验表明实际上并不总是能有效工作。事实上还很糟糕,有些时候最好有一些轻量级的工具集来帮助从觉的故障中恢复并以很低的开销获得较高的可用性。但很遗憾,到现在为止还没有一个好的工具集可以可靠地完成这一点。

最好不要尝试自己写复制管理器。异步组件有大量的故障形式,很多你从未亲身经历过,其中一些甚至无法理解,并且程序也无法适当处理,因此从这些异步组件中得到正确的行为相当困难,并且可能遭遇数据丢失的危险。事实上,机器刚开始出现问题时,由一个经验丰富的人来解决是很快的,但如果其他人做了一些错误的修复操作则可能导致问题更严重。

第一个复制管理器是MMM(http://mysql-mmm.org),但该工具集是否适用于生产环境部署的意见并不一致(尽管该工具的原作者也承认它并不可靠)。我们的许多客户在自动故障转移模式下使用该工具时确实遇到了许多严重的问题。它会导致健康的服务器离线,也可能将写入发送到错误的地点,并将备库移动到错误的坐标。

另一个是比较新的工具是MHA工具集(http://code.google.com/p/mysql-master-ha/),MHA是很好的测试集,可以防止一些MMM遇到的问题,但是我们对该工具集还没有更多的认识。

基于复制的冗余最终来说好坏参半。只有在可用性的重要性远比一致性或数据零丢失保证更重要时才推荐使用。例如,一些人并不会真正的从他们的网站功能中获得,而是从它的可用性中赚钱。谁会在乎是否出现了故障导致一张照片丢失了几条评论或其他什么东西呢?只要广告收益继续滚滚而来,可能并不值得花更多成本去实现真正的高可用性。但是还是可以通过复制来建立“尽可能的”高可用性。,当遇到一些很难处理的严重宕机时可能会有所帮助。这是一个大赌注,并且可能对大多数人而言太过于冒险,除非是那些老成的用户。

问题是许多用户不知道如何去证明自己有资格并评估复制“轮盘赌”是否适合他们。这有两个方面的原因。第一,他们并没有看到“玻璃天花板”,错误地认为一组虚拟IP地址、复制以及管理脚本能够实现真正的高可用性。第二,他们低估了技术的复杂度,因此也低估了严重故障发生后从中恢复的难度。一些人认为他们能够使用基于复制的冗余技术,但随后他们可能会更希望选择一个有更强保障的简单系统。

请不要认为我们将这些技术说得无所不能而把MySQL自身的复制贬得一团糟,那不是我们的本意。你可以为DRBD写出低质量的故障转移脚本,这很简单,就像为MySQL复制编写脚本一样。主要的区别是MySQL复制非常复杂,有很非常细小的差别,并且不会阻止你干坏事。

 

故障转移和故障恢复

提升备库或切换角色

虚拟IP地址或IP接管

中间件解决方案

可以使用代理、端口转发、网络地址转换(NAT)或者硬件负载均衡来实现故障转移和故障恢复。这些都是很好的解决方案,不像其它方法可能会引入一些不确定性(所有系统组件认同哪一个是主库吗?它能够及时并原子地更改吗?),它们是控制应用和服务器间连接的中枢。但是,它们自身也引入了单点失效,需要准备冗余来避免这个问题。

使用这样的解决方案,你可以将一个远程数据中心设置成看起来好像和应用在同一个网络里。这样就可以使用诸如浮动IP地址技术让应用和一个完全不同的数据中心开始通信。你可以配置每个数据中心的每台应用服务器,通过它自己的中间件连接,将流量路由到活跃数据中心的机器上。如果活跃数据中心的MySQL崩溃了,中间件可以路由流量到另外一个数据中心的服务器池中,应用无须知道这个变化。

MySQL代理,我推荐国内淘宝的Cobar,文档齐全,挺好用的。

在应用中处理故障转移

有时候让应用来处理故障转移会更简单或者更加灵活。例如,如果应用遇到一个错误,这个错误外部观察者正常情况下是无法察觉的,例如关于数据库损坏的错误日志信息,那么应用可以自己来处理故障转移过程。

虽然把故障转移处理过程整合到应用中看起来比较吸引人,但可能没有想象中那么有效。大多数应用有许多组件,例如cron任务、配置文件,以及用不同语言编写的脚本。将故障转移整合到应用中可能导致应用变得太过笨拙,尤其是当应用增大并变得更加复杂时。

但是将监控构建到应用中是一个好主意,当需要时,能够立刻开始故障转移过程。应用应该也能够管理用户体验,例如提供降级功能,并显示给用户合适的信息。

总结

增加运行时间,就要尝试去防止故障发生。悲剧的是,在预防故障发生时,它仍然会觉得你做的不够多,所以预防故障的努力经常会被忽视掉。

缩短恢复时间可能更复杂并且代价很高。从简单和容易的方面来说,可以通过监控来更快地发现问题,并记录大量的度量值以帮助诊断问题。

 

MySQL的高可用性部署与故障恢复策略 在现代云原生架构中,数据库的高可用性是确保业务连续性的关键。随着容器化技术和容器编排工具(如Kubernetes)的普及,实现数据库的高可用性变得更加容易。MySQL作为广泛使用的开源关系型数据库,提供了多种高可用性解决方案。本文将介绍如何在云原生环境中部署高可用MySQL集群,并设计有效的故障恢复策略。在云原生环境中,通过容器化技术和容器编排工具(如Kubernetes),可以实现MySQL的高可用性部署和故障恢复。 阅读详情

相关推荐

NewSQL 架构设计:如何实现高性能与高可用性

在互联网时代,业务对数据库的要求越来越“苛刻”:既要像传统关系型数据库(如MySQL)那样保证数据准确(ACID),又要像NoSQL(如Redis)那样支持海量数据和高并发(每秒百万次请求),还要在服务器故障时“稳如泰山”(高可用)。NewSQL正是为解决这一矛盾而生的新一代数据库。本文将聚焦NewSQL的架构设计,重点讲解其如何通过技术创新平衡“高性能”与“高可用性”。用“超市扩建”的故事引出NewSQL的核心需求;拆解NewSQL的关键概念(如ACID、CAP、分片复制);

AI天才研究院 1556

《高可用MySQL——构建健壮的数据中心》读书笔记之一

MySQL管理员的经典必读之一,同样是来自O'Reilly的“动物书”。 第1章  引言 作为大型企业的DBA,你可能需要做以下的事情: 提供灾难发生时核心业务数据的恢复计划,并至少执行一次(当然,最好是定期演练);监控各节点的负载,提供优化计划;当业务急剧增长时的快速横向扩展计划。 为了保证业务可响应和可用,两件事情是必不可少的: 数据备份:可以将节点恢复到

仰望星空 脚踏实地 1394

硬盘dma读写过程

保护模式中,pci上的硬盘dma读写方法

480

MySQL高可用性分析

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34258782的博客 422

COMSOL解的继承

COMSOL解的继承1. 应用场景2. 实现方法2.1. 添加研究步骤2.2. 引用研究 根据参考文献整理而来,原文见: http://blog.sina.com.cn/s/blog_4a0a8b5d010126w5.html https://www.zhihu.com/question/371867999/answer/1309194094 个人学习笔记,如有疏漏,欢迎补充 1. 应用场景 在COMSOL模拟中,一次求解之后往往遇到以下几种情况需要用到解的继承: 1)瞬态求解的继续运算。例如初始设定求解1

jessica0307的博客 1万+

Oracle MCP Server实战:自然语言如何重塑数据库交互体验

本文深入探讨了Oracle MCP Server如何通过自然语言交互技术革新数据库操作体验。作为Oracle数据库的革命性工具,MCP Server集成了先进的Text-to-SQL技术,允许用户使用自然语言直接查询数据库,大幅降低使用门槛。文章详细介绍了从环境搭建、实战案例到企业级部署的全流程,特别强调了中文自然语言处理能力和安全最佳实践,为DBA和开发者提供了从传统SQL到智能交互的转型指南。

u9v0w的博客 282

关于mysql叙述中错误的是什么_以下关于MySQL的叙述中,错误的是( )。_学小易找答案...

【单选题】以下关于外键约束的描述不正确的是()【单选题】在创建视图的SQL语句中,保留字AS之后接续的是()。【单选题】按照国家标准规定,一般抽屉桌下沿距离坐面至少()左右的净空。【多选题】工作面的高度设计按基本作业姿势可分为()三类【判断题】您是按时听课,并认真完成作业吗?【单选题】下面有关DECIMAL(6,2)的描述中,正确的是( )。【单选题】不是表的三要素的是( )。【单选题】下...

weixin_35953704的博客 1364

CST局部网格加密实战:从基础设置到Meshgroup高效管理

本文详细解析了CST电磁仿真软件中的局部网格加密技术,重点介绍Meshgroup功能的高效管理方法。通过平行板电容等实战案例,阐述从基础设置到多级加密策略的完整流程,帮助用户精准提升关键区域仿真精度,同时优化计算资源使用效率。

grafana6viz的博客 694

高性能MySQL.读书笔记(五)MySQL分支与变种

Percona Sereve(PS或PS MySQL) Percona Server是个与MySQL向后兼容的替代品。它尽可能不改变SQL语法、客户端/服务器协议和磁盘的文件格式。任何运行在MySQL上的都可以运行在Percona Server上而不需要修改。切换到Percona Server只需要关闭MySQL和启动Percona Server,不需要导入和重新导入数据。切换回去也不麻烦,而这

很多时候,你缺少的不是知识而是热情 3593

Qt应用软件【协议篇】自定义协议处理串口半包贴包

Qt串口数据,半包,贴包,丢包数据处理

小鱼酱的博客 1210

手把手教你玩转CPU微架构专栏--​​​​1.5 工具准备:用Gem5模拟器“看见”微架构(安装、基础仿真命令)​

本文介绍了如何使用Gem5模拟器进行微架构学习和实验。Gem5是一款支持多种指令集的开源微架构模拟器,可模拟CPU流水线、缓存等核心组件。文章详细说明了在Ubuntu和macOS上安装Gem5的步骤,包括依赖安装、源码编译和验证方法。通过一个简单的加法指令测试程序,演示了如何运行基础仿真并解读输出日志,包括指令执行流程和性能统计数据。此外,还提供了两个实战实验:修改L1缓存大小和观察分支预测失败,帮助读者理解微架构参数对性能的影响。最后指出Gem5是学习微架构的"显微镜",能直观观察指令

xiaoheshang_123的博客 140

高性能mysql学习笔记--高可用与应用层优化

十二:高可用mysql 理解可用性最好的方法就是研究它的反面-宕机时间 12.3 如何实现高可用性 1,避免宕机,2,尽快快速恢复 3.1提升平均失效时间 3.2 降低平均恢复时间 4,避免单点失效 4.1 共享存储或磁盘复制 共享存储能够为数据库服务和存储解耦合。通常使用的是san,使用共享存储时,服务器能够正常挂载文件系统并进行操作,如果服务器挂了,备用服务器可以挂载相同的文件系统。 优点:...

hq091117的博客 339

使用Spring Cloud实现银行核心系统的案例示例

以下是一个基于Spring Cloud的银行核心业务系统实现方案,涵盖架构设计、关键模块实现与生产级部署方案。该系统设计满足金融级高可用、强一致性和监管合规要求。

银行信息系统应用架构详解 1172

高性能MySQL读书笔记 (六)

损坏系统结构: 系统结构包括事务日志等,可能需要做整个数据库的导出和还原,因为InnoDB内部绝大部分的工作可能受影响。共享存储或磁盘复制,如果服务器挂了,备用服务器可以挂载相同的文件系统执行需要的恢复操作。按功能拆分: 常见做法,根据功能将应用部署在不同服务器,并使用专用的数据库服务器。数据量: 很多应用从不物理删除任何数据,应用所积累的数据量是可扩展的普遍挑战。一致性: 如果应用是有状态的,负载均衡器就应该将相关的查询指向同一个服务器。负载均衡算法: 随机, 轮询,最少连接数,最快响应,哈希,权重。

955

【Matlab光伏功率预测】基于GRU门控循环单元的光伏功率时间序列预测(附MATLAB代码)

【Matlab光伏功率预测】基于GRU门控循环单元的光伏功率时间序列预测(附MATLAB代码)

k8291121的博客 1099

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

《高性能MySQL》读书笔记

前言 读的这一版是涵盖MySQL5.5的第3版,700多页的大部头,只在部分目前比较关注的章节细读,有第4章Schema与数据类型优化、第五章创建高性能的索引、第六章查询性能优化、第10章复制、第11章可扩展的MySQL以及第12章高可用性。两个月的时间通读了一遍,受益匪浅,简单记录一些概念性要点,很多实操细节还需反复研读和躬身实践。 全书目录 第1章 MySQL架构与历史 第2章 MySQL基...

云潮海啸的博客 304

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MySQL高可用性

MySQL 高可用性架构可以通过多种技术实现,具体选择哪种架构方案需要根据应用场景的需求、资源限制以及对可用性和一致性的要求来决定。

qq_50847694的博客 1444

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《高性能MySQL》

第一章 MySQL架构与历史 1.1 MySQL逻辑架构 1.2 开发控制 1.3 事务 1.4 多版本并发控制 1.5 MySQL的存储引擎 1.6 MySQL时间线(Timeline) 1.7 MySQL的开发模式 第二章 MySQL基准测试 2.1 为什么需要基准测试 2.2 基准测试的策略 2.3 基准测试方法 2.4 基准测试工具 2.5 基准测试案例 第三章 服务器性能剖析 3.1 性...

AthlenaA的博客 6331

高性能mysql笔记6_高性能MySQL读书笔记 (六)

1. 可扩展的Mysql可扩展性: 通过增加资源提升容量的能力1.1 考虑负载容量可以简单地认为是处理负载的能力,考虑负载可从以下几个角度数据量: 很多应用从不物理删除任何数据,应用所积累的数据量是可扩展的普遍挑战用户量: 更多的用户意味着更多的事务,更多的复杂查询用户活跃度相关数据集的大小1.2 规划可扩展性估算需要承担的负载到底有多少大致正确地估计日程表应用的功能完成多少预期的最大负载是多少如...

weixin_39815329的博客 215

高性能MySQL读书笔记 (三)

特殊类型:书中举例,ip地址应该用无符号整数存储,MySQL提供inet_aton, inet_ntoa方法转换。MySQL中,存储引擎先在索引中找到对应值根据匹配的索引记录找到对应的数据行.索引在存储引擎层实现。避免使用Null: 含有Null列会使索引,索引统计和值更为复杂。业务上有时需要一张完全独立的汇总表或缓存表主要用于满足检索的需求。分配空间: 根据实际需要分配.使用内存临时表或操作时会比较糟糕。索引是存储引擎用于快速查找记录的数据结构。更小: 选择不超过需求范围的最小类型。

929

MySQL集群方案:高可用性设计与实现

高可用性(High Availability,简称HA)就像城市的供电系统——即使某条线路出现故障,备用线路也能迅速接管,保证用户毫无感知。在数据库领域,高可用性是指系统在面对硬件故障、软件错误、网络中断等情况时,仍能保持服务的连续性。指标说明业界标准可用性百分比系统可正常运行的时间比例四个9(99.99%)以上故障恢复时间(RTO)服务从中断到恢复所需时间秒级到分钟级数据恢复点(RPO)灾难发生时可能丢失的数据量接近零或零切换透明度故障对应用层的影响程度应用无感知或最小影响。

sinat_27016095的博客 1771

数据库英雄:探索MySQL高可用性的秘密武器

2.1.1 集群技术的定义集群技术是将一组相互独立的计算机通过高速网络连接起来,组成一个计算机系统,从而以单一系统的模式加以管理。这些计算机可以是同构的,也可以是异构的。每个计算机在集群中被称为一个节点。集群中的节点可以协同工作,共同完成一个特定的任务,对外表现为一个统一的整体。2.1.2 集群技术的目标高性能:通过分散负载和增加吞吐量来提高数据库的性能。在集群中,每个节点都可以处理一部分数据和请求,从而提高整个集群的性能。高可用性。

2302_76908247的博客 1423

《高性能MYSQL》逻辑结构-读书笔记

高性能MYSQL笔记 1. MYSQL逻辑结构 MYSQL逻辑结构有三层,分别为 1. 连接/线程处理:实现连接处理,授权认证,安全等 2. 服务层:该层主要有缓存,解析,处理,优化以及跨存储引擎如存储过程,触发器,视图等 3. 存储引擎:主要负责数据读取和存储。根据服务器层提供的执行计划,进行语句的执行。 2. 并发控制 并发控制是当多个线程或者事务同时操作同一...

Yoga0301的博客 517

《高性能Mysql》读书笔记(2)

本文是阅读《高性能mysql》的笔记,主要内容是原书的第四章 Schema与数据类型优化。

Henry_ss的博客 877
上一篇: MySQL事务隔离级别为"REPEATABLE-READ"下的"幻读"现象
下一篇: MySQL分区表(总结)
笑天居士
博客等级 码龄24年 292粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值