Oracle RAC是啥?

Oracle RAC,全称是Oracle Real Application Cluster,翻译过来为Oracle真正的应用集群,它是Oracle提供的一个并行集群系统,由 Oracle Clusterware(集群就绪软件)Real Application Cluster(RAC) 两大部分组成。

Oracle RAC的实质是 位于不同操作系统的Oracle实例节点同时访问同一个Oracle数据库 ,每个节点间通过私有网络进行通信,互相监控节点的运行状态,Oracle数据库所有的数据文件、联机日志文件、控制文件等均放在集群的共享存储设备(可以是RAW、ASM、OCFS2等)上,所有集群节点可以同时读写共享存储。

Oracle RAC的基本拓扑结构如下所示:

在这里插入图片描述

由上图可知,

  • 一个Oracle RAC数据库由多个服务器节点组成,每个节点上都有自己独立的OS、ClusterWare、Oracle RAC数据库程序等,每个节点都有自己的网络监听器。
  • ClusterWare是一个集群软件,主要用于集群系统管理
  • Oracle RAC数据库程序用于提供Oracle实例进程,以供客户端访问集群系统。
  • 监听服务主要用于监控自己的网络端口信息。
  • 所有的服务和程序通过操作系统都去访问同一个共享存储,最终完成数据的读写。
  • 共享存储实现方式有多种,如自动存储管理(ASM)、Oracle集群文件系统(OCFS)、裸设备(Raw)、网络区域存储(NAS)等来保证整个集群系统数据的一致性。

Oracle 10g起,Oracle提供自己的集群软件Oracle ClusterWare,它通过CRS(Cluster Ready Services)来实现,这个软件是安装Oracle RAC的前提,也是RAC环境稳定运行的基础。在10g之前的版本,安装RAC必须借助于第三方的集群软件。

从Oracle运行机制来说,集群中每台服务器就是一个Oracle实例,多个Oracle实例对应同一个Oracle数据库,组成Oracle数据库集群。

在这里插入图片描述

1 RAC 体系结构与进程

1.1 RAC简介

RAC是一个具有共享缓存体系结构的集群数据库,它克服了传统的不共享和共享磁盘方法的限制,为所有业务应用程序提供了一种可伸缩性和可用性的数据库解决方案,一般与Oracle Clusterware或第三方集群软件共同组成Oracle集群系统。

RAC是一个全共享式的体系架构,所有数据文件、控制文件、联机日志文件、参数文件等都必须存放在共享磁盘中,因为只有这样,集群所有节点才能访问到,RAC支持多种存储方式,包括:

  1. 裸设备(Raw devices) - 不经过文件系统,数据直接写入磁盘,好处是磁盘I/O性能很高,适合写操作频繁的业务系统。缺点是数据维护和备份不方便,备份只能通过dd命令或基于块级别的备份设备来完成,增加了维护成本。
  2. 集群文件系统 - 为支持共享存储,Oracle开发了集群文件系统OCFS,可用于Windows、Linux和Solaris,现在已经发展为OCFS2。通过OCFS2,多个集群节点可以同时读写一个磁盘而不破坏数据,但对于大量读写的业务系统,性能不是很高。另外,Oracle RAC也支持第三方集群文件系统,如Redhat的GFS等。
  3. 网络文件系统(NFS)
  4. ASM(Automated Storage Management) - ASM是Oracle推荐的共享数据存储方式,它是Oracle 10g包含的一个特性。ASM其实就是RAW方式存储数据,但加入数据管理功能。它通过将数据直接写入磁盘,避免经过文件系统而产生的I/O消耗。因此使用ASM可以很方便的管理共享数据并提供异步I/O的性能。ASM还可以通过分配I/O负载来优化性能,免除手动调整I/O的需要。

1.2 RAC的优缺点

通过RAC数据库,可以构建一个高性能、高可靠的数据库集群系统,优势包括:

  1. 实现多个节点间的负载均衡。 RAC数据库可以根据设定的调度策略,在集群节点间实现负载均衡。RAC每个节点都是工作的,同时也处于互相监控状态,当某个节点故障时,RAC集群自动将失效节点从集群隔离,并将失效节点的请求自动转移到其它健康节点上,从而实现服务透明切换。
  2. 提供高可用服务。 Oracle Clusterware实现的功能,通过CRS实现节点状态监控,故障透明转移,保证数据库对外不间断的提供服务。
  3. 通过横向扩展提高并发连接数。 适用于大型的联机事务系统。
  4. 通过并行技术提高事务响应时间。 可用于数据分享系统。
  5. 很好的扩展性。 当集群不能满足繁忙业务系统时,可以方便的添加集群节点,且可以在线完成节点的添加,并自动加入集群系统,不存在宕机时间;在不需要某个节点时删除节点也很简单。

