Oracle经典技巧之RAC详解


本篇文章给大家带来了关于oracle的相关知识,其中主要介绍了rac的相关问题,oracle real application cluster用来在集群环境下实现多机共享数据库,以保证应用的高可用性,希望对大家有帮助。

Oracle经典技巧之RAC详解

推荐教程:《Oracle教程》

应对业务量的不断增加场景通常有两个大方向,一种是纵向扩展,也就是增加单台服务器的CPU计算能力、内存容量和磁盘承载能力等;另外一种是横向扩展,也就是通过增加服务器的数量来增加处理能力。前者存在业务中断和扩展上限等诸多的问题,特别是互联网业务的迅猛发展,单台服务器几乎无法满足业务负载要求,因此目前比较流行的方式横向扩展的方式。

什么是Oracle RAC?

Oracle Real Application Cluster (RAC,实时应用集群)用来在集群环境下实现多机共享数据库,以保证应用的高可用性;同时可以自动实现并行处理及负载均衡,并能实现数据库在故障时的容错和无断点恢复。它是oracle数据库支持网络计算环境的核心技术。

共享存储多活集群

在该架构中集群中多个节点运行的是同一个数据库实例,数据完全一致,并且用户层面无论从哪个节点访问,获取到的数据都是相同的。下图是Oracle RAC的示意图,通过3个节点构成一个集群,它们共享数据。
在这里插入图片描述
RAC 的特点可总结如下:

  • 节点互联起来,向外显示为1台服务器;
  • 集群软件把内部结构掩藏起来;
  • 磁盘是共享的;
  • 每台机器使用相同的操作系统;
  • 多个实例访问同一个数据库;
  • 每个节点有一个实例;
  • 数据库文件支持物理或逻辑访问;
  • 数据的读写通过软件控制。

在这里插入图片描述
在这里插入图片描述

Oracle RAC和单个数据库服务器的区别

如下图,主要区别还是RAC是集群式数据库,通过集群软件管理。
在这里插入图片描述
在这里插入图片描述

Oracle RAC硬件架构

为了保证整个集群的可用性,Oracle RAC在部署的时候对硬件有比较多的要求。在网络层面,Oracle RAC总共有3个网络系统,分别是外部访问网络、内部私有网络和存储网络。

外部访问网络不用多说,相信大家都理解。内部私有网络则主要用来进行Oracle集群内部使用,包括数据传输、心跳和集群管理等。这部分网络在部署的时候要求双交换机和双物理链路,保证不会因为链路故障导致集群异常。后面是存储网络,存储网络用于RAC集群访问存储资源,这部分也是链路冗余的。
在这里插入图片描述

再比如下图,为一个两节点RAC系统,可以看出,从主机到交换机,都做了冗余,无论哪台设备出了故障,业务不会受影响。共享存储是自带RAID冗余的。
在这里插入图片描述
其中,主机叫做节点(Node),它们要有相同的CPU、内存等配置,每台至少两个网卡,访问内外网,还有HBA卡连接共享存储,但更多是通过FC交换机连到FC存储阵列。共享存储是RAC架构中的核心,绝大部分文件都在共享存储,很多功能都是为了共享存储的安全性开发的。一般是光纤通过FC接口连接,运行SCSI协议。

Oracle RAC软件架构

如下图,是个双节点RAC系统,Oracle RDBMS是数据库软件,Oracle Clusterware是集群软件。驱动主要是网卡,HBA卡,ASMLib等。

每个节点上必须是相同的操作系统,版本必须一致,包括补丁号等。如操作系统: RHEL AS 4.8 64bit,Linux内核版本: 2.6.9-89.EL。
在这里插入图片描述
为了更加深入的理解Oracle RAC我们看一下其内部软件模块的组成。整个数据库层面没有太多差异,这里面主要多出了如下内容:虚拟IP(VIP)、ASM、Clusterware和仲裁磁盘。这些新组件配合起来完成了Oracle的多活集群功能。

虚拟IP是应用访问数据库的入口,该IP并不与任何服务器绑定,而是可以在集群的任意服务器间漂移。由于具有这个特性,当出现服务器宕机等情况时,数据库集群可以保证通过相同的接口对外提供服务。
在这里插入图片描述
ASM与Clusterware实现了集群管理功能,其中ASM实现对磁盘的管理,避免同时访问磁盘导致数据不一致的风险,而Clusterware则用于管理Oracle集群的软件进程及资源调度。

仲裁磁盘用于集群中服务器的异常判断,集群中的节点通过定时更新仲裁磁盘中特定区域的数据标示自身的健康状态。其它节点可以根据该数据判断该节点是否宕机。

逻辑结构

下图是Oracle RAC的逻辑结构,后面将依次介绍里面的各个组件。
在这里插入图片描述

DLM:并发控制

