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节点发生了转移。 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结构图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术墨客

Windows安装TensorFlow 原

如果在系统中安装使用GPU运行的TensorFlow,需要确保下面介绍的NVIDIA软件已经安装到系统中。

5810
来自专栏Jack-Cui

Caffe学习笔记(二):使用Python生成caffe所需的lmdb文件和txt列表清单文件

Python版本:Python2.7 运行平台:Ubuntu14.04 最后修改时间:2017.4.20     在上个笔记中,已经学会了如何使用Ca...

57880
来自专栏小巫技术博客

Building TensorFlow on Android(译)

17910
来自专栏人工智能

分布式TensorFlow入坑指南:从实例到代码带你玩转多机器深度学习

通过多 GPU 并行的方式可以有很好的加速效果,然而一台机器上所支持的 GPU 是有限的,因此本文介绍了分布式 TensorFlow。分布式 TensorFlo...

27370
来自专栏Deep learning进阶路

caffe随记(四) --- mnist示例超详细讲解

这个mnist手写体数字识别的例子可以说是caffe中的 Hello World。mnist最初用于支票上的手写数字识别,针对mnist识别的专门模型是Lene...

29500
来自专栏Python小屋

Python+matplotlib绘制柱状图并设置坐标轴有效刻度

问题描述:在使用matplotlib绘图时,一般会自动设置坐标轴刻度。很多时候,这个自动设置并不合适,用户更希望绘制结果的坐标轴上只显示有效刻度,也就是只显示有...

20730
来自专栏贾志刚-OpenCV学堂

tensorflow object detection API训练公开数据集Oxford-IIIT Pets Dataset

object detection API 安装参见官方的github: https://github.com/tensorflow/models/tree/ma...

37620
来自专栏社区的朋友们

对基于 TCP 的网络应用在 socket 非阻塞模式下 send 调用错误原因的深入分析

本文试图从 send 函数以及 TCP 协议两个点进行问题的分析,并复现出错误场景,最后针对导致错误的原因来给出解决方案。

59200
来自专栏机器学习算法与Python学习

支持向量机Python实现(附源码与数据)

之前的文章已经将支持向量机的原理讲解的比较清楚了,今天这篇文章主要是基于Python实现支持向量机,具体的数据集和源代码如下所示(文末附有本文使用的数据集和源代...

45650
来自专栏深度学习思考者

机器学习特征提取 | 自动特征工程featuretools

1、什么是Featuretools? 为了能使框架普适,就像pandas用于数据准备或scikit-learn用于机器学习。 链接:https://www.fe...

41550

扫码关注云+社区

领取腾讯云代金券