Oracle RAC相关以及基础知识

来源:互联网 发布:麻将胡牌算法 编辑:程序博客网 时间:2024/06/06 03:15

RAC相关以及基础知识

一 RAC相关以及基础知识
1.CRS简介 从Oracle 10G开始,oracle引进一套完整的集群管理解决方案—-Cluster-Ready Services,它包括集群连通性.消息和锁.负载管理等框架.从而使得RAC可以脱离第三方集群件,当然,CRS与第三方集群件可以共同使用.

(1).CRS进程
CRS主要由三部分组成,三部分都作为守护进程出现
<1>CRSD:资源可用性维护的主要引擎.它用来执行高可用性恢复及管理操作,诸如维护OCR及管理应用资源,它保存着集群的信息状态和OCR的配置,此进程以root权限运行.
<2>EVMD:事件管理守护进程.此进程还负责启动racgevt进程以管理FAN服务器端调用,此进程以root权限运行
<3>OCSSD:集群同步服务进程.管理集群节点的成员资格,它以fatal方式启动,因此进程发生故障将导致集群重启,以防止数据坏死.同时,CSS还维护集群内的基本锁功能,以及负责监控voting disk的脑裂故障。它以Oracle权限运行
此外,还有一个进程OPRCD,他是集群中的进程监视程序,仅当平台上的CRS不使用厂商群件时候才出现,且无论运行了多少实例,每个节点只会存在一组后台进程.

来看一下这几个守护进程:

rac1-> cat /etc/inittab
…………………………… .
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm –nodaemon
h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null
h2:35:respawn:/etc/init.d/init.cssdfatal >/dev/null 2>&1 </dev/nullh3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1</dev/null

(2).Virtual IP Address
Oracle 10G RAC下,有3个重要的IP.
① Public IP ② Private IP ③ Vitual IP

Public IP为数据库所在主机的公共网络IP,PrivateIP被用来私有高速互联,而Oracle较前版本,增加了一个虚拟IP,用来节点发生故障时候更快的故障转移,oracle利用每个节点的lisnter侦听VIP,一旦发生故障,VIP将进行实际的故障切换,从而在其他的可用的节点上保持联机,从而降低客户应用程序意识到节点故障所需要的时间。
VIP与Public IP必须在同一个网段内。
(3).OCR,Voting disk
OCR(oracle集群注册表)和Voting disk(表决磁盘)是CRS下的两个重要组件,它们必须放在共享磁盘上,以保证每个节点都能对其访问。
OCR包含了针对集群的一些配置信息,诸如:集群数据库中的节点列表.CRS应用程序.资源文件以及事件管理器的授权信息。他负责对集群内的资源追踪,从而获知资源正在哪里运行,应该可以在哪里运行。
Voting disk用来解决split-brain故障:如果节点丢失了与集群中其他节点的网络连接,这些冲突由表决磁盘中的信息来解决
2.ASM相关
ASM (Automated Storage Management) 是Oracle10G引入的一种文件类型,他提供了直接的I/O读写,是RAC体系下一套不错的对数据文件存储规划的方案.ASM可以自动管理磁盘组,并提供数据冗余和优化.后面章节会就ASM的管理以及ASM下的RAC管理,单独讲解.
3.RAC存储/网络需求

图1.3 RAC体系架构
(1).存储需求
共享存储器是RAC的重要组件之一。它要求集群内的节点可以同时读写物理磁盘。目前,支持共享存储的文件类型也比较多,像Oracle自身提供的ASM,OCFS2以及三方提供的群集文件系统,都是可以选择的类型。
表1.1.1显示了RAC 体系架构下各部分所支持的存储类型 (暂不考虑三方集群文件系统,就ASM/raw device/OCFS2和普通文件系统来说)

表1.1.1 RAC各部分所支持的存储类型

类别

支持的存储类型

存储位置

备注

Cluster 软件

OCFS2,普通文件系统

共享磁盘/本地磁盘

OCRVoting disk

OCFS2raw device

共享磁盘

数据库软件

OCFS2,普通文件系统

共享磁盘/本地磁盘

数据库文件

OCFS2raw deviceASM

共享磁盘

归档日志文件

OCFS2ASM,普通文件系统

共享磁盘/本地磁盘

备份/恢复文件

OCFS2ASM,普通文件系统

共享磁盘/本地磁盘

