Oracle RAC OCR 与健忘症

简介:     OCR就好比Windows的一个注册表,存储了所有与集群,RAC数据库相关的配置信息。而且是公用的配置,也就是说多个节点共享相同的配置信息。因此该配置应当存储于共享磁盘。

    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节点发生了转移。
   
oracle@bo2dbp:/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
   
oracle@bo2dbp:~> 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处于关闭或重启阶段,则
   该文件得不到该更新,此即位健忘一例。
  
   
oracle@bo2dbp:~> 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结构图

 

七、相关参考
   Oracle RAC OCR 的管理与维护
   Oracle RAC OCR 的备份与恢复

 

八、更多参考

有关Oracle RAC请参考
     使用crs_setperm修改RAC资源的所有者及权限
     使用crs_profile管理RAC资源配置文件
     RAC 数据库的启动与关闭
     再说 Oracle RAC services
     Services in Oracle Database 10g
     Migrate datbase from single instance to Oracle RAC
     Oracle RAC 连接到指定实例
     Oracle RAC 负载均衡测试(结合服务器端与客户端)
     Oracle RAC 服务器端连接负载均衡(Load Balance)
     Oracle RAC 客户端连接负载均衡(Load Balance)
     ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
     ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
     配置 RAC 负载均衡与故障转移
     CRS-1006 , CRS-0215 故障一例 
     基于Linux (RHEL 5.5) 安装Oracle 10g RAC
     使用 runcluvfy 校验Oracle RAC安装环境

有关Oracle 网络配置相关基础以及概念性的问题请参考:
     配置非默认端口的动态服务注册
     配置sqlnet.ora限制IP访问Oracle
     Oracle 监听器日志配置与管理
     设置 Oracle 监听器密码(LISTENER)
     配置ORACLE 客户端连接到数据库

有关基于用户管理的备份和备份恢复的概念请参考
     Oracle 冷备份
     Oracle 热备份
     Oracle 备份恢复概念
     Oracle 实例恢复
     Oracle 基于用户管理恢复的处理
     SYSTEM 表空间管理及备份恢复
     SYSAUX表空间管理及恢复
     Oracle 基于备份控制文件的恢复(unsing backup controlfile)

有关RMAN的备份恢复与管理请参考
     RMAN 概述及其体系结构
     RMAN 配置、监控与管理
     RMAN 备份详解
     RMAN 还原与恢复
     RMAN catalog 的创建和使用
     基于catalog 创建RMAN存储脚本
     基于catalog 的RMAN 备份与恢复
     RMAN 备份路径困惑
     使用RMAN实现异机备份恢复(WIN平台)
     使用RMAN迁移文件系统数据库到ASM
     linux 下RMAN备份shell脚本
     使用RMAN迁移数据库到异机

有关ORACLE体系结构请参考
     Oracle 表空间与数据文件
     Oracle 密码文件
     Oracle 参数文件
     Oracle 联机重做日志文件(ONLINE LOG FILE)
     Oracle 控制文件(CONTROLFILE)
     Oracle 归档日志
     Oracle 回滚(ROLLBACK)和撤销(UNDO)
     Oracle 数据库实例启动关闭过程
     Oracle 10g SGA 的自动化管理
     Oracle 实例和Oracle数据库(Oracle体系结构)   

目录
相关文章
|
22天前
|
存储 Oracle 关系型数据库
Oracle RAC:数据库集群的舞动乐章
【4月更文挑战第19天】Oracle RAC是Oracle提供的高可用性数据库解决方案,允许多个实例共享同一数据库,确保业务连续性和数据完整性。通过集群件和全局缓存服务实现服务器间的协调和通信。RAC提供高可用性,通过故障转移应对故障,同时提升性能,多个实例并行处理请求。作为数据管理员,理解RAC的架构和管理至关重要,以发挥其在数据管理中的最大价值。
|
2月前
|
存储 运维 Oracle
Oracle系列十八:Oracle RAC
Oracle系列十八:Oracle RAC
|
3月前
|
Oracle 关系型数据库
oracle Hanganalyze no RAC
oracle Hanganalyze no RAC
15 0
|
3月前
|
Oracle 关系型数据库
oracle rac 手工安装补丁,不适用auto
oracle rac 手工安装补丁,不适用auto
28 3
|
7月前
|
Oracle 关系型数据库 Java
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
|
12月前
|
存储 Oracle 关系型数据库
|
文字识别 Oracle 关系型数据库
Oracle RAC OCR 的备份与恢复
        Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。
1058 0
|
11天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 0
|
1天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
13 6
|
1天前
|
SQL Oracle 关系型数据库
零基础入门 Oracle数据库:轻松上手
零基础入门 Oracle数据库:轻松上手
4 0

推荐镜像

更多