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》