作家
登录

Oracle和MySQL的高可用方案对比(一)

作者: 来源: 2017-11-03 11:15:14 阅读 我要评论


关于Oracle和MySQL的高可用筹划,其实一向想要总结了,就会分为几个系列来简单说说。经由过程如许的比较,会对两种数据库架构设计上的细节差别有一个根本的熟悉。Oracle有一套很成熟的解决筹划。用我在OOW上的ppt来看,是MAA的筹划,本年是这个筹划的16周年了。

所以本文会分为几个部分来解读,先拿RAC和MHA来做一个根本的比较。

而MySQL因为开源的特点,社区里推出了更多的解决筹划,小我的看法,InnoDB Cluster会是MySQL今后的高可用筹划标配。

而今朝来看,MGR固然不错,MySQL Cluster筹划也有,PXC,Galera等筹划,小我照样更偏向于MHA.

Oracle的解决筹划在阿里快速成长时代支撑起了核心营业的需求。大年夜概是如许的架构体系,看起来很宏大年夜。琅绫擎的RAC算是一个贵族,用昂贵的贸易存储,收集带宽请求极高,前端大年夜量的小机营业还有不菲的licence费用。异常典范的IOE的经典架构。

private IP是节点间互信的,Public IP和VIP在一个网段,简单来说,VIP是对外的,是public IP地点收集的漂移IP,在10g琅绫擎都是经由过程VIP来做负载均衡的,11g开端有了scan-IP,本来的VIP照样保存,所以Oracle琅绫擎的收集设备请求照样很高的。抛开共享存储,搭建的核心就是收集设备了,收集公则通。

如不雅要推敲异地容灾,那么资本设备要double,预算翻番。

【编辑推荐】

  1. 若何设备MySQL数据库超时设置
  2. 7大年夜绝招帮你轻轻松松晋升MySQL机能
  3. 带您深刻懂得MySQL的权限治理
  4. MySQL 8.0备受注目标新特点大年夜放送!
  5. MySQL高可用筹划MHA的一些总结和思虑
【义务编辑:庞桂玉 TEL:(010)68476606】

MySQL的架构筹划相对来说加倍平平易近化,通俗的pc就可以,然则数量级要高,做营业拆分,程度拆分就可以或许横向扩大出异常多的节点,很多大年夜互联网公司的MySQL集群范围都是几百几百的范围,上千都不稀奇。如斯之多的办事资本,产生故障的概率照样有的,包管营业办事的可持续性拜访,是技巧筹划的关键。如不雅按照MHA的架构,根本上就是MHA Manager节点来负责全部集群的状况,比如一个居委会大年夜妈,对住户的大年夜大年夜小小的工作都管窥蠡测包打听。

当然膳绫擎的说法过于笼统,我们大年夜一些细节入手。比如先来说说收集的工作。

Oracle对于收集的请求照样很严格的,一般都是要2块物理网卡,每台办事器须要至少3个IP, Public IP,private IP,VIP,除了共享存储,至少须要2个计算节点。

scan-IP还可以持续扩大,最多支撑3个scan-ip,如下图所示

当然收集层面不只是这些,这方面的亮点Oracle就很专业了。我们有须要懂得下TAF,在我的书中《Oracle DBA工作标记》中,我如许写道:

TAF(Transparent Application Failover)是Oracle中对应用透明的故障转移,在RAC情况中应用尤其广泛。在RAC中Load Balance这块确切做了很大年夜的改进,大年夜10g版本开端的多个VIP地址的Load Balance,到11g版本中的SCAN,做了很大年夜的简化。

而在Failover的实现中,照样有必定的应用限制,比如11g中默认的SCAN-IP的实现其实默扰绫腔有Failover的选项,如不雅两个节点中的个一一个节点挂了,那么原有的连接中持续萌芽就会提示session已经断开,须要从新连接。客户端TAF重要会评论辩论Failover Method和Failover Type的一些简单内容。

(1)Failover Method

Failover Method的重要思路就是换取故障转移时光,或者换取资本来实现。

可以如许来懂得,假设我们存在两个节点,如不雅某个session连接到了节点2,然而节点2忽然挂了,为了更快处理Failover这种情况,Failover Method有preconnect和basic两种。

— preconnect这种预连接方法照样会占用较多的资本应用,在各个节点上会预先占用一部分额外的资本,在切换时会相对加倍腻滑,速度更快。

— basic这种方法,则在产生Failover时,再去切换对应的资本,中心会有一些卡顿,然则对于资本的消费相对来说要小很多。

而说到触发MHA切换的前提,大年夜收集层面来看,如下的红点都是潜在的隐患,有的是收集的中断,有的是收集的延迟,产生故障的时刻,保数据照样保机能稳定,都可以基于本身的需求来定制。大年夜这一点上来说,损掉数据的概率是有的。绝对不是强一致性的无损复制。

简单来说,basic方法会在故障产生时才去断定,而preconnect则是未竽暌龟绸缪;大年夜实际的应用来说,basic这种方法加倍通用,也是默认的故障转移方法。

(2)Failover Type

Failover Type实现加倍丰富并且灵活,异常强大年夜。这个时刻控制粒度可以针对用户SQL的履行情况进行控制,有select和session两种;经由过程一个小例子解释一下。

比如,我们有个很大年夜的萌芽在节点2长进行,结不雅节点2忽然挂了,对于正在履行的萌芽,比如说有10 000条数据,结不雅刚好故障产生的时刻查出了8 000条,那么剩下的2 000该怎么处理。

第一种方法就是应用select;即会完成故障切换,持续把剩下的2 000笔记录返回,当然中心会有一些高低文情况的切换,对于用户是透明的。

第二种方法是session;即直接断开连接,请求从新萌芽。

在10g版本中借助于VIP的设备达到Load Balance+Failover的设备如下:


  推荐阅读

  Linux 下删除了文件,空间为何不释放?

解释:Close older closes the file handler for which were not modified for longer then close_older. Time strings like 2h (2 hours), 5m (5 minutes) can be used. 你是否碰见过 L>>>详细阅读


本文标题:Oracle和MySQL的高可用方案对比(一)

地址:http://www.17bianji.com/lsqh/38446.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)