每个节点都有对等的权利访问共享存储的数据,Oracle RAC使用Distribute Lock Management( DLM)进行多个节点间并发访问的控制。分布式锁管理器负责协调节点间对共享资源的竞争,节点访问数据时,先通过DLM申请,确认不会和其他节点冲突时才能使用。

OCR:健忘症

健忘症:如果每个节点都有一份集群配置信息,那么如果修改配置后没有同步就会出错。

所以,集群只能有一个配置信息,所有节点共享。Oracle RAC使用OCR Disk文件解决健忘症。

OCR Disk只有Master节点才能修改,每个节点有一份Copy,在OCR Cache内存中。节点要修改OCR Disk时,请求Master节点,该节点上OCR进程更新本地和其他节点OCR Cache内容。OCR Disk每几个小时定期备份。

Voting Disk:脑裂

脑裂:集群中节点之间通过心跳检测来知道对方是不是好的,如果心跳出了问题,节点双方都认为对方出错了,就会要求独享数据,这样就会破坏数据的一致性。

Voting Disk用来记录节点间成员的状态,出现脑裂的时候,选择票数高的获得控制权,踢出其他节点。

IO隔离:踢出去的节点,不能再让它访问数据,所以要做IO隔离。Oracle RAC的机制就是重启故障节点。

Cache Fusion Lock

数据库文件是共享的,Cache Fusion Lock是在集群层面之外解决存储共享、并发访问控制。

四种网络

1.Public网络:用Public IP,对外提供数据查询、数据库维护、服务器维护。

一览妙笔 一览妙笔

自媒体、编剧、营销人员写作工具

一览妙笔 50 查看详情 一览妙笔

2.Virtual网络:用Virtual IP,提供应用连接,应用程序使用该IP。

TCP/IP协议中,TCP Header包含源和目标端口,IP header包含源和目标IP,应用层的数据库监听记录IP和端口,在TCP超时时知道数据库或监听出了问题。TCP/IP协议栈超时时间由OS决定,每个OS定义不一样。为了缩短捕获错误的时间,Oracle RAC使用了VIP。Virtual IP是浮动的,并不与物理网卡绑定,某个节点故障,则VIP移到好的节点上,但好节点的监听里找不到该VIP,应用程序会立刻发现问题,转而向其他VIP发送连接请求。

3.Private网络:用Private IP,用于RAC心跳检测和Cache Fusion Lock,速度要求很高。

4.存储网络:存储设备、HBA卡、FC网络组成。

Oracle Clusterware

单机的时候只要OS就可以处理上层请求,但是多机的时候,集群管理软件Oracle Clusterware会在OS内核之前截获对其他节点的请求,和其他节点的Clusterware通信完成请求。

应用层:RDBMS

应用层由若干CRS Resource组成,每个resource是若干个进程组成的完整服务。LMON(Lock Monitor)监控CRS Resource,异常时进行重启、切换等,保证Oracle RAC服务的高可用性。

Cache Fusion

Cache Fusion从字面就可以理解——缓存融合,其实就是把各个节点的缓存统一管理起来,避免了每次读都是操作磁盘,加速IO性能。因为Private网络速度很快,比读磁盘要快。从不同位置读数据块的时间:

  • 本地Cache:0.01 ms
  • 网络访问其他节点Cache:2.5 ms
  • 磁盘:14 ms。但现在有了存储端的SSD或者全闪存阵列后,延迟就在1 ms左右了。所以有了全闪存阵列后,Cache Fusion估计就没有意义了。

Cache Fusion通过GCS(Global Cache Service)管理,就是把大家的Cache看成是一个大Cache。

读Cache流程

在这里插入图片描述

写Cache流程

在这里插入图片描述

写磁盘流程

在这里插入图片描述

负载均衡

用户像RAC发起各种请求的时候,负载均衡负责把任务平摊到不同机器上。

按用户分配

是从几个机器里面随机的挑一个吗?NO!那也太Low了,RAC会根据每个机器的状态动态分配任务。数据库运行时,PMON后台进程节点的负载信息,登记到Listener,1-10分钟更新一次。每个节点的Listener知道所有节点的负载情况,把客户端请求发给最闲的节点。

按服务分配

按用户分配有缺点,就是可能让Cache Fusion更忙了。因为RAC节点数据共享,大家通过Cache Fusion同步数据,RAC的性能很大程度上受限于Cache Fusion性能。要么让Private网络更牛,比如用昂贵的InfiniBand,另一种是减少Cache Fusion的流量,其实就是减少节点实例之间的依赖。而按用户分配的机制无益于后面的方案。

所以RAC支持根据服务分配节点,比如生产和销售用不同节点,自己的数据在自己的Cache里面,就不用访问别的节点了。性能得到提升。

