上篇《Oracle集群技术 | 集群的自启动系列(一)》中我们说到系统启动后由init.ohasd和ohasd两个脚本相互配合共同来完成集群的启动,当init.ohash前期工作准备完成,ohasd启动集群时需要首先读取olr文件,根据olr文件中记录的信息启动集群的初始化资源层,并在该过程中创建集群启动及运行时所需的套接字文件。
| OLR
OLR文件中记录的信息是ohasd守护进程启动集群初始化资源时所需要的资源定义信息,当集群启动时ohasd会从/etc/oracle/olr.loc文件中获取olr文件的位置。
[root@node1 ~]# ls -ltr /etc/oracle
total 2248
drwxr-xr-x. 3 root oinstall 4096 Nov 21 01:38 scls_scr
drwxrwxr-x. 5 root oinstall 4096 Nov 21 01:38 oprocd
-rws--x---. 1 root oinstall 2279833 Nov 21 01:38 setasmgid
-rw-r--r--. 1 root root 0 Nov 21 01:38 olr.loc.orig
-rw-r--r--. 1 root oinstall 81 Nov 21 01:38 olr.loc
-rw-r--r--. 1 root root 0 Nov 21 01:38 ocr.loc.orig
-rw-r--r--. 1 root oinstall 40 Nov 21 01:38 ocr.loc
drwxrwx---. 2 root oinstall 4096 Nov 21 01:44 lastgasp
[root@node1 ~]# cat /etc/oracle/olr.loc
olrconfig_loc=/u01/app/11.2.0/grid/cdata/node1.olr
crs_home=/u01/app/11.2.0/grid
[root@node1 ~]# ls -ltr /u01/app/11.2.0/grid/cdata/node1.olr
-rw-------. 1 root oinstall 272756736 Jan 8 21:40 /u01/app/11.2.0/grid/cdata/node1.olr
[root@node1 ~]#
对于olr文件,每个节点都有自己的olr文件,默认位置在$GRID_HOME/cdata/<hostname>.olr,上面我们也提到olr配置文件的路径记录在/etc/oracle/olr.loc文件中,获取olr配置文件的位置也可以使用ocrcheck命令,ocrcheck命令同时也会验证ocr/olr的逻辑完整性:
[root@node1 ~]# ocrcheck -local
Status of Oracle Local Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2676
Available space (kbytes) : 259444
ID : 810831447
Device/File Name : /u01/app/11.2.0/grid/cdata/node1.olr
Device/File integrity check succeeded
Local registry integrity check succeeded
Logical corruption check succeeded
[root@node1 ~]# ocrcheck -local -config
Oracle Local Registry configuration is :
Device/File Name