位置: 编程技术 - 正文

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使用指南)

  • 注册资本印花税减半征收政策
  • 申请退还增量留抵税额的条件包括
  • 发票开具就能做账了吗
  • 公司为员工报销的医药费
  • 采购单是原始凭证吗
  • 房租押金算费用吗
  • 未达起征点销售额怎么填申报表
  • 股东借款超过一年个人所得税
  • 离线开票时间超时
  • 公司分立的账务处理凭证怎么做
  • 服务业小规模纳税人税率是多少
  • 企业发生的间接生产费用应
  • 购买银行理财产品被骗怎么办
  • 营业外支出可以抵扣进项税吗
  • 发票验旧后可领新发票吗
  • 代购商品委托书怎么写
  • 异地取款还有手续费吗
  • 培训机构的收入有哪几方面
  • 电子商业汇票背书是什么意思
  • 增值税发票是不是可以抵税
  • php支付接口开发
  • 补交以前年度的城建税会计分录
  • 修改apache的http服务端口为8080
  • 鸿蒙系统如何隐藏文件
  • 深度学习中模型计算量(FLOPs)和参数量(Params)的理解以及四种计算方法总结
  • NDSTray.exe - NDSTray是什么进程 有什么用
  • 四个常见html网页乱码问题及解决办法
  • 安装win7提示版本过低
  • 企业所得税具体纳税筹划案例
  • 董事费属于什么费用
  • 收汇金额和出口金额差额大怎么办
  • 夫妻房子归属权问题
  • js循环有哪些
  • 冰上的卷羽鹈鹕,希腊凯尔基尼湖 (© Guy Edwardes/Minden Pictures)
  • vue docx-preview实现docx文件在线预览
  • 发行通告
  • 安装tensorflow1
  • api使用方法
  • vue开发教程
  • ci框架视频教程
  • 关税计入纳税总额么
  • 一般纳税人餐饮服务可以抵扣吗
  • 纸质承兑财务章怎么盖
  • 企业所得税没有交
  • 企业的对公账户怎么办理
  • 金蝶如何新增客户
  • 没有参加会计继续教育会怎样
  • 小规模纳税人未开票收入如何申报增值税
  • 民间非营利组织会计科目
  • 外贸常用的付款方式有哪些
  • 快递公司成本分析
  • 餐饮企业原材料采购描述错误的是
  • 广告被罚
  • 工程检测单位
  • 扣缴个人所得税报告表
  • 盈利能力分析的理论意义和现实意义
  • 境外企业向境内企业提供劳务
  • 利润表持续经营净利润怎么算
  • ccs 运行
  • ubuntu for windows
  • linux谷歌浏览器安装指令
  • linux和windows交互
  • magento开发教程
  • Linux rpm包中的64位、32位、i386、i586、Noarch名词解释
  • Extjs EditorGridPanel中ComboBox列的显示问题
  • jQuery Validate 数组 全部验证问题
  • linux中shell的作用
  • python爬虫教程
  • unityplayer安卓
  • 简单介绍linux系统有哪些主要特点?
  • unity控制相机旋转
  • canvas实例
  • [置顶]电影名字《收件人不详》
  • python继承的主要目的
  • 商场销售高档化妆品需要缴纳消费税吗
  • 电子税务局怎么添加开票员
  • 深圳市国家税务局网站
  • 山东省地方税务局公告2018年第6号
  • 企业可以享受哪些政策优惠
  • 税务登记制度是对纳税人识别的完善
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设