关于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,预算翻番。
【编辑推荐】
- 若何设备MySQL数据库超时设置
- 7大年夜绝招帮你轻轻松松晋升MySQL机能
- 带您深刻懂得MySQL的权限治理
- MySQL 8.0备受注目标新特点大年夜放送!
- MySQL高可用筹划MHA的一些总结和思虑
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的设备如下:
推荐阅读
解释: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>>>详细阅读
地址:http://www.17bianji.com/lsqh/38446.html
1/2 1