浅谈Oracle RAC – OHAS组件
懒惰了一周没有更新博客。这两天天气不好,索性利用今天下午的时间继续写一篇关于OHAS组件的介绍。
之前我们多次提到了OHAS组件是GI的根守护进程。这个组件是在GI 11.2版本中引入的。随着这个组件的引入,集群的启动方式和资源管理方式发生了根本的改变。
我们先来看一下OHASD启动了哪些进程。
从上图中,我们可以看到OLR(Oracle Local Registry)。从英文全称可以知道,这是一个注册表信息。是为OHASD提供集群配置信息和初始化资源的定义信息。OLR 存在于本地磁盘上,我们可以通过 /etc/oracle/olr.loc 文件获得 OLR 文件的位置信息。OLR文件是个二进制文件不可读。我们可以通过以下命令来生成一个OLR的转储文件,该文件是可读的。
[root@node1 ~]# ocrdump -local
从转储文件的内容我们可以知道OLR文件配置了诸如GI home,集群版本,HAIP等信息。
在这里我想介绍一下我比较感兴趣的部分就是集群版本信息的内容。我们先来查看一下OLR关于版本信息的记录。
[SYSTEM.version.localhost.patchlevel]
UB4 (10) : 724960844
SECURITY : {
USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}
...
[SYSTEM.version.activeversion]
ORATEXT : 19.0.0.0.0
SECURITY : {
USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}
从上面的内容我们可以看到patchlevel的信息和activeversion的信息。
我们知道在解决节点间patch不一致的问题的时候经常会用到以下命令。
kfod op=patchlvl
crsctl query crs releasepatch
crsctl query crs softwarepatch
crsctl query crs activeversion
我们在我的测试环境中来分别执行以上命令。
[root@node1 ~]# kfod op=patchlvl
-------------------
Current Patch level
===================
724960844
[root@node1 ~]# crsctl query crs releasepatch
Oracle Clusterware release patch level is [724960844] and the complete list of patches [29401763 29517242 29517247 29585399 ] have been applied on the local node. The release patch string is [19.3.0.0.0].
[root@node1 ~]# crsctl query crs softwarepatch
Oracle Clusterware patch level on node node1 is [724960844].
[root@node1 ~]# crsctl query crs activeversion