RAC的缺点包括:

  1. 对比单机数据库,管理维护更复杂,对维护人员要求更高。
  2. 底层规划设计不好时,整体性能较差,甚至不如单机系统。对RAC不是很好了解时,不建议马上在生产环境中使用。
  3. 由于是多个节点构成,需要购买多台服务器,同时需要企业级版本数据库,无形中增加了软硬件成本。

1.3 RAC的进程管理

RAC数据库在结构上与单实例库有一些不同之处:

  1. RAC数据库每个实例至少拥有一个额外的重做线程(redo thread)
  2. RAC数据库每个实例拥有自己的回滚表空间(undo tablespace)

显然,这种机制是每个实例独立的使用自己的重做线程和回滚表空间,各自锁定自己修改的数据。这种设计方式,把多个实例的操作相对独立的分开。

RAC数据库如何实现节点数据的一致性?每个RAC实例的SGA内有一个buffer cache(缓冲区),通过Cache Fusion(缓存融合)技术RAC在各个节点之间同步SGA中的缓存信息,从而保证节点数据的一致性,同时也提高集群的访问速度。

RAC最大的特点是共享,如何实现多个节点间的数据共享?RAC中有两个重要的进程:**Global Cache Service(全局缓存服务 GCS)**和 Global Enqueue Service(全局队列服务 GES)

全局缓存服务(GCS)和全局队列服务(GES)是最基本的RAC进程,主要用于协调对共享数据库和数据库内的共享资源的同时访问。 同时,GES和GCS通过使用全局资源目录(Global Resource Directory,GRD)记录和维护每个数据文件的状态信息,GRD保存在内存中,内容分布存储在所有实例上。

RAC中通过几个特别的进程与GRD相结合,使得RAC可以使用缓存融合技术,这几个进程为:

  • Global Cache Service Processes(LSMn)。 LSM进程主要用来管理集群内数据块的访问,并在不同实例的BUFFER CACHE中传输块镜像
  • Global Enqueue Service Monitor(LMON)。 LMON主要监视集群内的全局资源和集群间的资源交互,并管理实例和处理异常,以及集群队列的恢复操作。
  • Global Enqueue Service Daemon(LMD)。 LMD主要管理对全局队列和全局资源的访问,并更新相应队列的状态,处理来自其他实例的资源请求。
  • Lock Processes(LCK)。LCK主要用来管理实例间资源请求和跨实例调用操作,并管理除Cache Fusion以外的资源请求,比如library和row cache的请求等。
  • Diagnosability Daemon(DIAG)。 DIAG主要用来捕获实例中失败进程的诊断信息,并生成相应的trace文件。

1.4 RAC的存储规划

安装RAC数据库涉及的软件有Oracle Clusterware、RAC数据库软件,同时还有voting disk、OCR等,每部分占用磁盘空间如下:

在这里插入图片描述

下表列出Oracle可以使用的存储类型:

在这里插入图片描述
具体使用哪种存储策略,要根据安装RAC环境的不同而不同。推荐三种常用的存储方式:

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

2 Oracle Clusterware 体系结构与进程

2.1 Oracle Clusterware简介

Cluster Ready Services,简称CRS,是Oracle开发的一个集群软件。其主要完成集群成员管理、心中监控、故障切换等功能,CRS要求每个集群节点的操作系统必须相同,这样通过CRS将多个节点的操作系统绑定到了一起,客户端对集群的访问,就像访问一台服务器一样。

CRS主要有两个集群套件组成,分别为voting diskOracle Cluster Registry

  • voting disk,即为表决磁盘,集群中每个节点定期评估自身健康状况,然后把它的状态信息放入到表决磁盘上。节点之间也会互相查看其运行状态,并把信息传递给其他节点进而写入表决磁盘。当节点发生故障时,可以通过表决磁盘进行投票仲裁。因此,表决磁盘必须放在共享存储设备上, 以保证每个节点都能访问到。表决磁盘可以是一个裸磁盘分区,也可以是一个独立的文件。由于它仅记录节点运行信息,磁盘大小一般在10-20M左右。
  • Oracle Cluster Registry,简称OCR,即集群注册服务。OCR主要用于记录RAC中集群和数据库的配置信息,包括集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。

