度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1142|回复: 1
打印 上一主题 下一主题

[分享] Oracle 11G RAC体系结构

[复制链接]

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
跳转到指定楼层
楼主
发表于 2020-3-24 18:02:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RAC环境与单实例最主要的区别是
  • RAC的每个实例都有属于自己的SGA、后台进程。
  • 由于数据文件、控制文件共享于所有实例,所以必须放在共享存储中。
  • 联机重做日志文件:只有一个实例可以写入,但是其他实例可以再回复和存档期间读取。
  • 归档日志:属于该实例,但在介质恢复期间,其他实例需要访问所需的归档日志。
  • alter和trace日志:属于每个实例自己,其他实例不可读写。
  RAC的主要组件包括:
  • 共享磁盘系统
  • Oracle集群件
  • 集群互联
  • Oracle内核组件

Oracle集群件
  Oracle集群件能使节点能够互相通信,构成集群,从而这些节点能够像单个逻辑服务器那样整体运行。构成Oracle集群件的后台进程和服务是 crsd、ocssd、oprocd、evmd和ons。Oracle集群件由CRS服务使用OCR和votingdisk进行管理。
  OCR记录和维持集群及节点的成员资格信息,而votingdisk在通信故障时充当一个仲裁者。在集群运行期间,来自所有节点的一致性心跳信息都会发送给votingdisk。
  CRS的组件包括,在Linux系统可以通过ps -ef来查看以下进程

  • crs守护进程crsd
  • Oracle集群同步服务守护进程ocssd
  • 事件管理器守护进程evmd
  • Oracle通知服务ons
  集群就绪服务
  crsd为Oracle集群提供了高可用性的框架,并管理集群资源的状态:启动、停止、监视集群资源,并把发生故障的集群资源重定位到集群中的可用集群节点。集群资源可以是网络资源,如虚拟IP、DB实例、侦听器等。在对集群资源采取任何动作之前,crsd进程都会获取OCR中存储的集群资源配置信息。crsd还使用ocr来维护集群资源配置文件盒状态。每个集群资源都有一个资源配置文件,它存储在OCR中。
  集群同步服务
  ocssd提供节点之间的同步服务。它提供对节点成员关系的访问,并支持基本集群服务,包含集群组服务和集群锁定。ocssd的故障会导致计算机重新启动,以避免”脑裂“(如出现脑裂情况,集群的处理机制请看下面的votingdisk)。
注: ”脑裂“ -- 集群环境网络链路不能互通,但这些实例仍然正常运作,每个实例都认为其他实例已经挂掉,并尝试接管所有权。在共享存储环境下,如果出现此现象就会发生数据不一致的严重情况。
  事件管理进程
  Event Management (EVM): A background process that publishes events that Oracle Clusterware creates.一个发布Oracle集群事件产生的进程。

  The background process that publishes Oracle Clusterware events. EVM scans the designated callout directory and runs all scripts in that directory when an event occurs.
Oracle通知服务
  在crs启动时会在每个集群节点上启动该进程。只要进群资源的状态发生改变,每个集群节点上的ons进程就会互相通信,并交换HA事件信息。crs触发这些HA事件,并将他们传到ons进程,然后ons进程将这一HA事件信息发布到中间层。为了在中间层使用ONS,对于任何一台主机,只要上面有需要与FAN集成的客户端应用程序,就需要再这台主机上安装ONS。应用程序会出于各种不同原因而使用这些高可用性事件,特别是用于快速检测故障。解决和发布高可用性事件的整个过程称为“快速应用程序通知FAN”。高可用性事件也可称为FAN事件。

  Oracle 11g r2的集群件启动进程
  在R2中Oracle引入了“Oracle高可用性服务”守护进程OHASD,它启动所有其他Oracle集群件守护进程。在安装GI期间,Oracle向/etc/inittab文件配置内容:
  /etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
  Oracle集群注册表(ocr)
  OCR文件是二进制文件,OCR存储Oracle集群件中所定义的全部集群资源的元数据、配置和状态信息。OCR必须能够给集群所有节点访问,所以在安装集群时需要配置好相关的权限。OCR用于引导css,提供端口信息等集群中的节点配置信息(可以理解为windows的注册表)。多数情况下OCR只提供只读操作,其他例如在节点新增和删除期间CSS用新的信息更新OCR。
  OCR每4个小时会自动备份一次并保存一周,会循环进行覆盖。备份路径为$ORACLE_HOME/cdata/。
  表决磁盘(votingdisk)
  Votingdisk是一个共享磁盘,在操作期间可提供集群中的所有节点访问。votingdisk用作节点的集中引用,保存了节点之间的心跳信息。如果有任何节点不能ping表决磁盘,那么集群立即确认通信故障,将该节点从集群中剔除,以防止数据丢失。Votingdisk管理集群成员资格,并在节点之间发生通信故障时判断集群的所有权关系。对Votingdisk的管理应当对其进行镜像操作。
  虚拟IP(vip)
  vip的作用
  当一个节点停机时,vip会被自动故障转移到其他节点之一,在此期间,获得vip的节点将重新向外部进行地质解析,指示vip的新mac地址,连接到这个vip的client将会立即发送一个重置数据包,这样客户端会获取这个错误消息,而不需要等待TCP超时值。

  单一客户端访问名称(scan)

  Oracle RAC 11g release 2 (11.2) introduces the Single Client Access Name (SCAN). SCAN is a domain name registered to at least one and up to three IP addresses, either in DNS or GNS. When using GNS and DHCP, Oracle Clusterware configures the VIP addresses for the SCAN name that is provided during cluster configuration.
