Oracle Clusterware工具3

ocr命令系列

  Oracle Clusterware把整个集群的配置信息放在共享存储上,这个存储就是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还应该在其他存储设备上保留一份,以防止意外的存储故障。

命令:ocrdump

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

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

  参数说明:
  -stdout:把内容打印输出到屏幕上
  Filename:内容输出到文件中
  -keyname:只打印某个键及其子健内容
  -xml:以xml格式打印输出

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

[oracle@node1 bin]$ ./ocrdump -stdout -keyname SYSTEM.css -xml|more
<OCRDUMP>

<TIMESTAMP>06/14/2013 22:59:03</TIMESTAMP>
<COMMAND>./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>

<KEY>
<NAME>SYSTEM.css.interfaces</NAME>
<VALUE_TYPE>UNDEF</VALUE_TYPE>
<VALUE><![CDATA[]]></VALUE>
<USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
<GROUP_PERMISSION>PROCR_CREATE_SUB_KEY</GROUP_PERMISSION>
<OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
<USER_NAME>oracle</USER_NAME>
<GROUP_NAME>oinstall</GROUP_NAME>
 
…… 

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

命令:ocrcheck

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

[oracle@node1 bin]$ ./ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :     104344
         Used space (kbytes)      :       3832
         Available space (kbytes) :     100512
         ID                       :  447841508
         Device/File Name         : /dev/raw/raw1
                                    Device/File integrity check succeeded

                                    Device/File not configured

         Cluster registry integrity check succeeded

[oracle@node1 bin]$ 

命令:ocrconfig

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

[oracle@node1 bin]$ ./ocrconfig –help
Name:
        ocrconfig - Configuration tool for Oracle Cluster Registry.

Synopsis:
        ocrconfig [option]
        option:
                -export <filename> [-s online]
                                                    - Export cluster register contents to a file
                -import <filename>                  - Import cluster registry contents from a file
                -upgrade [<user> [<group>]]
                                                    - Upgrade cluster registry from previous version
                -downgrade [-version <version string>]
                                                    - Downgrade cluster registry to the specified version
                -backuploc <dirname>                - Configure periodic backup location
                -showbackup                         - Show backup information
                -restore <filename>                 - Restore from physical backup
                -replace ocr|ocrmirror [<filename>] - Add/replace/remove a OCR device/file
                -overwrite                          - Overwrite OCR configuration on disk
                -repair ocr|ocrmirror <filename>    - Repair local OCR configuration
                -help                               - Print out this help information

Note:
        A log file will be created in
        $ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log. Please ensure
        you have file creation privileges in the above directory before
        running this tool.

[oracle@node1 bin]$

查看自助备份:

[oracle@node1 bin]$ ./ocrconfig -showbackup

node1     2013/05/26 23:03:03     /opt/ora10g/product/10.2.0/crs_1/cdata/crs

node2     2013/03/24 16:19:28     /opt/ora10g/product/10.2.0/crs_1/cdata/crs

node1     2013/03/24 15:05:35     /opt/ora10g/product/10.2.0/crs_1/cdata/crs

node1     2013/05/26 23:03:03     /opt/ora10g/product/10.2.0/crs_1/cdata/crs

node1     2013/05/26 23:03:03     /opt/ora10g/product/10.2.0/crs_1/cdata/crs
[oracle@node1 bin]$ 
[oracle@node1 bin]$ ls -l /opt/ora10g/product/10.2.0/crs_1/cdata/crs
total 15304
-rw-r--r-- 1 root root 4493312 May 26 23:03 backup00.ocr
-rw-r--r-- 1 root root 2150400 Mar 24 15:05 backup01.ocr
-rw-r--r-- 1 root root 4493312 May 26 23:03 day.ocr
-rw-r--r-- 1 root root 4493312 May 26 23:03 week.ocr
[oracle@node1 bin]$ 

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

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

  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
3.重启CRS 
[root@rac1 bin]# ./crsctl start crs
4.检查CRS状态 
[root@rac1 bin]# ./crsctl check crs 
CSS appears healthy 
CRS appears healthy 
EVM appears healthy
5.破坏OCR内容 
[root@rac1 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=102400 
102400+0 records in 
102400+0 records out 
6.检查OCR一致性 
[root@rac1 bin]# ./ocrcheck 
PROT-601: Failed to initialize ocrcheck
7.使用cluvfy工具检查一致性 
[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all 
Verifying OCR integrity 
Unable to retrieve nodelist from Oracle clusterware. 
Verification cannot proceed. 
8.使用Import恢复OCR内容 
[root@rac1 bin]# ./ocrconfig -import /u01/ocr.exp 
9.再次检查OCR 
[root@rac1 bin]# ./ocrcheck 
10.使用cluvfy工具检查 
[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all

移动ocr文件位置:

实例演示将OCR从/dev/raw/raw1移动到/dev/raw/raw3上。 
1.查看是否有OCR备份 
[root@rac1 bin]#./ocrconfig -showbackup 
如果没有备份,可以立即执行一次导出作为备份: 
[root@rac1 bin]#./ocrconfig -export /u01/ocrbackup -s online 
2.查看当前OCR配置 
[root@rac1 bin]# ./ocrcheck 
3.添加一个Mirror OCR 
[root@rac1 bin]#./ocrconfig -replace ocrmirror /dev/raw/raw4 
4.确认添加成功 
[root@rac1 bin]#./ocrcheck
5.改变primary OCR位置 
[root@rac1 bin]#./ocrconfig -replace ocr /dev/raw/raw3 
确认修改成功: 
[root@rac1 bin]#./ocrcheck
6.使用ocrconfig命令修改后,所有RAC节点上的/etc/oracle/ocr.loc文件内容也会自动同步了,如果没有自动同步,可以手工的改成以下内容。 
[root@rac1 bin]#more /etc/oracle/ocr.loc 
ocrconfig_loc=/dev/raw/raw1 
Ocrmirrorconfig_loc=/dev/raw/raw3 
local_only=FALSE

--整理自《大话 oracle  rac》

 

posted @ 2013-06-15 19:53  PoleStar  阅读(436)  评论(0编辑  收藏  举报