分享MYSQL中的各种高可用技术(源自姜承尧大牛)

图片和资料来源于MYSQL大牛姜承尧老师(MYSQL技术内幕作者)

姜承尧: 网易杭州研究院 技术经理 主导INNOSQL的开发

mysql高可用各个技术的比较

数据库的可靠指的是数据可靠 

数据库可用指的是数据库服务可用

可靠的是数据:例如工商银行,数据不能丢失

可用的是服务:服务器不能宕机

 

 

 

灵活运用MYSQL的各种高可用技术来达到下面各种级别的高可用要求

要达到99.9%:使用MYSQL复制技术

要达到99.99%:使用MYSQL NDB 集群和虚拟化技术

要达到99.999%:使用shared-nothing架构的GEO-REPLICATION和NDB集群技术

Gluster Geo-replication是什麼?

Gluster Geo-replication(简称geo-replication)是一种异地灾备技术,

它主要应用于把集群中的一个存储,近乎即时地(near real-time)透过公网(wan)备份到远端的机房

 

各种高可用级别允许的宕机时间

DRBD:网络磁盘的RAID1


方案一:MYSQL主从复制(单活)

投票选举机制,较复杂

MySQL本身没有提供replication failover的解决方案,自动切换需要依赖MHA脚本

可以有多台从库,从库可以做报表和备份

 


方案二:双主(单活),failover比单主简单

同样,自动切换需要MMM脚本

缺点是某个主挂掉了,他下面的slave同样挂掉


方案三:双主配SAN存储(单活)

 

这个架构跟方案二是一样的,只不过两个master之间不需要同步数据,因为他们用的是共享磁盘

这个方案是有钱人方案,无论哪个主挂掉都不会引起其他的slave挂掉,但是SAN存储死贵。。

像通信行业中国联通这些公司有用到

某个主挂掉了,下面的slave不会挂掉

注意:failover之后不会预热,数据没有预先加载到内存中,切换之后一段时间内存储会有一定的性能影响

 


方案四:DRBD 双主配DRBD (单活)

结构跟方案三一样,唯一不同的是没有使用SAN网络存储 ,而是使用local disk

由于是实时复制磁盘数据,性能会有影响

人们把DRBD称为“屌丝的SAN”

POOR MAN'S SAN:穷人的SAN

 

 

 


方案五:NDB CLUSTER

 

国内用NDB集群的公司非常少,貌似有些银行有用

NDB集群不需要依赖第三方组件,全部都使用官方组件,能保证数据的一致性

某个数据节点挂掉,其他数据节点依然可以提供服务

管理节点需要做冗余以防挂掉

缺点是:管理和配置都很复杂,而且某些SQL语句例如join语句需要避免

 


方案六:第三方的Tungsten软件

使用java编写,不是MYSQL内置的

同样是MYSQL数据库复制,不过他不是用MYSQL内置的组件来做的

不但支持MYSQL数据库复制也支持异构数据库的复制,而且对异构数据库复制支持较好,例如MYSQL复制到ORACLE


方案七:网易的INNOSQL

类似于SQLSERVER的镜像高安全模式

High Safety 模式 (也就是同步模式)没有 witness服务器

数据库在Principle的事务,需要马上得到mirror的确认,才能完成。这种情况下,Mirror和Principle的数据是同步的。

但是因为所有的事务需要mirror的确认,所以性能可能会有所影响。

区别:innosql的slave可以读,镜像的slave(从库)不可读

保证数据不会丢失,数据的高可靠性

 

mysql5.7开始支持这种模式

 

 


总结

每种方案都有不同的特点,配置和应用场景也各有不同

有些偏向于成本低的,有些偏向于成本高的,有些偏向于数据的可靠性,有些则偏向于数据库的可用性

反正各个方案都各有优缺点,DBA要结合自己公司的业务情况进行选择合适自己业务情况的高可用方案

 

更多参考资料:

读写分离:Amoeba

Ubuntu10下MySQL搭建Amoeba系列(文章索引)

