|
在11.2中,oracle 的确推荐把ocr和vf存放在asm diskgroup下面,这样做的主要原因是不再需要为ocr和vf创建raw device,更加容易管理。
例如,我创建了一个asm diskgroup,叫OCR, normal redundancy,用来存放ocr和vf,这意味着会有3个ocr和3个vf非别存放在diskgorup
的每一个asmd disk上面。实现了冗余,也不再需要创建raw device。
而asm和crsd的dependency,主要是11.2 GI(grid infrastructure) 的结构造成的。首先,在11.2中,resource的概念被扩大了,例如, crsd,asm instance, asm diskgroup
, cssdagent, cssdmonitor(这两个资源的作用和10.2的ocssd基本一样)都是资源,而且它们之间是有dependency的。
其次,当启动crs stack的时候, ohasd进程先把所有的init资源(可以使用crsctl stat resource -init -t 获得这些资源的列表)startup 起来,
asm instance 就是其中的一个init资源。当asm instance启动起来之后,所有的asm diskgroup被mount起来,其中也包括ocr所在的disk gorup, 在这之后
crsd 才能够访问ocr当中的信息,所以我们可以认为crsd是asm instance的一个client. 这就解释了,为什么ocr放在asm diskgroup的时候,如果crsd正常运行的
时候asm instance 是不能shutdown的。 关于他们dependency的具体信息,使用crsctl stat resource <crsd resource or asm instance resource name> -p 命令
看一下。
vf的访问时间和ocr是不一样的,具体说访问vf的时候,asm instance是不需要启动起来的。
最后,解释一下为什么即使楼主在v$asm_client和 ps 命令里找不到正在运行的db instance.
1。在oracle的文档里,关于v$asm_client 的定义如下:
In an Automatic Storage Management instance, V$ASM_CLIENT identifies databases using disk groups managed by the ASM instance.
这个视图只能找到 database instance client, crsd不是database instance, 当然找不到。
2. 所有的db都已经被shutdown掉了,自然所有的smon都不存在了。 |
|