Oracle RAC无法启动的故障处理系列-恢复OLR
【问题现象】
版本:19.12 RAC
OS: RHEL 7.9
#crsctl start crs 提示
PROC-26: Error while accessing the physical storage Operating System error [No such file or directory]
【处理方法】
我在19c下恢复的,11g也适用。
1 找出OLR的文件位置
cat /etc/oracle/olr.loc找出olr的文件位置olrconfig_loc=/u01/app/19c/grid/cdata/weerp1-19.olr
crs_home=/u01/app/19c/grid
官方说明:OLR will be backed up to $GRID_HOME/cdata/$HOST/backup_$TIME_STAMP.olr
2 检查是否有备份文件
ll /u01/app/19c/grid/cdata/weerp1-19.olr
例如有下面两个文件,但是没有weerp1-19.olr
backup-2023-07-01-12-00.olr
backup-2023-07-02-12-00.olr -最新日期的
3 创建weerp1-19.olr
su - grid
touch /u01/app/19c/grid/cdata/weerp1-19.olr
4 恢复olr
- 恢复最新的那个olr文件
#ocrconfig -local -restore /u01/app/19c/grid/cdata/weerp1-19.olr
恢复后启动CRS就正常了。
【扩展知识】
OCR是用于保存CRSD所管理的资源的注册表,但是在CRSD启动之前集群还有很多初始化资源(例如ASM实例)需要启动,所以只有OCR是不够的。Oracle在11gR2版本中推出了另一种注册表OLR(Oracle Local Registry,Oracle本地注册表)。
OLR类似于Oracle集群注册表,但是OLR只存储与本地节点有关的信息。OLR不与集群中的其它节点共享。(OCR存储在共享路径,OLR存储在本地路径)
OLR存储了集群启动初期ohasd(Oracle High Availability Service)使用的重要环境,如Oracle集群件的版本、配置等。如果OLR丢失或损坏,那么将会导致ohasd进程启动失败。所以OLR的主要作用就是为ohasd守护进程提供集群的配置信息和初始化资源的定义信息。
Oracle在一个名为/etc/oracle/olr.loc(Linux或AIX)或者/var/opt/oracle/olr.loc(Solaris系统)的文本文件中存储了OLR配置文件的位置。
当集群启动时,ohasd会从该文件中读取OLR的位置。对于集群环境(GI Cluster)而言,OLR的文件名一般为$GRID_HOME/cdata/(也有可能是<hostname-其他字符.olr>,而对于单节点(GI Standalone,Oracle Restart)而言,OLR的文件名一般为$GRID_HOME/cdata/localhost/。
浙公网安备 33010602011771号