位置: 编程技术 - 正文

Oracle和MySQL的高可用方案对比分析(oracle与mysql的优缺点对比)

编辑:rootadmin

推荐整理分享Oracle和MySQL的高可用方案对比分析(oracle与mysql的优缺点对比),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:oracle和mysql性能对比,oracle和mysql比较,oracle 和 mysql,mysql和oracle哪个性能更好,mysql和oracle哪个性能更好,oracle和mysql性能对比,oracle 和 mysql,oracle 和 mysql,内容如对您有帮助,希望把文章链接给更多的朋友!

关于Oracle和MySQL的高可用方案,其实一直想要总结了,就会分为几个系列来简单说说。通过这样的对比,会对两种数据库架构设计上的细节差异有一个基本的认识。Oracle有一套很成熟的解决方案。用我在OOW上的ppt来看,是MAA的方案,今年是这个方案的周年了。

而MySQL因为开源的特点,社区里推出了更多的解决方案,个人的见解,InnoDB Cluster会是MySQL以后的高可用方案标配。

而目前来看,MGR固然不错,MySQL Cluster方案也有,PXC,Galera等方案,个人还是更倾向于MHA.

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

Oracle的解决方案在阿里快速发展时期支撑起了核心业务的需求。大概是这样的架构体系,看起来很庞大。里面的RAC算是一个贵族,用昂贵的商业存储,网络带宽要求极高,前端大量的小机业务还有不菲的licence费用。非常典型的IOE的经典架构。

如果要考虑异地容灾,那么资源配置要double,预算翻番。

MySQL的架构方案相对来说更加平民化,普通的pc就可以,但是数量级要高,做业务拆分,水平拆分就能够横向扩展出非常多的节点,很多大互联网公司的MySQL集群规模都是几百几百的规模,上千都不稀奇。如此之多的服务资源,发生故障的概率还是有的,保证业务服务的可持续性访问,是技术方案的关键。如果按照MHA的架构,基本上就是MHA Manager节点来负责整个集群的状态,好比一个居委会大妈,对住户的大大小小的事情都了如指掌包打听。

当然上面的说法过于笼统,我们从一些细节入手。比如先来说说网络的事情。

Oracle对于网络的要求还是很严格的,一般都是要2块物理网卡,每台服务器需要至少3个IP, Public IP,private IP,VIP,除了共享存储,至少需要2个计算节点。

private IP是节点间互信的,Public IP和VIP在一个网段,简单来说,VIP是对外的,是public IP所在网络的漂移IP,在g里面都是通过VIP来做负载均衡的,g开始有了scan-IP,原来的VIP还是保留,所以Oracle里面的网络配置要求还是很高的。抛开共享存储,搭建的核心就是网络配置了,网络通则通。

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

当然网络层面不只是这些,这方面的亮点Oracle就很专业了。我们有必要了解下TAF,在我的书中《Oracle DBA工作笔记》中,我这样写道:

TAF(Transparent Application Failover)是Oracle中对应用透明的故障转移,在RAC环境中使用尤其广泛。在RAC中Load Balance这块确实做了很大的改进,从g版本开始的多个VIP地址的Load Balance,到g版本中的SCAN,做了很大的简化。

而在Failover的实现中,还是有一定的使用限定,比如g中默认的SCAN-IP的实现其实默认没有Failover的选项,如果两个节点中的其中一个节点挂了,那么原有的连接中继续查询就会提示session已经断开,需要重新连接。客户端TAF主要会讨论Failover Method和Failover Type的一些简单内容。

Oracle和MySQL的高可用方案对比分析(oracle与mysql的优缺点对比)

(1)Failover Method

Failover Method的主要思路就是换取故障转移时间,或者换取资源来实现。

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

— preconnect这种预连接方式还是会占用较多的资源使用,在各个节点上会预先占用一部分额外的资源,在切换时会相对更加平滑,速度更快。

— basic这种方式,则在发生Failover时,再去切换对应的资源,中间会有一些卡顿,但是对于资源的消耗相对来说要小很多。

简单来说,basic方式会在故障发生时才去判断,而preconnect则是未雨绸缪;从实际的应用来说,basic这种方式更加通用,也是默认的故障转移方式。

(2)Failover Type

Failover Type实现更加丰富而且灵活,非常强大。这个时候控制粒度可以针对用户SQL的执行情况进行控制,有select和session两种;通过一个小例子说明一下。

比如,我们有个很大的查询在节点2上进行,结果节点2突然挂了,对于正在执行的查询,比如说有 条数据,结果刚好故障发生的时候查出了8 条,那么剩下的2 该怎么处理。

第一种方式就是使用select;即会完成故障切换,继续把剩下的2 条记录返回,当然中间会有一些上下文环境的切换,对于用户是透明的。

第二种方式是session;即直接断开连接,要求重新查询。

在g版本中借助于VIP的配置达到Load Balance+Failover的配置如下:

从这个角度来看Oracle的方案真是精细。再来看看MySQL的方案。

分布式的方案,让MySQL看起来像一把瑞士牛刀,对于网络层面的要求,几乎可以说MySQL没有什么要求,申请一主一从,那么就只需要4个IP即可(主,从,VIP,MHA_Manager(考虑一个manager节点)),一主两从是5个。

