图片和资料来源于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

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

  1. 数据库mysql工序_网易杭研总结:数据库高可用技术之道(4)

    数据库作为IT系统中最关键的服务之一,其可用性一直是系统设计中的重点考虑因素.同时,由于数据库有数据有状态的天性,数据库高可用有其天然的复杂性和难点,云原生架构下尤其如此,是一个值得深入探讨的课题.本 ...

  2. (3)HDFS原理与高可用技术原理介绍

    专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.HDFS简 ...

  3. 《MySQL性能优化和高可用架构实践》简介与推荐序

    #好书推荐##好书奇遇季#<MySQL性能优化和高可用架构实践>,京东当当天猫都有发售.腾讯云架构师宋立桓倾情奉献,定价59元,网店打折销售其实没多少钱. 互联网公司里面几乎很少有公司不用 ...

  4. 阿里移动|《蚂蚁金服移动端高可用技术实践》

    摘要:对于移动技术而言,2017年是继往开来之年.一方面是移动技术领域进入深水区,另一方面移动技术边界和内涵被不断重塑.阿里巴巴希望进一步推动移动应用研发事实标准落地,从而赋能整个行业开发者.在201 ...

  5. (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨

    原文:http://www.talkwithtrend.com/Article/178339 数据库建设过程中,高可用是每一个企业数据中心数据库建设过程中至关重要的一个关注点,直接关系到业务连续性和稳 ...

  6. 云信私有化方案中如何搭建高可用的日志和监控平台?

    导读 云信公有云系列产品已经稳定运行数年,随着企业对信息安全和数据隔离愈加重视,云信产品私有化课题必然成为云信发展过程中一个的重要分支.依赖虚拟化和容器技术的日臻成熟,云信业务系统已经全面完成私有化, ...

  7. keepalived mysql双主架构图_基于MySQL双主的高可用解决方案理论及实践

    MySQL在互联网应用中已经遍地开花,但是在银行系统中,还在生根发芽的阶段.本文记录的是根据某生产系统实际需求,对数据库高可用方案从需求.各高可用技术特点对比.实施.测试等过程进行整理,完善Mysql ...

  8. 《MySQL性能优化和高可用架构实践》阅读总结

    文章目录 介绍 第1章 MySQL架构介绍 1.1 MySQL简介 1.2 MySQL主流的分支版本 1.3 MySQL存储引擎 1.4 MySQL逻辑架构 1.5 MySQL物理文件体系结构 第2章 ...

  9. android x86 支付宝,亿级APP支付宝在移动端的高可用技术实践

    原标题:亿级APP支付宝在移动端的高可用技术实践 " 对于移动技术而言,2017 年是继往开来之年.一方面是移动技术领域进入深水区,另一方面移动技术边界和内涵被不断重塑. 阿里巴巴希望进一步 ...

最新文章

  1. 关于分布式系统的数据一致性问题(一)
  2. php与jpython-Ruby on Rails VS PHP VS Python
  3. php中数组生成下拉选项,php数组生成html下拉列表的方法
  4. 网络爬虫之Url含有中文如何转码
  5. vue暂存功能_vue路由缓存的几种实现方式小结
  6. 中英文对照 —— 音乐
  7. php html 去空格 换行,实用的php清除html,php去除空格与换行,php清除空白行和换行,提取页面纯文本...
  8. 华为手机USB测试灰色
  9. Win10 删除 微软输入法
  10. 怎样把m4a转换mp3格式?
  11. html选择器的定义和使用,CSS选择器用法大全
  12. python描述对象静态特性的数据为_外国法律中,对婚生子女的否认请求均规定有时效限制,日本法律规定的时效期限是 ( )_学小易找答案...
  13. 调皮捣蛋的孩子--十大负面测试用例
  14. 移动平台端到端低成本解决方案
  15. C语言goto语句 做一个自动关机小程序 —— 给小伙伴来个“恶作剧”吧
  16. lumen报错Class redis does not exist
  17. html5 3d游戏引擎演示,HTML5、JavaScript 3D游戏引擎和框架
  18. 更新域内计算机时间,Word2013如何自动更新文档中的日期和时间?如何设置打印前自动更新域...
  19. 祖传代码如何优化性能?
  20. 系统跨域:jsonp ; httpClient ;

热门文章

  1. 在计算机桌面上添加小工具日历,实用桌面小工具时钟日历在win7中的添加方法...
  2. linux mp3长度,得到一个wma或mp3文件,如何用最简单的方法得到它的长度信息呢?...
  3. 找出不是两个数组共有的元素
  4. 2018.9.19.Matlab实验四:Matlab程序设计
  5. 变速后没有声音_问答 | 现代朗动at,启动后怠速不稳,热车后正常,是什么问题?...
  6. bloomberg用法 固定收益_干货 | 日语高考高频考点:助词を的用法
  7. mysql模糊查询 or_mysql的模糊查询
  8. android安全性发展,Android未来发展 安全是重点
  9. Java 获取链表的元素
  10. VScode 透明背景设置