与Oracle数据库的备份恢复相似,OCR的备份也有物理备份和逻辑备份,因此有两种备份方式和两种恢复方式。物理备份是自动进行的,逻辑备份需要手动进行。
因为OCR的内容如此重要,所以Oracle每4个小时对其做一次物理备份,并且保留最后的3个物理备份,以及前一天,前一周的最后一个物理备份。用户不能自定义物理备份频率以及备份文件的副本数。这个备份由Master Node CRSD进程完成,备份的默认位置在$GRID_HOME/cdata/<cluster_name>目录下,也可由命令ocrconfig -showbackup获取备份的位置。每次备份后,备份文件名自动更改,以反映备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其它存储设备上保留一份,以防止意外的存储故障。备份目录可以通过命令“ocrconfig -backuploc <directory_name>”修改。
下例为物理备份OCR:
代码语言:javascript复制[LHRDB2:grid]:/home/grid>ocrconfig -showbackup
LHRDB1 2016/06/30 15:13:46 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup00.ocr
LHRDB1 2016/06/30 11:13:45 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup01.ocr
LHRDB1 2016/06/30 07:13:45 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup02.ocr
LHRDB1 2016/06/29 03:13:41 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/day.ocr
LHRDB1 2016/06/20 03:13:08 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/week.ocr
PROT-25: Manual backups for the Oracle Cluster Registry are not available
[LHRDB2:grid]:/home/grid>oerr prot 25
00025, 0, "Manual backups for the Oracle Cluster Registry are not available"
// *Cause: Manual backups for the Oracle Cluster Registry were not yet created.
// *Action: Manual backups can be created using 'ocrconfig -manualbackup'
// command.
[LHRDB2:grid]:/home/grid>ocrconfig -manualbackup
PROT-20: Insufficient permission to proceed. Require privileged user
[LHRDB2:grid]:/home/grid>exit
[LHRDB2:root]:/>ocrconfig -manualbackup
LHRDB1 2016/06/30 16:21:34 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup_20160630_162134.ocr
[LHRDB2:root]:/>ocrconfig -showbackup
LHRDB1 2016/06/30 15:13:46 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup00.ocr
LHRDB1 2016/06/30 11:13:45 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup01.ocr
LHRDB1 2016/06/30 07:13:45 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup02.ocr
LHRDB1 2016/06/29 03:13:41 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/day.ocr
LHRDB1 2016/06/20 03:13:08 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/week.ocr
LHRDB1 2016/06/30 16:21:34 /oracle/app/11.2.0/grid/cdata/LHRDB-crs/backup_20160630_162134.ocr
物理恢复OCR的过程一般有如下几个步骤,详细实验过程请参考:http://blog.itpub.net/26736162/viewspace-2121470/,这里不再演示。
代码语言:javascript复制ocrconfig -manualbackup --手动进行物理备份
ocrconfig -showbackup --查看物理备份
cluvfy comp ocr -n all -verbose --检查OCR组件
crsctl stop crs -f --2个节点都停止CRS
crsctl start crs -excl -nocrs --排它模式启动CRS
crsctl stop resource ora.crsd -init
ocrconfig -restore /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/backup_20160701_152358.ocr
crsctl stop has -f
crsctl start crs
其实OCR也可以通过手动的方式导出、导入,方法如下:
代码语言:javascript复制ocrconfig -export /tmp/ocr_bak
ocrconfig -import /tmp/ocr_bak
使用ocrconfig -export方式产生的备份,统称之为逻辑备份。对于OCR的配置发生重大的变化前后,如添加删除节点,修改集群资源,创建数据库等,都建议使用逻辑备份。对于由于错误配置而导致的OCR被损坏的情形,可以使用ocrconfig -import方式进行恢复。逻辑备份的恢复方式和物理备份的恢复方式一致,这里不再赘述。
对OCR的恢复还可以采用dd、kfed及md_restore命令进行,这里不再详述,感兴趣的读者可以参考我的博客:http://blog.itpub.net/26736162/viewspace-2121470/。
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