Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。也即是存放在ocr 磁盘(或者ocfs文件)上。因此对于这个配置文件的重要性是不言而喻的。任意使得ocr配置发生变化的操作在操作之间或之后都建议立即备份ocr。本文主要基于Oracle 10g RAC环境描述OCR的备份与恢复。
OCR 相关参考:
Oracle RAC OCR 与健忘症
Oracle RAC OCR 的管理与维护
一、OCR的备份与恢复概念
与Oracle数据库备份恢复相似,OCR的备份也有物理备份或逻辑备份的概念,因此有两种备份方式,两种恢复方式。
物理备份与恢复:
缺省情况下,Oracle 每4个小时对其做一次备份,并且保留最后的3个副本,以及前一天,前一周的最后一个备份副本。
用户不能自定义备份频率以及备份文件的副本数。
对于OCR的备份备份由是由Master Node CRSD进程完成,因此备份的默认位置是$CRS_HOME/crs/cdata/目录下。
备份的文件会自动更名,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。
由于是在Master Node的节点之上进行备份,因此备份文件仅存在于Master Node节点。
对于Master Node的节点crash之后则由剩余节点接管。
备份目录可以通过ocrconfig -backuploc 命令修改。
OCR磁盘最多只能有两个,一个Primary OCR 和一个Mirror OCR。两者互为镜像以避免单点故障。
对于物理备份恢复,不能简单的使用操作系统级别的复制命令(使用ocr文件时)来完成,该操作将导致ocr不可用。
逻辑备份与恢复:
使用ocrconfig -export 方式产生的备份,统称之为逻辑备份。
对于重大的ocr配置发生变化前后,如添加删除节点,修改集群资源,创建数据库等,都建议使用逻辑备份。
对于由于错误配置而导致的ocr被损坏的情形下,我们可以使用ocrconfig -import方式进行恢复。
对于这种逻辑方式也可以还原丢失或损坏的ocr磁盘(文件)。
备份建议:
将oracle的自动备份产生的文件复制到共享或其它可用存储设备上。
每天至少导出一次ocr配置信息。
二、备份OCR
1、OCR的自动备份
#使用ocrconfig -showbackup查看ocr备份所在节点及路径
oracle@bo2dbp:~> ocrconfig -showbackup
bo2dbp 2013/02/25 06:23:15 /u01/oracle/crs/cdata/crs
bo2dbp 2013/02/25 02:23:13 /u01/oracle/crs/cdata/crs
bo2dbp 2013/02/24 22:23:13 /u01/oracle/crs/cdata/crs
bo2dbp 2013/02/24 02:23:09 /u01/oracle/crs/cdata/crs
bo2dbp 2013/02/22 18:23:04 /u01/oracle/crs/cdata/crs
oracle@bo2dbp:~> ls -hltr /u01/oracle/crs/cdata/crs
total 40M
-rw-r--r-- 1 root root 6.7M 2013-02-22 18:23 week.ocr
-rw-r--r-- 1 root root 6.7M 2013-02-24 02:23 day.ocr
-rw-r--r-- 1 root root 6.7M 2013-02-24 22:23 backup02.ocr
-rw-r--r-- 1 root root 6.7M 2013-02-25 02:23 backup01.ocr
-rw-r--r-- 1 root root 6.7M 2013-02-25 02:23 day_.ocr
-rw-r--r-- 1 root root 6.7M 2013-02-25 06:23 backup00.ocr
#改变物理备份路径
ocrconfig -backuploc
#使用物理备份恢复ocr
ocrconfig -restore
对于物理备份,仅仅只能使用restore方式来进行恢复,而不支持import方式
2、OCR的手动备份
OCR的手动备份也即是逻辑备份,使用-export方式来实现
ocrconfig -export
#备份示例
#建议在不同的节点导出ocr,导出位置尽可能存放在共享磁盘,以便任意节点均可从该磁盘恢复
oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -export /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
root'''s password:
oracle@bo2dbp:/u02/crs_bak/ocr_bak/exp/bo2dbp> ls -hltr /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
-rw-r--r-- 1 root root 144K 2013-02-25 10:10 /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
oracle@bo2dbs:~> sudo -s /u01/oracle/crs/bin/ocrconfig -export /u02/crs_bak/ocr_bak/exp/bo2dbs/ocr_bak.dmp
root'''s password: