Oracle RAC OCR 与健忘症

OCR就好比Windows的一个注册表,存储了所有与集群,RAC数据库相关的配置信息。而且是公用的配置,也就是说多个节点共享相同的配置信息。因此该配置应当存储于共享磁盘。本文主要基于Oracle 10g RAC描述了集群的OCR以及OCR产生的健忘问题。

一、OCR的特点
   类似于Windows注册表,用于存储所有与集群,RAC数据库相关的配置信息
   被多个节点所共享,因此,只能存储于共享磁盘。支持单disk以及镜像方式来存放。大小通常100MB-1GB。
   在Oracle 10g中,只能存储于裸设备或者ocfs文件系统,以及nfs,gfs文件系统。Oracle 11g中可以直接存放在asm中。
   整个集群及RAC数据库配置需要在OCR中来进行维护。换句话说,就像windows注册表的导入导出,修改、更新键值等。
   通常情况下,OCR中的配置信息会随着使用工具对其进行自动更新。如SRVCTL,DBCA,OEM,NETCA等。
   而OCR的配置与维护则通常包括OCR的校验,备份,查看OCR的内容,添加移出OCR文件,重定位,修复OCR文件。
   OCR磁盘最多只能有两个,一个Primary OCR 和一个Mirror OCR,两个OCR 磁盘互为镜像,以防止OCR 磁盘的单点故障。
   注:集群,我们通常指的是clusterware,而RAC数据库,即是基于集群之上的数据库。

二、OCR包含的内容 
   OCR中通常包含下列内容
   节点成员信息
   数据库实例,节点,以及其他的映射关系
   ASM
   资源配置信息(vip,services等等)
   服务特性(Service characteristics)
   Oracle集群中相关进程的信息
   CRS控制的第三方应用程序信息

三、OCR的工作过程
        由于OCR存放于共享存储,因此在Cluster中的每个节点都通过本地OCR进程访问OCR缓存在其内存中维护着的一个副本。同时由于对OCR
    的所有操作必须确保OCR内容完整性,所以在ORACLE Clusterware运行过程中,并不是所有结点都能操作OCR Disk。 只有一个OCR进程对共
    享存储中的OCR进行读写操作。这个节点叫作OCR Master结点。此进程负责刷新(refresh)其自己拥有的本地缓存以及Cluster中其他节点
    的OCR cache。也就是说,OCR客户端查询都是通过本地OCR进程来查询本地的一个OCR副本,而当客户端需要更新OCR时,它们将通过本地OCR
    进程与那个扮演读写OCR文件的进程OCR Master进行交互。
    
    #下面是一个两节点的RAC,可以看出ocr master节点起初在第一个节点,后来转移到第二个节点,再后来又到第一个节点。
    #这是由于节点一关闭或节点一上的集群处于不可用状态导致ocr master节点发生了转移。
    [email protected]:/u01/oracle/crs/log/bo2dbp/cssd> cat ocssd.log | grep "master node"
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [    CSSD]CLSS-3001: local node number 1, master node number 2
   [    CSSD]CLSS-3001: local node number 1, master node number 1
   [email protected]:~> grep -i "master node" $ORA_CRS_HOME/log/bo2dbp/cssd/ocssd.log | tail -1
   [    CSSD]CLSS-3001: local node number 1, master node number 1
  
    OCR客户端应用有:Oracle通用安装器(OUI)、SRVCTL、企业管理器(EM)、DBCA、DBUA、NetCA和虚拟网络协议助理(VIPCA)。
    此外,OCR维护管理着CRS内部中定义的各种应用程序的资源的依赖和状态信息,特别是Database、Instance、Services和节点的应用程序。

OCR配置文件的名字是ocr.loc,Linux下位于/etc/oracle/ocr.loc。
    后附OCR结构图

四、OCR存储内容的表现形式
   同样地与Windows注册表来类比,OCR其存储内容的表现形式与其相同,是采用键值对的方式来展现。
   整个OCR 的信息是树形结构,有3个大分支。分别是SYSTEM,DATABASE 和CRS。
   每个分支下面又有许多小分支。这些记录的信息只能由root用户修改。
   可以使用ocrdump命令将其内容全部导出或者按分支进行导出。
  
五、健忘症
   健忘是由于某个节点更新了OCR中的内容,而集群中的另外一些节点此时处于关闭,维护或重启阶段,OCR Master进程来不及将其信息更新
   到这些异常节点缓存而导致的不一致。譬如,在A节点发出了添加ocr镜像的命令,在这个时候B节点处于重启阶段。重启后A已经更新完毕,
   而此时B并不知道已经为ocr增加了一个新的镜像磁盘,健忘由此而生。
  
   如下例,节点bo2dbp添加了新的ocr之后,配置文件发生了变化,此时节点bo2dbs的ocr.loc会被更新,如果bo2dbs处于关闭或重启阶段,则
   该文件得不到该更新,此即位健忘一例。
  
   [email protected]:~> more /etc/oracle/ocr.loc
    #Device/file  getting replaced by device /dev/raw/raw11 
    ocrconfig_loc=/dev/raw/raw1
    ocrmirrorconfig_loc=/dev/raw/raw11  #可以看到增加了ocrmirror位置
    local_only=false
  
   Author : Robinson Cheng
   Blog   : http://blog.csdn.net/robinson_0612  
六、OCR结构图

转:http://blog.csdn.net/leshami/article/details/8572625

时间: 2024-10-18 10:36:27

Oracle RAC OCR 与健忘症的相关文章

Oracle RAC OCR 的备份与恢复

Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表.集群数据库实例到节点的映射以及CRS应用程序资源信息.也即是存放在ocr 磁盘(或者ocfs文件)上.因此对于这个配置文件的重要性是不言而喻的.任意使得ocr配置发生变化的操作在操作之间或之后都建议立即备份ocr.本文主要基于Oracle 10g RAC环境描述OCR的备份与恢复.        OCR 相关参考:        Oracle RAC OCR 与健忘症        Oracle

Oracle RAC OCR 的管理与维护

OCR相当于Windows的注册表.对于Windows而言,所有的软件信息,用户,配置,安全等等统统都放到注册表里边.而集群呢,同样如此,所有和集群相关的资源,配置,节点,RAC数据库统统都放在这个仓库里.如果OCR被破坏则导致集群服务启动异常,需要修复OCR.因此OCR的管理与维护对于整个集群而言,是相当重要的.本文主要描述了Oracle 10g RAC下的OCR的管理与维护. [python] view plain copy print? 1.环境 [email protected]:~> 

Oracle Rac 11.2.0.3迁移OCR和VOTEDISK

环境:AIX7.1+Oracle Rac 11.2.0.3 迁移描述:今天在装Oracle Rac的时候,错误的将500G的数据盘用作OCRDG了,遂后续比较麻烦,只能讲ocr和votedisk迁移到新建的OCRDG上,并把DATADG删除并格式化该盘.(OCRDG为normal 冗余) 操作如下: [email protected]:/home/grid>/oraapp/grid/gridhome/bin/ocrcheck Status of Oracle Cluster Registry i

Oracle 10g RAC OCR 和 VotingDisk 的备份与恢复

Oracle RAC 中OCR 和Voting Disk 备份在我的blog: Oracle RAC 常用维护工具和命令 中已经有说明,现在再次把它单独拿出做一个说明, 因为OCR 和Voting Disk 对于RAC 系统来说太重要了. Oracle RAC 常用维护工具和命令 http://blog.csdn.net/tianlesoftware/archive/2010/03/09/5358573.aspx 一.  Voting Disk Voting Disk 这个文件主要用于记录节点成

Oracle rac集群环境中的特殊问题

备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集群环境中,关键数据通常是并发存放的,比如放在共享磁盘上.而集群内各个成员的生身份是对等的,所有节点对数据有相同的访问权利.这时就必须有某种机制能够控制节点对数据的访问. 在Oracle rac中,是利用DLM (Distribute Look Management)机制来进行多个实例间的并发控制. 2.健忘症

深入理解Oracle RAC 12c

深入理解Oracle RAC 12c(顶尖专家权威指南唯一最新版数据库著作 Oracle第一社区技术大牛翻译 Amazon五星推荐) [美]Syed Jaffar Hussain(赛义德 贾法尔 侯赛因),Tariq Farooq(塔里克 法鲁克),Riyaj Shamsudeen(瑞亚吉沙姆斯丁),Kai Yu(于凯) 著   赵燚 梁涛 程飞 李真旭 译 ISBN 978-7-121-24066-9 2014年10月出版 定价:99.00元 488页 16开 编辑推荐 <深入理解 Oracl

Oracle RAC(Real Application Clusters)

Oracle RAC 运行于集群之上,为 Oracle 数据库提供了最高级别的可用性.可伸缩性和低成本计算能力.如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行.Oracle 的主要创新是一项称为高速缓存合并的技术.高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地低降低磁盘 I/O.高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问,数据无需在节点间进行分区.Oracle 是唯一提供具备这一能力的开放系统数据库

Oracle RAC中的几个IP

oracle11g开始,设置了SCAN ip,除此之外还有public ip,virtual ip,private ip,容易让人犯晕. 下面逐一解释: public ip: 类似与单实例的oracle数据库ip,主要用于管理\访问. virtual ip(vip): oracle在rac架构中专用,这个vip用于实现故障转移,当一个节点发生故障时,其vip会"浮动"到另外一个正常的节点,也即该正常节点对应着两个vip了. SCAN: Single Client Access Name

Oracle RAC Failover 详解

Oracle  RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会影响用户的使用,连接到故障节点的用户会被自动转移到健康节点,从用户感受而言, 是感觉不到这种切换. Oracle 10g RAC 的Failover 可以分为3种: 1. Client-Side Connect time Failover 2. TAF 3. Service-Side TAF 注意事