Voting Disk和OCR的概念

2010-06-25 14:23:52| 分类: Oracle | 标签: |字号 订阅

 
 
1 OCR

* Oracle Cluster RegistryOCR)文件:也是CRS关键的组成部分。用于维护在Cluster中高可用性组件的信息。例如,Cluster节点列表,Cluster数据库Instance到节点的映射和CRS应用资源的列表(如Services、虚拟内部链接协议地址等)。此文件是通过SRVCTL类似的管理工具自动维护的。其大小约100MB

* voting file:其本质上是用于Cluster synchronization Services守护进程进行节点信息的监控。大小约为20MB

OCR的结构

voting disk ocr_第1张图片

 

Cluster的配置信息是在OCR中维护的。OCR依赖分布式的共享缓存结构用于优化关于Cluster知识库的查询。在Cluster中的每个节点都通过OCR进程访问OCR缓存在其内存中维护着一个副本。事实上在Cluster中,只有一个OCR进程对共享存储中的OCR进行读写操作。此进程负责刷新(refresh)其自己拥有的本地缓存以及Cluster中其他节点的OCR cache。对于涉及到Cluster知识库的访问,OCR客户端直接访问本地OCR进程。当客户端需要更新OCR时,它们将通过本地OCR进程与那个扮演读写OCR文件的进程进行交互。

OCR客户端应用有:Oracle通用安装器(OUI)、SRVCTL、企业管理器(EM)、DBCADBUANetCA和虚拟网络协议助理(VIPCA)。此外,OCR维护管理着CRS内部中定义的各种应用程序的资源的依赖和状态信息,特别是DatabaseInstanceServices和节点的应用程序。配置文件的名字是/etc/oracle/ocr.loc,并且配置文件变量是ocrconfig_lococrmirrorconfig_locCluster 知识库的位置是不受限于裸设备的。可以将OCR放置在由Cluster file system管理的共享存储设备上。

noteOCR也可用于在ASM的单Instance中作为配置文件,每个节点有一个OCR

2Voting disk

Voting disk通过健康检查和在网络失败的情况下在多个进程间确定集群的所有者来管理群集的成员,RAC的投票权使用磁盘,以确定哪些进程是一个群集成员。表决磁盘必须驻留在共享磁盘上。对于高可用性,Oracle建议你有多个表决磁盘。Oracle的集群使多个磁盘上,但必须是基数的磁盘,如一、三、五等奇数。如果你定义一个单一的表决磁盘,然后你应该使用外部镜像以提供冗余。例如,在出现节点分裂的情况,即一个两节点的RAC,现在的私有互联网络被打破,我们可以说这是由网卡失败导致的,在这种情况下,两机的其它部分仍然需要工作正常。那么如何才能决定哪些应该继续留在集群?我们知道,只有一个应该留在群集中,否则将有冲突,,因为,他们没有任何更多的协调方法。这里就需要用到Vote diskVote disk是共享的磁盘存储,所以节点都可以访问它们,第一个锁定投票磁盘现在将占到的是大多数(本身加表决磁盘),因此,我们可以决定谁留在集群和谁将出来。这也是为什么投票磁盘的数目必须是单数。

votind disk的位置信息存储在ocr文件中,可以通过两种方式获取:

#ocrdump -stdout -keyname SYSTEM.css.diskfile

#crsctl query css votedisk

 

两种查看VOTE disk信息的办法

votingdisk中应该不存储什么特殊的信息,可以通过dd if=/dev/vote_disk bs=8192 count=1000 | od -a > /tmp/vote_disk.out 命令来查看vote_disk里面内容,我的观点是不应该被RAC频繁更新。

或可以通过:

#dd if=/dev/raw/raw7 of=/u01/vote.bak

#strings /u01/voting.bak |sort –u

*voting disk的信息一般不会被更改,紧紧是在第一次安装和节点发生变化如增加减少节点的情况下。

3voting diskOCR

voting fileOCR file是不能被存储在ASM中的,因为它们必须在任何Oracle Instance启动前就可以被访问。并且,两者必须是在冗余的、可靠的存储设备中存放,如RAID。推荐最好的做法是将这些文件放在裸磁盘上。