Oracle RAC OCR 的管理与维护

zhangnana00 2013-02-26

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

OCR 相关参考:

1、环境
 oracle@bo2dbp:~> cat /etc/issue
 Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l).
 
 oracle@bo2dbp:~> crsctl query crs activeversion
 CRS active version on the cluster is [10.2.0.3.0]

2、校验OCR文件
 oracle@bo2dbp:~> ocrcheck
 Status of Oracle Cluster Registry is as follows :
          Version                  :          2
          Total space (kbytes)    :    204560
          Used space (kbytes)      :      6160
          Available space (kbytes) :    198400
          ID                      : 1512159503
          Device/File Name        : /dev/raw/raw1                <-- OCR (primary)
                                    Device/File integrity check succeeded
 
                                    Device/File not configured  <-- OCR Mirror (not configured)
 
          Cluster registry integrity check succeeded
 
 #如果clusterware处于关闭状态也可通过查询ocr.loc获得ocr文件所在的位置
 oracle@bo2dbp:~> more /etc/oracle/ocr.loc
 ocrconfig_loc=/dev/raw/raw1
 local_only=FALSE       
 
 #校验OCR产生的日志文件
 $ORA_CRS_HOME/log/<hostname>/client/ocrcheck_<pid>.log

3、dump OCR的内容
 #缺省情况下,ocrdump命令导出文件被命名为OCRDUMPFILE,其文件类型为ASCII文件,如果缺省文件已存在,则收到PROT-303文件存在提示
 
 #导出ocr到缺省文件
 oracle@bo2dbp:~> ocrdump
 oracle@bo2dbp:~> ls -hltr OCRDUMPFILE
 -rw-r--r-- 1 oracle oinstall 44K 2013-01-07 14:13 OCRDUMPFILE
 oracle@bo2dbp:~> file OCRDUMPFILE
 OCRDUMPFILE: ASCII text
 
 #导出ocr到指定文件
 oracle@bo2dbp:~> ocrdump /tmp/`hostname`_ocrdump_`date +%Y%m%d:%H%M`
 oracle@bo2dbp:~> ls /tmp/*ocr*
 /tmp/bo2dbp_ocrdump_20130107:1415
 
 #导出ocr中system.css项的内容
 oracle@bo2dbp:~> ocrdump -stdout -keyname SYSTEM.css -xml >ocrdump.xml
 oracle@bo2dbp:~> more ocrdump.xml
 <OCRDUMP>
 
 <TIMESTAMP>01/07/2013 14:15:42</TIMESTAMP>
 <COMMAND>/u01/oracle/crs/bin/ocrdump.bin -stdout -keyname SYSTEM.css -xml </COMMAND>
 
 <KEY>
 <NAME>SYSTEM.css</NAME>
 <VALUE_TYPE>UNDEF</VALUE_TYPE>
 <VALUE><![CDATA[]]></VALUE>
 <USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
 <GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION>
 <OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
 <USER_NAME>root</USER_NAME>
 <GROUP_NAME>root</GROUP_NAME>
 ............
 
 #导出ocr中关于ocr的备份情况
 oracle@bo2dbp:~> ocrdump -stdout -keyname SYSTEM.OCR -xml>ocrdump_bak.xml

4、添加OCR文件
 #注,下面的描述中crs在所有的节点处于online状态,即对于ocr的添加,移动,代替crs无需处于offline状态
 oracle@bo2dbp:~> crsctl check crs
 CSS appears healthy
 CRS appears healthy
 EVM appears healthy
 oracle@bo2dbp:~> ssh bo2dbs crsctl check crs
 CSS appears healthy
 CRS appears healthy
 EVM appears healthy
 
 ocrconfig -replace ocrmirror <destination_file>
 ocrconfig -replace ocrmirror <disk>
 
 oracle@bo2dbp:~> sudo -s rcraw status
 root'''s password:
 /dev/raw/raw1:  bound to major 8, minor 33
 /dev/raw/raw2:  bound to major 8, minor 49
 /dev/raw/raw11: bound to major 8, minor 113
 /dev/raw/raw21: bound to major 8, minor 129
 /dev/raw/raw22: bound to major 8, minor 145
                                                                      running
 
 oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -replace ocrmirror /dev/raw/raw11
 root'''s password:
 oracle@bo2dbp:~> ocrcheck
 Status of Oracle Cluster Registry is as follows :
          Version                  :          2
          Total space (kbytes)    :    204560
          Used space (kbytes)      :      6184
          Available space (kbytes) :    198376
          ID                      : 1512159503
          Device/File Name        : /dev/raw/raw1
                                    Device/File integrity check succeeded
          Device/File Name        : /dev/raw/raw11  #新的ocr镜像已经被添加
                                    Device/File integrity check succeeded
 
          Cluster registry integrity check succeeded
 
 #下面是连接到第二个节点查看
 oracle@bo2dbp:~> ssh bo2dbp ocrcheck
 Status of Oracle Cluster Registry is as follows :
          Version                  :          2
          Total space (kbytes)    :    204560
          Used space (kbytes)      :      6184
          Available space (kbytes) :    198376
          ID                      : 1512159503
          Device/File Name        : /dev/raw/raw1
                                    Device/File integrity check succeeded
          Device/File Name        : /dev/raw/raw11  #新的ocr镜像已经被添加
                                    Device/File integrity check succeeded
 
          Cluster registry integrity check succeeded
 
 #从两个节点查看ocr.loc文件记录的ocr位置是否发生变化                                                                             
 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
 
 oracle@bo2dbp:~> ssh bo2dbs cat /etc/oracle/ocr.loc
 #Device/file  getting replaced by device /dev/raw/raw11
 ocrconfig_loc=/dev/raw/raw1
 ocrmirrorconfig_loc=/dev/raw/raw11
 
 #下面来尝试多添加一个ocrmirror,我们使用裸设备为raw21的做为镜像
 oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -replace ocrmirror /dev/raw/raw21
 root'''s password:
 oracle@bo2dbp:~> ocrcheck
 Status of Oracle Cluster Registry is as follows :
          Version                  :          2
          Total space (kbytes)    :    204560
          Used space (kbytes)      :      6184
          Available space (kbytes) :    198376
          ID                      : 1512159503
          Device/File Name        : /dev/raw/raw1
                                    Device/File integrity check succeeded
          Device/File Name        : /dev/raw/raw21  #可以看到原来的raw11已经被替代了
                                    Device/File integrity check succeeded
 
          Cluster registry integrity check succeeded
 
 #从上面的描述可知,ocr磁盘只能有两个,一个作为primary,一个作为mirror

相关推荐