CRS使用两种心跳设备来验证节点成员的状态:

  1. 表决磁盘。集群同步服务进程每隔几秒钟都会向表决磁盘写入一条心跳信息,集群通过表决磁盘即可验证节点的状态。如果某个节点在指定的最大时间段内没有向表决磁盘写入信息,集群就认为此节点失效,进而执行故障切换。
  2. 节点间私有以太网的心跳。通过这个心跳机制可以判断节点间是否出现了网络故障。

两种心跳机制的结合,有效增加了集群的可靠性。另外,CRS建议用于内部通讯的私有以太网心跳必须与用于RAC节点间通讯的网络分开,不能在同一网络中,如果RAC节点间通讯的网络与私有以太网心跳在同一个网络内,则必须保证该网络不能被非集群系统的节点访问到。

2.2 Oracle Clusterware进程介绍

Oracle Clusterware通过Cluster Ready Services来完成集群功能,CRS包含一组相互协作的后台进程:

  1. Cluster Synchronization Services。简称CSS,用于管理与协调集群中各节点的关系,并用于节点间通信,当节点在加入或离开集群时,由CSS进行通知集群。CSS对应的后台进程为CSSD,由oracle用户运行和管理。当节点发生故障时,cssd会自动重启操作系统。
  2. Cluster Ready Services。 简称CRS,是管理集群内高可用操作的主要程序,CRS管理所有资源,包括数据库、服务、实例、vip地址、监听器、应用进程等。CRS对应的后台进程为CRSD,可以对集群资源进行启动、停止、监视和容错等操作。正常状态下,CRSD监控节点各种资源,当某个资源发生异常时,自动重启或切换该资源。
  3. Process Monitor Daemon。简称OPROCD,此进程被锁定在内存中,用于监控集群及提供I/O防护。OPROCD运行在每个节点上,定期执行健康检测,如果在超过所希望的时间隔内仍然不能和某个节点通信,则OPROCD会重置处理器及重启节点。
  4. Oracle Notification Service。简称ONS,即oracle通告服务,主要用于发布和订阅Fast Application Notification 事件。
  5. Event Management。简称EVM,是一个事件检测的后台进程,由oracle用户运行和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/134129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏开发中的“御用中介“

点击上方亿元程序员关注和★星标 引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 游戏开发中的"御用…

wsl和windows下编译C++以及函数重载和函数模板的问题记录

wslUbuntuvscodec 每次打开wsl,进入ubuntu中新建文件夹进行c编程的时候经常报错,显示配置文件有问题,但是每次按照vscode官方文件配置的话是没有问题的。百思不得其解。 今晚发现了问题所在。每次新建工作区的时候会自动生成.vscode文件夹&…

力扣每日一题 -- 2919. 使数组变美的最小增量运算数

//这题本质还是一个背包问题 //怎么去思考这个问题呢 //我最开始的思想是根据经验来看,最小增量运算数,并且使数组变美丽,那么就有点像编辑距离的问题 //但是我看了下时间复杂度,不能是n^2,那么再去仔细思…

六大排序算法:插入、选择、冒泡、快排、希尔、归并

1、插入排序 解析&#xff1a;第一个元素设定为已经排好序&#xff0c;依次选择后续的元素插入到已经排好序的组内进行排序。 图示&#xff1a; 代码&#xff1a; public static void insertionSort(int[] arr) {int n arr.length;for (int i 1; i < n; i) {int key a…

网络爬虫的实战项目:使用JavaScript和Axios爬取Reddit视频并进行数据分析

概述 网络爬虫是一种程序或脚本&#xff0c;用于自动从网页中提取数据。网络爬虫的应用场景非常广泛&#xff0c;例如搜索引擎、数据挖掘、舆情分析等。本文将介绍如何使用JavaScript和Axios这两个工具&#xff0c;实现一个网络爬虫的实战项目&#xff0c;即从Reddit这个社交媒…

洛谷P1024 [NOIP2001 提高组] 一元三次方程求解(优雅的暴力+二分,干净利落)

P1024 [NOIP2001 提高组] 一元三次方程求解 前言题目题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题目分析注意事项 代码后话额外测试用例样例输入 #2样例输出 #2 王婆卖瓜 题目来源 前言 没有前言&#xff0c;可能因为作者忘了编辑 题目 题目描述 有形如&…

Nginx默认会自动忽略请求头Headers里带下划线_的参数

起因&#xff1a;该接口设置了必须要传送app_code和app_secret才能正常访问。实际我在本地环境测试中&#xff0c;发现该接口是正常访问的&#xff0c;但是部署到正式系统之后发现&#xff0c;该接口一直提示app_code和app_secret不能为空。 后续排查&#xff1a;发现正式系统…