这一点上MySQL原生并不支持所谓的负载均衡,可以通过前端的业务来分流,比如使用中间件proxy,或者持续的拆分,达到一定的粒度后,通过架构设计的方式来满足需求。因为基于逻辑的复制,很容易扩展,一主多从都是很常见的,代价也不高,延迟不能说没有,只是很低,能够适应绝大部分的互联网业务需求。

而说到触发MHA切换的条件,从网络层面来看,如下的红点都是潜在的隐患,有的是网络的中断,有的是网络的延迟,发生故障的时候,保数据还是保性能稳定,都可以基于自己的需求来定制。从这一点上来说,丢失数据的概率是有的。绝对不是强一致性的无损复制。

整体来看两种方案,RAC是集中共享,除了存储层面的共享外,网络层面的组播其实也会提高节点间通信的成本,所以RAC对于网络的需求很大,如果存在延迟是很危险的,发生了脑裂就很尴尬了。MySQL MHA的方案是分布式的。支持大批量的环境,节点间通信的成本相对来说要低很多。但是从数据架构的角度来说,因为是复制的数据分布方式,所以对于存储尽管不是共享存储,但是对于存储的成本还是高于RAC(不是说存储的价格,是存储的数据量大小).

如何使用mysql完成excel中的数据生成 Excel是数据分析中最常用的工具,本篇文章通过mysql与excel的功能对比介绍如何使用mysql完成excel中的数据生成,数据清洗,预处理,以及最常见的数据分

MySQL中报错:Can’t find file: ‘./mysql/plugin.frm’的解决方法 发现问题最近在工作中发现了一个问题,这个问题就是MySQL的磁盘满了,将数据库目录data移动到/data3目录,/etc/my.cnf里面也修改了相应的datadir目录,权

Mac OS系统下mysql 5.7.安装教程图文详解 MacOSX下TAR.GZ方式安装MySQL5.7与MySQL5.6相比,5.7版本在安装时有两处不同:1:初始化方式改变,从scripts/mysql_install_db--user=mysql初始化方式变成了bin/mysqld--initializ

标签: oracle与mysql的优缺点对比

本文链接地址:https://www.jiuchutong.com/biancheng/312067.html 转载请保留说明!

上一篇:MySQL数据库设计之利用Python操作Schema方法详解(MYSQL数据库设计与应用第二版)

下一篇:如何使用mysql完成excel中的数据生成(mysql使用指南)

  • 月薪3万个人所得税是多少
  • 主管盾和制单盾的区别
  • 商品进销差价在贷方代表什么
  • 年终销项税额要结账吗
  • 企业买车购置税跟个人一样吗
  • 微信支付属于现金嘛
  • 长期应付款是什么科目 借方
  • 在登记账簿时,应在记账凭证上注明所记账簿的页数
  • 高薪技术企业研发人员人数
  • 合并财务报表内部固定资产交易的抵消
  • 材料核销发票未开具
  • 工程设计企业符合增值税抵减政策吗
  • 收到电子承兑汇票的账务处理
  • 企业采购一般应包括什么
  • 小规模企业残疾人免税政策
  • 营改增后附加税费入应交税费还是营业税金及附加
  • 物流公司一般纳税人和小规模纳税人
  • 电梯维护费怎么做账
  • 销售支付运费属什么科目
  • 发票连号不许报销吗
  • 小规模纳税人增值税减免
  • 合并报表利润表是当期还是累计
  • 增值税即征即退属于政府补助吗
  • 公司账上的钱可以转给法人账上吗
  • 个税所得期和所得税区别
  • 无法偿还的应付款项予以转账
  • 企业没有土地证
  • 客户的佣金
  • 深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。
  • wamp设置
  • php零基础入门教程
  • 企业确认坏账损失时的会计分录为
  • 宝塔面板安装zabbix
  • php sid
  • 百慕大玛丽号
  • 递延收益会计科目核算什么内容
  • openai.error.AuthenticationError: No API key provided.
  • login user
  • 内部结算属于什么科目类别
  • python查找列表元素
  • 固定资产清理的会计科目处理
  • 红字发票信息表填好后再怎么操作
  • 供应商质量考核评估表样板
  • 债权人豁免债务的账务处理会计分录
  • 投资性房地产在建期间需要摊销吗
  • 企业间借款利息收入
  • 权益法下公允价值变动计入其他综合收益
  • 分支机构注销后往来账如何处理?
  • 暂时性差异的产生
  • 应付账款多怎么办
  • 公司办公室买的茶叶怎么入账
  • 企业停产期间在生产违法吗
  • 以非货币形式出资应办理什么手续
  • 汽车销售公司购入汽车会计分录
  • 记帐凭证会计处理程序及其应用
  • 双硬盘无法进入bios
  • vmware 错误
  • win8系统如何安装软件
  • linux设置用户名和密码
  • 怎么关闭xp系统弹窗
  • hpl是什么文件
  • linux简明教程
  • mount挂载文件系统
  • win8怎么到win7
  • unity小技巧
  • Java反射机制和动态代理机制
  • python 编码声明
  • jquery设置自定义属性
  • node性能优化
  • node js教程
  • vue alain
  • js md5加密方法
  • java 同步方法和同步代码块区别
  • Linux 中的 lo:0
  • javascript怎么用
  • django批量上传图片
  • javascript命名规范
  • jqueryon事件
  • 亲测源码论坛
  • 苏州税务系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设