集群技术:数据库集群技术漫谈

Gluster Geo-replication工作原理

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

转载于:https://www.cnblogs.com/123ing/p/3840126.html

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

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

相关文章

数据库、MySQL介绍及安装流程、SQL语句中增删改查、SQL注入、通过php操作数据库,plugin ‘caching_sha2_password加密规则,分表查询

MySQL数据库: 数据库: 存放数据的仓库,用来按照特定的结构去组织和管理我们的数据,有数据库就可以更加方便的储存数据; 数据库只是存储数据的一种手段,最终数据是存放在硬盘中的,只是存放的格…

chartjs和echartsjs库简介

chart.js和echarts.js: 尽管我们已经掌握了canvas绘图和SVG矢量图,在实际开发中我们依旧不会使用canvas和SVG,因为考虑到开发成本,一般会采用相关的图表库进行辅助开发,市面上常用的图表库有chart.js和echarts.js;如果…

弱智的我

【你能看到多少个人头? 】 0—4张: 弱智; 5—8张: 一般人; 9—11张: 特别感性; 11—13张: 精神分裂. 晕倒, 我是弱智的...就看到一个人头...转载于:https://www.cnblogs.com/zhangzujin/p/3877222.html

typecho和wordpress模板了解、开发流程介绍、前台后台前端后端区分

网站模板搭建网站: 使用网站模板搭建网站很简单,只需要将相关文件放到你自己的服务器上面,之后在进行相关的配置即可。这里给大家介绍两款网站模板: typecho: 是一个轻量高效,简单操作就能搭建网站的模板…

在浏览器端调试代码并直接修改原文件、移动端虚拟键盘中实现搜索按钮

在浏览器端调试代码并直接修改原文件: 此调试方法可以避免在浏览器调试完代码后在到原文件手动修改代码的弊端,其具体方法如下: 1.先将要调试的页面在浏览器(Google)打开,这里小编打开桌面test文件夹中的…

Bootstrap简介、下载bootstrap及引入文件说明、响应式容器和满屏容器、栅格系统

Bootstrap简介: Bootstrap是Twitter(推特)开发的,目前最受欢迎的前端开源框架,基于jQuery用于开发HTML、CSS、JavaScript,简洁灵活,常用于开发响应式布局及移动端开发。其中文官方文档&#xf…

openerp child_of操作符深度解析

child_of 此操作符&#xff0c;从代码来看&#xff0c;等价于&#xff1a; [(x,child_of,id)] > x.prarent_left >id.parent_left && x.parent_left < id.parent_right , 求x&#xff08;的集合&#xff09;。 为了形象的说明&#xff0c;我们一步步来&…

当ASP.NET Forms验证方式遭遇苹果IOS

一、问题出现 我在用ASP.NET MVC4做微信开发的时候&#xff0c;用Forms验证方式做为authentication。 一般都是在web.config加&#xff1a; <authentication mode"Forms" ><forms loginUrl"~/Account/Login" name"webcookies" sliding…

bootstrap中轮播图、模态框、提示框/弹出框、滚动监听、弹性布局、响应式flex、多媒体对象

轮播图&#xff1a; bootstrap封装了轮播图的功能&#xff0c;其具体如下&#xff1a; 类名描述.carousel创建一个轮播图块的容器&#xff0c;实质是做布局用&#xff1b;且此容器应该有一个di属性&#xff0c;其属性值提供给下面左右按钮href锚点值&#xff0c;用于左右按钮…

node简介及安装、下载及运行hexo

node简介&#xff1a; 1.node.js的可以打开服务端的黑盒子及高级前端(Vue、React 、Angular)的学习&#xff0c;例如&#xff1a;文件的读写、网络服务的构建、网络通信等。 2.node.js是操作服务器的一种工具&#xff0c;构建于Chrome的v8引擎之上&#xff0c;可以操作服务器…

Repository 仓储,你的归宿究竟在哪?(一)-仓储的概念

