当前位置: 首页 > 科技观察

MySQL高可用技术对比

时间:2023-03-12 01:13:05 科技观察

图片及资料来自MYSQL专家姜成耀先生(MYSQL技术内幕作者)。数据库的可靠性是指数据的可靠性;数据库的可用性是指数据库服务的可用性。靠谱的是数据,比如工商银行,数据不会丢失;可用的是服务,这意味着服务器不能宕机。灵活运用MYSQL的各种高可用技术实现如下各层高可用要求必须达到99.9%:使用MYSQL复制技术达到99.99%:使用MYSQLNDB集群和虚拟化技术达到99.999%:使用shared-nothing架构的GEO-REPLICATION和NDB集群技术GlusterGeo-replication是什么?GlusterGeo-replication(简称geo-replication)是一种异地容灾技术,主要用于将集群中的一个存储几乎即时(nearreal-time)通过公网(wan)备份到异地机房).各种高可用级别允许的宕机DRBD:网盘RAID1#p#方案一:MYSQL主从复制(单活)投票机制复杂脚本可以有多个从库,从库可以用于报告和备份。方案二:双主(单主),故障转移比单主更简单。同样,自动切换需要MMM脚本。缺点是一个高手挂了。奴隶也挂了。#p#方案三:双master带SAN存储(单活)这个架构和第二种方案一样,只是两个master之间不需要同步数据,因为他们使用的是共享磁盘,这个方案是针对有钱人解决,不管哪个master挂了,不会导致其他slave挂掉,但是SAN存储贵死了。.通信行业的中国联通等公司是有用的。一个master挂了,下面的slave不会挂。注意:故障转移后不会进行预热,数据不会预加载到内存中。切换后,存储会在一段时间内对性能产生一定的影响。方案四:采用DRBD(单活)结构的DRBD双主同方案三,***不同的是没有使用SAN网络存储,而是使用了本地磁盘。由于磁盘数据是实时复制的,性能会受到影响。人们称DRBD为“混蛋的SAN”;POORMAN'SSAN:theSANofthepoor#p#Scheme5:NDBCLUSTER国内用NDB集群的公司很少,好像有些银行有用。NDBcluster不需要依赖第三方组件。所有官方组件均用于保证数据一致性。如果一个数据节点挂了,其他数据节点仍然可以提供服务。管理节点需要冗余以防止挂断。缺点是:管理和配置复杂,需要避免一些SQL语句,比如join语句。方案六:第三方的Tungsten软件是用java写的。它不是内置的MYSQL。也是MYSQL数据库复制,但不是用MYSQL内置组件做的。异构数据库复制支持较好,如MYSQL复制到ORACLE。方案七:网易的INNOSQL类似于SQLSERVER的镜像高安全模式,HighSafety模式(即同步模式)没有witnessserver。Principle中数据库的事务需要立即得到镜像的确认才能完成。在这种情况下,Mirror和Principle的数据是同步的。但是因为所有的交易都需要镜像确认,所以性能可能会受到影响。区别:Innosql的slave可以读取,而镜像slave(从库)不能。保证数据不丢失,数据高可靠。mysql5.7开始支持这种模式。总结每个方案都有不同的特点,配置和应用场景也不同,有的偏向低成本,有的偏向高成本,有的偏向数据可靠性,有的偏向数据库的可用性。无论如何,每种解决方案都有其优点和缺点。DBA应该根据自己公司的业务情况,选择适合自己业务情况的高可用解决方案。博文来源:http://www.cnblogs.com/lyhabc/p/3838764.html