三类集群

  • 负载均衡集群:按一定算法把请求分配给不同成员;
  • 高性能集群(HPC,High Performance Cluster):采用向量处理器等专用软硬件组成的牛逼机器,计算性能强悍,价格超贵,比如天河计算机;
  • 高可靠性集群(HAC:High Available Cluster,Failover Cluster):可靠性非常好,硬件和软件的容错性很强,日常使用的数据库集群属于这类。

高可靠性集群

双机热备

平时有一个闲着待命,干活的挂了,就让候补的顶替。
在这里插入图片描述
双机互备

平时两台都干自己的活,但是要预留一部分资源,因为有一个挂了,另一个就得干两个人的活。
在这里插入图片描述
双机双工

举个例子:

老大老二合开一家店,平时老大主要卖包子,老二主要卖豆浆,老大有问题,老二就又卖包子,又卖豆浆,老二不行了,老大就又卖包子,又卖豆浆。

包子豆浆是数据,互相照应叫做心跳检测,顶替对方工作叫做failover(故障转移)。如果两个兄弟突然都瞎了聋了,不知道现在对方到底是否正在干活,都认为自己要顶对方的工作,这个叫做脑裂,然后需要第三者,比如他们的老爹来解决问题,这个叫做表决,或者让他们两个的媳妇过来拉走其中一个,这个叫做IO隔离。Oracle RAC就是这一类,性能最好,系统最复杂。

在这里插入图片描述

推荐教程:《Oracle学习教程》

以上就是Oracle经典技巧之RAC详解的详细内容,更多请关注其它相关文章!


# 在这里  # 插入图片  # 双机  # 自己的  # 都是  # Oracle  # 朋友圈外卖如何营销推广  # seo推广团队排名  # 永州徐州网站建设  # 西藏seo工具方法  # 荆州工厂网站推广哪家好  # 网站推广考核销售额  # 干部培训营销推广方案  # 广州广告网站推广费用  # 蓟县学校网站建设  # 平台网站推广文案怎么写  # 多个  # 出了  # 就会  # 负载均衡  # 可用性 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 免费占卜在线神算_免费占卜手机神算  解决PHP MySQL数据库更新无响应:SQL查询语法错误解析  中大网校app做题记录清除方法  《一起考教师》账号注销方法  抖音火山版如何进行提现  《漫蛙manwa2》防走失网页版链接2025  汽水音乐在线听歌网页版 汽水音乐在线听歌网页版入口  以下哪一项是古代兵书三十六计中的计谋  Excel如何快速找到并断开外部数据源链接_Excel外部数据源断开方法  C++ switch case字符串_C++如何实现字符串switch匹配  顺丰快递在线查询系统 顺丰快递官方查单入口  sublime如何自定义文件类型图标_AFileIcon插件的主题切换与个性化配置  163邮箱网页版官方登录入口 163邮箱网页版访问页面  《蓝色星原:旅谣》坐骑获取攻略  有道AI翻译入口 智能写作官方网站入口  iPhone14开启Apple TV遥控设置  LINUX怎么查看显卡信息_LINUX查看GPU状态  《金山词霸》语音翻译方法  键盘保修需要什么_键盘售后维修流程  Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法  使用 J*aScript 随机化 CSS Grid 布局中的元素顺序  传统曲艺莲花落的表演形式是  Go语言中方法与接收器:指针和值类型的调用机制详解  Pandas中基于动态偏移量实现DataFrame列值位移的策略  太平年在哪个平台播出  Yandex浏览器官方入口_Yandex搜索引擎中文版  Win10如何关闭开机锁屏界面_Windows10跳过锁屏直接登录设置  Animex动漫社社登录官网 Animex动漫社资源社入口直达  优化 React onClick 事件处理:函数引用与箭头函数的对比  Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】  全球各国上班时间表外贸邮件时间  解决Pandas DataFrame高度碎片化警告:高效创建多列的策略  在J*a中如何实现在线问答与评分系统_问答评分项目开发方法说明  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  realme 10 Pro息屏方案_realme 10 Pro省电策略  TikTok搜索结果不显示怎么办 TikTok搜索刷新与优化方法  苹果手机聊天记录删除了如何恢复  51漫画网实时入口 51漫画网页版官方免费漫画入口  Win10如何查看已安装的更新补丁 Win10卸载指定更新教程【教程】  铁拳8在线玩 铁拳8在线秒玩入口  什么是Satis,如何用它搭建一个私有的composer仓库?  汽水音乐官方网站登录入口_汽水音乐网页版进入链接  《真我》申请退款方法  优酷官网登录入口电脑版 优酷官网网址入口  为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践  BunnyStream TUS视频上传指南:解决401认证错误与参数配置  《下一站江湖2》大雪山加入方法  如何在CSS中使用伪类:valid实现表单验证提示_结合:valid改变边框颜色  铁路12306座位怎么选_12306官方选座操作方法  Yandex俄罗斯搜索引擎官网入口 Yandex网页端直接访问 

 2022-03-14

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.