写在前面 写这篇博文的灵感来自《如何开始DDD(完)》&#xff0c;很感谢young.han兄这几天的坚持&#xff0c;陆陆续续写了几篇有关于领域驱动设计的博文&#xff0c;让园中再次刮了一阵“DDD探讨风”&#xff0c;我现在不像前段时间那样“疯狂”了&#xff0c;写博文需要灵感&a…

浏览器基础知识

Web浏览器的主要功能是展示网页资源&#xff0c;即请求服务器并将结果展示在窗口中。工作原理大概如下&#xff1a; 地址栏输入URL 浏览器根据输入的URL查找域名的IP地址&#xff0c;DNS查找过程如下&#xff1a; 浏览器缓存——浏览器会缓存DNS记录一段时间&#xff0c;不同浏…

喜用神最正确的算法_各种电磁仿真算法的优缺点和适用范围(FDTD, FEM和MOM等)...

从实际工程应用的角度谈一下我对这几种算法的理解。先说结论&#xff0c;FDTD算的快但是不精确&#xff0c;可以用来算电大尺寸的物体&#xff0c;要是一个物体的尺寸大于10个波长&#xff0c;一般的服务站是跑不动FEM的&#xff0c;那必须得用FDTD了。FEM最经典的电磁仿真软件…

护士资格证延续注册WEB服务调用失败_服务熔断

熔断机制是应对服务雪崩效应的一种微服务链路保护机制&#xff0c;当扇出链路的某个微服务不可用或者响应时间太长时&#xff0c;会进行服务的降级&#xff0c;进而熔断该节点微服务的调用&#xff0c;快速返回”错误”的响应信息。当检测到该节点微服务响应正常后恢复调用链路…

db2 删除索引_MYSQL进阶——索引

索引模型hash索引hash索引主要适用于等值查询的场景&#xff0c;排序&#xff0c;模糊搜索等场景并不适用有序数组有序数组可用于非等值查询&#xff0c;排序等场景&#xff0c;但是由于写数据时需要对数组中的元素进行位移&#xff0c;所以一般用于静态数据的场景二叉树二叉树…

react 导航条选中颜色_调整安卓手机的颜色以更好地查看一切

并非所有人都有相同的区分颜色的能力。我们对屏幕上色彩配置的需求甚至口味可能会因人而异。幸运的是&#xff0c;Android为我们提供了多种本地工具&#xff0c;能够调整手机的颜色。我们的手机显示数百万种音调&#xff0c;这些音调是由屏幕配置或终端如何解释从某些应用程序接…

linux进程调度之 FIFO 和 RR 调度策略

转载 http://blog.chinaunix.net/uid-24774106-id-3379478.html linux进程调度之 FIFO 和 RR 调度策略 2012-10-19 18:16:43分类&#xff1a; LINUX 作者&#xff1a;manuscola.beangmail.com 博客地址&#xff1a;bean.blog.chinaunix.net 最近花了10几天的时间&#xff0…

echarts 获取点击的y轴数值_有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物...

有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物本文作者&#xff1a;Summer轴手性联芳基二醇骨架广泛存在于天然产物、生物活性分子、有用的手性配体以及催化剂中(Figure 1a)&#xff0c;因此&#xff0c;轴手性联芳基二醇化合物的合成受到广泛关注且已经取得了…

H264解码的一个測试程序

网上看到的一个H264视频格式的解码測试程序&#xff0c;能够用来參考其逻辑流程。 代码例如以下&#xff1a; Test_Display_H264(){ in_fd open(H264_INPUT_FILE, O_RDONLY); //video file open fstat(in_fd, &s); …

spring框架 web开发_go语言web开发框架学习:Iris框架讲解(一)

Golang介绍Go语言是谷歌推出的一种全新的编程语言&#xff0c;可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说&#xff1a;我们之所以开发Go&#xff0c;是因为过去10多年间软件开发的难度令人沮丧。谷歌资深软件工程师罗布派克(R…