Oracle11gR2 RAC的备份与恢复
真实案例讲述Oracle11gR2 RAC软件(Grid Infrastructure+RDBMS)的备份与恢复
本案例涉及三个内容标签:
■如何恢复Oracle Local Registry(OLR) ■如何恢复ora.crsd和ora.evmd进程
■如何建立完备有效的Oracle11gR2 RAC软件备份机制
环境:Oracle11gR2 RAC shade01(node1)+shade02(node2),ASM,Grid Infrastructure 11.2.0.1,RDBMS 11.2.0.1,AIX 6.1 TL-04 ??
至此,这个故障得以修复。
但是,更为重要的问题是,我到底该如何去备份11gR2 RAC的软件才是完备有效的呢,为什么我用之前的备份拿来作恢复,会碰到这么多问题呢,我该怎么完善我的备份机制呢?
通过查询各方资料和这个案例的经验教训,我总结了一下,以下三个都是需要备份的:
1. GRID_HOME 2. RDBMS_HOME
3. runinstaller inventory (位于/etc/orainst.loc)
例如/etc/init.d/init.ohasd等文件都会在上述三个位置有拷贝,所以上述三个位置的备份是必须要做的。
另外,在11gR2中,GRID_HOME有两个registry,OCR和OLR,一个负责shared,一个负责local,这两个2个registry都需要特别注意。当crs资源增加或者删除的时候,这两个registry都会发生变化,因此都需要定期备份。
对OCR来说,Oracle会通过ocrconfig命令,每隔4小时自动备份OCR到
2. # ocrconfig -manualbackup ========>观察执行后OCR备份文件的变化,如日期
OLR则会在grid安装或升级结束后自动备份一次,以后就不会自动备份了,我们只能手工去备份OLR,没有其他选择。当我们决定将OCR从ASM 迁移到其他存储方式,或者从其他存储方式迁移到ASM时,我们需要对OLR创建一个新的备份。OLR默认的存放位置是Grid_home/cdata /host_name/下。 手工备份OLR的方法: 1. root用户登录系统
2. # ocrconfig –local –manualbackup
在了解了11gR2 RAC相对于10g的这些新变化后,我们对应该怎么去备份RAC软件(Grid Infrastructure+RDBMS)也有了比较深入的认识。我重新实验了一次,可以顺利恢复。
参考:Oracle Support- How to Troubleshoot Grid Infrastructure Startup Issues [ID 1050908.1]
RAC在OCR磁盘故障且无备份时快速恢复的方法
2010-12-26 22:46
问题背景:
在刷业务库的过程出现IO访问磁盘失败!检查发现RAC进程全部退出!!!重新执行/opt/oracrs/bin/crsctl start crs失败
出错信息(tail -f /var/log/messages):
Oracle Cluster Registry initialization failed with invalid format: PROC-22: The OCR backend has an invalid format
怀疑时OCR盘物理损坏(后来发现用作OCR的阵列有磁盘坏告警,立即修复,阵列故障处理略过)
这时在一个RAC节点检查OCR是否有备份
ocrconfig -showbackup无结果输出(如果有自动备份则有结果,不幸的是,没有!)
/opt/oracle/product/11g/db/cdata下无OCR备份(如果有自动备份,则在此目录有备份的文件)
ocrcheck无结果输出(这时基本可以定位是OCR盘故障了)
GDGZ-DCS-SV01C-RAC01:/opt/oracle/product/11g/db/bin # ./crsctl check boot Oracle Cluster Registry initialization failed with invalid format: PROC-22: The OCR backend has an invalid format
和前面的启动报错是一致的!!!
问题处理(OCR故障且无备份如何快速重建恢复): 一,清除OCR
1、停止crs进程(我此次RAC已经自己退出,故不涉及;如果发现有crs进程,则需手动退出)
#/opt/oracrs/bin/crsctl stop crs 2、备份整个OCR目录
#cp /opt/oracrs /opt/oracrs_bak
3,分别在每个节点上执行$ORA_CRS_HOME/install/rootdelete.sh (必须root执行) GDGZ-DCS-SV02C-RAC01:/etc/oracle # /opt/oracrs/install/rootdelete.sh Getting local node name
NODE = GDGZ-DCS-SV02C-RAC01
PRKO-2006 : Invalid node name: GDGZ-DCS-SV02C-RAC01
Oracle Cluster Registry initialization failed with invalid format: PROC-22: The OCR backend has an invalid format Oracle CRS stack is not running. Oracle CRS stack is down now.
Removing script for Oracle Cluster Ready services Updatingocr file for downgrade
Cleaning up SCR settings in '/etc/oracle/scls_scr' Cleaning up Network socket directories
4,在某个RAC节点执行/opt/oracrs/install/rootdeinstall.sh
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory Verifying existence of ocr.loc file
Removing contents from OCR device 2560+0 records in 2560+0 records out
10485760 bytes (10 MB) copied, 1.15907 seconds, 9.0 MB/s
5,删除旧OCR信息
修改 /etc/inittab, 删除以下三行.
h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 /dev/null 2>&1