MySQL高可用各个技术的比较

数据库 MySQL
数据库的可靠指的是数据可靠;数据库可用指的是数据库服务可用。可靠的是数据就例如工商银行,数据不能丢失;可用的是服务则指服务器不能宕机。

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

数据库的可靠指的是数据可靠;数据库可用指的是数据库服务可用。可靠的是数据就例如工商银行,数据不能丢失;可用的是服务则指服务器不能宕机。

 

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)备份到远端的机房。

 

MySQL高可用各个技术的比较

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

 

MySQL高可用各个技术的比较

DRBD:网络磁盘的RAID1

 

MySQL高可用各个技术的比较

#p#

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

MySQL高可用各个技术的比较

 

  • 投票选举机制较复杂
  • MySQL本身没有提供replication failover的解决方案,自动切换需要依赖MHA脚本
  • 可以有多台从库,从库可以做报表和备份

 

MySQL高可用各个技术的比较

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

MySQL高可用各个技术的比较

 


同样,自动切换需要MMM脚本,缺点是某个主挂掉了,他下面的slave同样挂掉。

 

MySQL高可用各个技术的比较

#p#

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

MySQL高可用各个技术的比较

 


这个架构跟方案二是一样的,只不过两个master之间不需要同步数据,因为他们用的是共享磁盘,这个方案是有钱人方案,无论哪个主挂掉都不会引起其他的slave挂掉,但是SAN存储死贵。。

像通信行业中国联通这些公司有用到,某个主挂掉了,下面的slave不会挂掉。

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

 

MySQL高可用各个技术的比较

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

MySQL高可用各个技术的比较

 


结构跟方案三一样,***不同的是没有使用SAN网络存储 ,而是使用local disk。由于是实时复制磁盘数据,性能会有影响。人们把DRBD称为“屌丝的SAN”;POOR MAN'S SAN:穷人的SAN

 

MySQL高可用各个技术的比较

#p#

方案五:NDB CLUSTER

MySQL高可用各个技术的比较

 

国内用NDB集群的公司非常少,貌似有些银行有用。NDB集群不需要依赖第三方组件,全部都使用官方组件,能保证数据的一致性,某个数据节点挂掉,其他数据节点依然可以提供服务,管理节点需要做冗余以防挂掉。

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

 

 

 

MySQL高可用各个技术的比较

MySQL高可用各个技术的比较

方案六:第三方的Tungsten软件

MySQL高可用各个技术的比较

 


使用java编写,不是MYSQL内置的,同样是MYSQL数据库复制,不过他不是用MYSQL内置的组件来做的,不但支持MYSQL数据库复制也支持异构数据库的复制,而且对异构数据库复制支持较好,例如MYSQL复制到ORACLE。

方案七:网易的INNOSQL

类似于SQLSERVER的镜像高安全模式,High Safety 模式 (也就是同步模式)没有 witness服务器。

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

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

区别:innosql的slave可以读,镜像的slave(从库)不可读。保证数据不会丢失,数据的高可靠性。

mysql5.7开始支持这种模式

 

MySQL高可用各个技术的比较

总结

每种方案都有不同的特点,配置和应用场景也各有不同,有些偏向于成本低的,有些偏向于成本高的,有些偏向于数据的可靠性,有些则偏向于数据库的可用性。反正各个方案都各有优缺点,DBA要结合自己公司的业务情况进行选择合适自己业务情况的高可用方案。

博文出处:http://www.cnblogs.com/lyhabc/p/3838764.html

责任编辑:Ophira 来源: cnblogs
相关推荐

2013-07-02 15:23:08

MySQL MHA故障转移

2022-09-29 15:24:15

MySQL数据库高可用

2022-05-17 11:06:44

数据库MySQL系统

2014-07-11 09:43:34

MySQL集群

2015-05-12 10:22:05

MySQL

2018-01-12 14:20:37

数据库MySQL高可用架构

2022-02-27 14:37:53

MySQL主备数据

2015-10-22 10:28:45

MySQL高可用方案

2019-08-27 15:56:44

MySQL 互联网数据库

2017-11-27 09:14:29

2015-09-23 09:28:24

2017-11-03 10:08:42

OracleMySQL高可用方案

2012-05-29 18:05:00

2010-04-19 14:49:56

Oracle高可用性

2018-08-24 09:26:13

Redis高可用方式

2018-08-21 10:32:43

数据库Redis高可用技术

2017-10-27 14:52:31

互联网高可用架构高可用

2019-08-30 13:00:12

MySQL高可用数据库

2020-09-01 13:13:59

云原生MySQL高可用

2021-02-18 14:25:52

MySQL数据库架构
点赞
收藏

51CTO技术栈公众号