OLR
11GR2版本:
从11GR2版本开始,ohasd成为了集群启动的唯一起始点,而所有的其他守护进程和集群管理的资源都定为资源,例如:cssd守护进程以初始化资源ora.cssdd的形式存在,而ohasd守护进程负责管理集群所有的守护进程对应的资源,同时集群管理软件(GI)不再使用racg模块来管理资源,而是使用代理进程(agent)统一实现对所有资源进行管理。
既然一切都变为了资源,那么和10G版本相似,需要使用一个注册表来保存资源的属性。OCR是用于保存CRSD所管理资源的注册表,但是在CRSD启动之前集群还有很多初始化资源(例如asm实例)需要启动,但是只有OCR是不够的。Oracle在11GR2版本推出了另外一个集群资源注册表ORL(oraclelocal register)。下面是ORL的新特性。
OLR:顾名思义,ORL是保存在本地的集群资源注册表,也就是说OLR是保存在每个节点本地的,而且其中大部分信息是针对每个节点的。当集群启动的时候ohasd会从/etc/oracle/orl.loc文件(不同平台下,文件位置不同)中读取ORL的位置,ORL默认是保存在<gi_home>/cdata下,文件名为<节点名>.orl。(OLR主要作用是为ohasd守护进程提供集群的配置信息和初始化资源的定义信息)
[oracle@rac1 ~]$ cat /etc/oracle/olr.loc
olrconfig_loc=/u01/app/11.2.0/grid/cdata/rac1.olr
crs_home=/u01/app/11.2.0/grid
相关命令如下:
ocrdump -local /tmp/olr.test
ocrconfig -local -manualbackup
ocrcheck -local
Ohasd run 启动ohasd.bin reboot进程
/etc/oracle/olr.loc
Dba发现节点2 发现启动。首先确认GI启动到哪一个步骤:
crsctl stat res –t –init
[grid@test1 ohasd]$ crsctl stat res -t -init
CRS-4639: Could not contact Oracle High Availa
从程序层面可以看出ohasd未正常启动,有可能是/etc/inittab中init.ohasd脚本没有被调用或者是ohasd.bin进程没有启动成功。
ps –ef|grep ohas
如果进程都存在则:ohasd未被成功启动查看ohasd日志:确定olr是否存在.
,由于olr会在GI安装时进行备份。
恢复olr
[root@rac1 bin]# touch /u01/app/11.2.0/grid/cdata/rac1.olr
[root@rac1 bin]# chown root:oinstall /u01/app/11.2.0/grid/cdata/rac1.olr
[root@rac1 bin]# ./ocrconfig -local -restore /olr/backup_20160112_090125.olr
[root@rac1 bin]# strings /u01/app/11.2.0/grid/cdata/rac1.olr
########重启has
crsctl stop has
crsctl start has
备份位置在
$ORACLE_HOME/cdata/$HOSTNAME/