设为首页 收藏本站
查看: 934|回复: 0

[经验分享] Oracle RAC OCR 与健忘症

[复制链接]

尚未签到

发表于 2018-9-14 10:18:25 | 显示全部楼层 |阅读模式
  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
  六、OCR结构图
DSC0000.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-582187-1-1.html 上篇帖子: Oracle RAC OCR 的管理与维护 下篇帖子: Vmware 下Oracle RAC搬家
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表