闪回日志文件

OCFS2ASM

共享磁盘

(2).网络需求
每个节点主机上至少需要2张物理网卡,以便分配公有IP和私有IP地址。对于私有IP连接,每个集群节点通过专用高速网络连接到所有其他节点,目的在于集群上的节点和实例交换信息状态(锁信息,全局缓存信息等)。通过高速互联,Cache Fusion得以实现。
在实际环境中,高速互联至少需要配置GB级的以太网,而且,最好不要使用交叉直连。
较好的解决方案是节点间配置专用交换机,这样避免因为集群上一个节点宕掉而影响另外节点的正常工作。

4.其他
(1).后台进程



图1.4.1 Backgroud Process in RAC 10g
由于要维护多个实例同时访问资源所必需的锁定,因此,同single instance相比,RAC下增加了额外的一些进程。专门针对RAC的进程有如下几种:
1. LMS(Global Cache Service) 全局缓存服务进程
LMS负责为缓存融合请求在实例间传递块。当一致性请求的时候,LMS首先回滚块,创建块的读一致性映像(CR),然后将该一致性版本通过高速互联传递到处理此请求的远程实例中的前台进程上,LMS进程保证了在同一时刻只允许一个实例去更新数据块。
LMS进程的数量由初始化参数GCS_SERVER_PROCESSES控制。Oracle最大支持36个LMS进程(0–9 and a–z),该初始化参数默认值为2。
2. LMD (Global Enqueue Service Daemon) 全局队列服务守护进程
LMD负责管理全局队列和全局资源访问,并更新相应队列的状态,此外还负责远程节点资源的请求与死锁的检测。LMD与LMS进程互交工作,共同维护GRD。
3. LMON (Global Enqueue Service Monitor) 全局队列服务监控器进程
LMON是全局队列服务的监控器,他负责检查集群内实例的死亡情况并发起重新配置,当实例加入或者离开集群的时候,它负责重新配置锁和资源。
4. LCK(Lock process) 锁进程
LCK管理那些不是缓存融合的请求,例如library cahe, row cache.由于LMS进程提供了主要的锁管理功能,因此每个节点实例上只有一个LCK进程。
DIAG (The Diagnostic Daemon)诊断守护进程
DIAG负责监控实例的健康状况并捕获进程失败的信息,并将失败信息写入用于失败分析,该进程自动启动且不需要人为调整,若失败则自动重新启动。
(2).缓存融合/缓存一致性
CacheFusion是RAC工作原理的一个中心环节.他的本质就是通过互联网络在集群内各节点的SGA之间进行块传递,从而避免了首先将块推送到磁盘,然后再重新读入其他实例的缓存中,从而最大限度的减少I/O。当一个块被读入RAC环境中某个实例的缓存时,该块会被赋予一个锁资源(与行级锁不同),以确保其他实例知道该块正在被使用。之后,如果另一个实例请求该块的一个拷贝,而该块已经处于前一个实例的缓存内,那么该块会通过互联网络直接被传递到另一个实例的SGA。如果内存中的块已经被改变,但改变尚未提交,那么将会传递一个CR副本。这就意味着,只要可能,数据块无需写回磁盘即可在各实例缓存之间移动,从而避免了同步多实例的缓存所花费的额外I/O,由此,需要互联网络的速度是高速的,需要快于磁盘访问的速度.
GCS负责维护全局缓冲区内的缓存一致性,LMS进程是其主要组成部分。GCS确保同一时刻某个块上,只能有来自一个实例上的进程能对其修改,同时,并获得该块的当前版本和前映像,以及块所处的状态(NULL,,Shared, Exclusive),模式(local/gobal)。
GES负责维护dictionary cache和librarycache缓存一致性(这个与LCK是不同的)。由于存在某个节点上对数据字典的修改(比如ddl和dcl对object属性的修改),GES负责同步各节点上的字典缓存,消除差异。GES确保请求访问相同对象的多个实例间不会出现死锁。
GRD包含了所有共享资源的当前状态信息,它由GES和GCS共同维护,GRD贮存在内存中,被用来管理全局资源活动。比如:当一个实例第一次读取某块到SGA的时候,该块的角色为LOCAL,GCS记录此状态到GRD,一旦有另外的实例请求该块,GCS会更新GRD,将此块的角色由LOCAL变为GLOBAL。