Oracle 12C ASM和集群谁先启动?

在Oracle 11gR2和12cR1的集群环境中,OCR和voteing disk都可以存储在ASM中。你思考过么,当启动一个Oracle集群时,OCR所在的ASM还没有启动,集群软件是如何得到集群信息的呢? 看起来这是一个相互依赖的关系,集群启动需要ASM中的OCR,访问ASM中的OCR又需要集群已经启动。到底谁先启动呢?

其实,在高可用堆栈启动时,Oracle集群件是通过$GRID_HOME/gpnp/<homename>/profiles/peer/profile.xml来读取集群信息的,并不是通过OCR。

下面来看看这个配置文件的样子:

Oracle 12C ASM和集群谁先启动?

下面看一个小案例

当集群资源变更后,重新启动crs报错,提示无法访问ASM,启动ASM又提示CRS没有启动。陷入一个死循环。这个时候需要理解一个概念,集群堆栈与高可用堆栈。高可用堆栈是底层堆栈,集群堆栈依赖于高可用堆栈。简单的说,启动CRS是启动上层集群资源,启动cluster是启动高可用堆栈。

所以集群资源变更后使用crsctl start crs是没用的,应该使用crsctl stop cluster -all, 然后在crsctl start cluster -all

这种启动方法就不需要依赖ASM中的OCR了,也体现出了GPnP的作用。

相关推荐