Oracle 11g Release 2 (11.2) ASM实例是如何找到SPFIL
http://www.codesky.net/article/201004/167703.html
首先看一下spfile存放在哪里:
在11.2的ASM实例上,执行show parameter spfile:
[@more@][grid@flower ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 7 15:56:12 2009 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Automatic Storage Management option
SQL> show parameter spfile
+DATA/asm/asmparameterfile/registry.253.704991445
可以看到spfile在ASM磁盘组里了。但是,和之前的版本不同,在$ORACLE_HOME/dbs目录下却没有pfile来定位spfile。
[grid@flower ~]$ ls $ORACLE_HOME/dbs
ab_+ASM.dat hc_+ASM.dat init.ora orapw+ASM peshm_+ASM_1
那么ASM实例如何得知它的spfile具体位置的呢? 答案是通过一个“本地注册表”。 Oracle的Grid Infastructure使用这样一个“本地注册表”来记录本地的所有可控资源。 “本地注册表”位置在/etc/oracle/olr.loc文件中,查看olrconfig_loc变量:
[grid@flower ~]$ cat /etc/oracle/olr.loc
olrconfig_loc=/u01/app/grid/product/11.2.0/grid/cdata/localhost/flower.olr
crs_home=/u01/app/grid/product/11.2.0/grid
查看“本地注册表”的内容:
[grid@flower ~]$ ocrdump -local -xml
[grid@flower ~]$ grep -i spfile OCRDUMPFILE
SYSTEM.OHASD.TYPES.ora!asm!type.SPFILE
SYSTEM.OHASD.TYPES.ora!asm!type.SPFILE.CONFIG
Todd