Oracle第十三节---Oracle RAC OCR 与健忘症

OCR   类似于Windows注册表,用于存储所有与集群,RAC数据库相关的配置信息,被多个节点所共享,因此,只能存储于共享磁盘。支持单disk以及镜像方式来存放。大小通常100MB-1GB。

   在Oracle 10g中,只能存储于裸设备或者ocfs文件系统,以及nfs,gfs文件系统。Oracle 11g中可以直接存放在asm中。

   整个集群及RAC数据库配置需要在OCR中来进行维护。换句话说,就像windows注册表的导入导出,修改、更新键值等。

OCR磁盘最多只能有两个,一个Primary OCR 和一个Mirror OCR,两个OCR 磁盘互为镜像,以防止OCR 磁盘的单点故障。

健忘症是由于某个节点更新了OCR中的内容,而集群中的另外一些节点此时处于关闭,维护或重启阶段,OCR Master进程来不及将其信息更新到这些异常节点缓存而导致的不一致。

比如,在A节点发出了添加ocr镜像的命令,在这个时候B节点处于重启阶段。重启后A已经更新完毕,而此时B并不知道已经为ocr增加了一个新的镜像磁盘,健忘由此而生。

针对健忘症,

解决办法: 最简单的办法就是整个集群只有一份配置,各节点公用这份配置,无论在哪个节点修改配置,都是修改相同的配置文件,这样就是保证修改不会丢失。Oracle采用的方法就是把这个配置文件放在共享存储上,这个文件就是OCR Disk。

扩展

在整个集群中,只有一个节点能对OCR Disk进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时哟一个OCR Process从这个内存中读取内容。OCR内容发生改变时,由Master Node的OCR Process负责同步到其他节点的OCR Process。 

因为OCR的内容如此重要,Oracle每4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。这个备份由Master Node CRSD进程完成,备份的默认位置是$CRS_HOME\crs\cdata\<cluster_name>目录下。每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障。

由于OCR很重要,因此提供了一定的工具:

3.2.1 ocrdump

该命令能以ASCII的方式打印出OCR的内容,但是这个命令不能用作OCR的备份恢复,也就是说产生的文件只能用作阅读,而不能用于恢复。 

命令格式:ocrdump [-stdout] [filename] [-keyname name] [-xml] 

参数说明: 

-stdout:把内容打印输出到屏幕上 

Filename:内容输出到文件中 

-keyname:只打印某个键及其子健内容 

-xml:以xml格式打印输出

示例:把system.css键的内容以.xml格式打印输出到屏幕 

[root@rac1 bin]#./ocrdump -stdout -keyname system.css -xml|more 

…… 

这个命令在执行过程中,会在$CRS_HOME\log\<node_name>\client目录下产生日志文件,文件名ocrdump_<pid>.log,如果命令执行出现问题,可以从这个日志查看问题原因。

3.2.2 ocrcheck

Ocrcheck命令用于检查OCR内容的一致性,命令执行过程会在$CRS_HOME\log\nodename\client目录下产生ocrcheck_pid.log日志文件。 这个命令不需要参数。 

[root@rac1 bin]#./ocrcheck

3.2.3 ocrconfig

该命令用于维护OCR磁盘,安装clusterware过程中,如果选择External Redundancy冗余方式,则只能输入一个OCR磁盘位置。但是Oracle允许配置两个OCR磁盘互为镜像,以防止OCR磁盘的单点故障。OCR磁盘和Votedisk磁盘不一样,OCR磁盘最多只能有两个,一个Primary OCR和一个Mirror OCR。 

[root@rac1 bin]# ./ocrconfig –help

–查看自助备份 

[root@rac1 bin]#./ocrconfig -showbackup 

在缺省情况下,OCR自动备份在$CRS_HOME\CRS\CDATA\cluster_name目录下,可以通过ocrconfig -backuploc <directory_name>命令修改到新的目录

3.2.4 使用导出,导入进行备份和恢复

Oracle推荐在对集群做调整时,比如增加,删除节点之前,应该对OCR做一个备份,可以使用export备份到指定文件,如果做了replace或者restore等操作,Oracle建议使用cluvfy comp ocr -n all命令来做一次全面的检查。该命令在clusterware的安装软件里。 

1) 首先关闭所有节点的CRS 

[root@rac1 bin]#./crsctl stop crs 

2) 用root用户导出OCR内容

[root@rac1 bin]# ./ocrconfig -export /u01/ocr.exp

6) 检查OCR一致性 

[root@rac1 bin]# ./ocrcheck 

PROT-601: Failed to initialize ocrcheck

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shanshan3003

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值