STM32 TIM定时器,配置,详解(1)

计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)、自动重载寄存器(TIMx_ARR)。 PSC预分频器&#xff0c;顾名思义&#xff0c;先预备一下分频&#xff0c;有时候频率过高&#xff0c;后面的定时器承受不住&#xff0c;就先用PSC先分频一下。如何分频的&#xff1f;将每接受到…

windows环境下安装Java过程(免登录Oracle官网下载java)

下载路径 oracle官网&#xff1a; java下载路径 Oracle共享账号可下载JDK&#xff1a; 指路 安装流程 执行下载后的jdk的可执行文件一路next下去&#xff0c; 可以自定义安装路径添加环境变量&#xff0c; 两个地方需要添加 在cmd中输入java -version 进行验证&#xff0c;…

计算/存储虚拟化高级特性

目录 计算虚拟化特性 HA高可用 虚拟机热迁移 虚拟机快照技术 存储虚拟化特性 链接克隆 存储热迁移 裸设备映射 计算虚拟化特性 HA高可用 通过HA&#xff08;High Available&#xff09;机制&#xff0c;可以提升虚拟机的可用度&#xff0c;允许虚拟机所在的服务器节点…

IP代理如何选择?4大误区你别踩!

近年来&#xff0c;我国互联网商业保持持续发展的状态大环境的优化&#xff0c;大大小小的企业都想乘胜追击&#xff0c;大展宏图&#xff0c;积极推动各项数据业务的进程。 而对于跨境业务来说&#xff0c;代理IP是不可或缺的重要工具之一&#xff0c;市面上代理IP类型众多&a…

获取狮子座明年恋爱运势预测API接口

获取狮子座明年恋爱运势预测API接口的功能是通过API接口获取狮子座明年恋爱运势的预测结果&#xff0c;为用户提供恋爱运势指导。 首先&#xff0c;使用挖数据平台该API接口需要先申请API密钥。在获取API密钥后&#xff0c;可以使用该接口进行开发。 API接口地址为&#xff1a…

基于卷积优化算法的无人机航迹规划-附代码

基于卷积优化算法的无人机航迹规划 文章目录 基于卷积优化算法的无人机航迹规划1.卷积优化搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用卷积优化算法来优化无人机航迹规划。 …

【空调】空调主控板实习记录

空调主控板实习笔记记录1 空调型号 空调kfr35gw什么意思 { 这个表示空调是3500W的&#xff0c;是1.5匹空调。 除了以上所说&#xff0c;空调主要机型的型号标识及其含义&#xff1a; KFR-25GW&#xff0c;简称25机型。KFR-35GW&#xff0c;简称35机型。KFR-50LW&#xff0c…

跨境电商,用指纹浏览器还是VPS?有何区别?

目前做跨境电商的小伙伴基本都是选择vps或者指纹浏览器来防关联。不过随着指纹浏览器的普及&#xff0c;越来越多人选择使用指纹浏览器&#xff0c;还没了解过指纹浏览器的小伙伴可能还在犹豫&#xff0c;vps和指纹浏览器到底哪个更好呢&#xff1f; Vps就是一个虚拟服务器&…

sql学习笔记(三)

目录 1.四舍五入 2.向上取整 3.向下取整 4.Hive 分区 5.case when条件语句 6.日期函数 7.字符串函数 8.窗口函数 1️⃣排序函数 1.四舍五入 round select round(3.14) —>3 2.向上取整 ceiling select ceiling(12.15) —>13 3.向下取整 floor select flo…

计算机服务器中了locked勒索病毒怎么办,勒索病毒解密,数据恢复

随着网络技术的不断成熟&#xff0c;网络中存在的病毒威胁也不断增多&#xff0c;近期&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的计算机服务器数据库遭到了勒索病毒攻击&#xff0c;并且勒索病毒的攻击与加密形式也发生了许多变化。其中攻击次数较…

jenkins部署job

apt install fontconfig openjdk-11-jre wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.429/jenkins.wardeb包安装 wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/debian-stable/jenkins_2.414.3_all.debdpkg -i jenkins_2.414.3_all.deb 访问 http://…

ElasticSearch高级功能详解与原理剖析

ES数据预处理 Ingest Node Elasticsearch 5.0后&#xff0c;引入的一种新的节点类型。默认配置下&#xff0c;每个节点都是Ingest Node&#xff1a; 具有预处理数据的能力&#xff0c;可拦截lndex或Bulk API的请求对数据进行转换&#xff0c;并重新返回给Index或Bulk APl 无…

SpringSecurity6 | 委派筛选器代理和过滤器链代理

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…