The node VIP and the three SCAN VIPs are obtained from the DHCP server when using GNS. If a new server joins the cluster, then Oracle Clusterware dynamically obtains the required VIP address from the DHCP server, updates the cluster resource, and makes the server accessible through GNS.
Example 1-1 shows the DNS entries that delegate a domain to the cluster.


Oracle内核组件
    OracleRAC环境中的Oracle内核组件是每个实例中的附加后台进程集合。缓冲区缓存和共享池在Oracle RAC换进中变为全局的,需要特殊处理才能做到无冲突、无损坏地管理资源。
    全局缓存服务GCS和全局队列服务GES
    在这里可以回想在写Oracle体系结构的文时在单实例情况下Oracle对数据缓存和写入的过程,在RAC环境下,每个实例都有属于自己的SGA,那在这种情况下应该如果对数据进行有效管理呢,在rac中,一个节点的缓冲区缓存中可能包含了经常被另一个节点请求的数据,数据共享和交换的管理工作是由全局缓存服务(GCS)完成的。
    全局资源目录GRD
    集群组中的所有资源构成一个集中的资源仓库,称为GRD,所有实例的资源加起来构成了GRD。GRD由两个服务管理,这两个服务分别为:GCS和GES,在Oracle并行服务器中这称为DLM(Distribute Lock Management)。
    Oracle RAC后台进程
    OracleRAC进程包括oracle实例进程之外,还有RAC的进程。这些进程使节点之间的缓存保持一致。维持缓存一致性是RAC的重要部分。缓存一致性技术用于在不同节点上的不同oracle实例之间保持缓冲区多个副本的一致性。GCS管理确保在访问一个缓冲区缓存中某个数据块的主副本时,会与另一个缓冲区缓存中的数据块副本进行协调。这样就确保了一个缓冲区缓存中某个数据块的最新副本包含了系统中另一个实例对该数据块所做的全部修改而无论这些修改是否已经进行事务提交。
    GRD管理所有资源的锁定或所有权,这些资源在OracleRAC中并不仅限于单一实例。GRD中GCS处理数据块,GES处理队列和其他全局资源。GCS和GES使用以下进程来管理资源,RAC特有的这些进程和GRD写作,以支持缓存融合:
  • LMS     全局缓存服务进程(LMS是缓存融合中使用的一个进程。可以从数据块所在实例的缓冲区向请求实例的缓冲区缓存中传递数据块的一致性副本,而不需要进行磁盘写入。它还可以从LMD建立的服务器队列中获取请求,以执行所请求的锁操作。LMS进程管理队GCS资源的“锁管理服务器”请求,并将他们发送到一个由LMS进程处理的服务队列和全局锁的死锁检测,并监控锁对话的超时。
  • LMON  全局队列服务监控器(LMON是一个锁监控器进程,管理GES。)
  • LMD     全局队列服务守护进程(LMD是为GCS管理GES请求的守护进程。)
  • LCK0   实例队列进程(LCK0管理实例资源请求和对共享资源的跨实例调用操作。)
  • DIAG    诊断守护进程(DIAG用于RAC环境中一个实例的所有诊断需求。)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
 楼主| 发表于 2020-3-24 18:02:41 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-16 01:11 , Processed in 0.148794 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表