While Checking the status of database resources, ASM was shown as UNKNOWN on one node of a two node RAC.
$ crs_stat -t
<span style="font-family: arial,helvetica,sans-serif;">Name Type Target State Host ------------------------------------------------------------ ora.orcl.db application ONLINE ONLINE rac1 ora....11.inst application ONLINE ONLINE rac1 ora....SM1.asm application ONLINE ONLINE rac1 ora....DC.lsnr application ONLINE ONLINE rac1 ora....idc.gsd application ONLINE ONLINE rac1 ora....idc.ons application ONLINE ONLINE rac1 ora....idc.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE UNKNOWN rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora....dc2.gsd application ONLINE ONLINE rac2 ora....dc2.ons application ONLINE ONLINE rac2 ora....dc2.vip application ONLINE ONLINE rac2</span>
Following error was coming while trying to start the +ASM2 instance with SRVCTL:
$srvctl start asm -n rac2
<span style="font-family: arial,helvetica,sans-serif;">PRKS-1009 : Failed to start ASM instance "+ASM2" on node "rac2", [CRS-0223: Resource 'ora.rac2.ASM2.asm' has placement error.]</span>
While trying to start the same with crs_start :
$ crs_start -f ora.rac2.ASM2.asm
<span style="font-family: arial,helvetica,sans-serif;">CRS-1028: Dependency analysis failed because of: 'Resource in UNKNOWN state: ora.rac2.ASM2.asm' CRS-0223: Resource 'ora.rac2.ASM2.asm' has placement error</span>
There are two ways to come out of this UNKNOWN state of resources:
1. Start the resource from sqlplus
2. Use crs_stop -f to clear the state of database resources.
<span style="font-family: arial,helvetica,sans-serif;">$ export ORACLE_HOME=+ASM2 $ sqlplus "/ as sysdba" SQL > startup </span> <span style="font-family: arial,helvetica,sans-serif;">Diskgroup mounted</span>
It will go fine and the +ASM2 instnace will be started.
<span style="font-family: arial,helvetica,sans-serif;">$ crs_stop -f ora.rac2.ASM2.asm</span>
This will clear the UNKNOWN state and will make the resource as OFFLINE.
Now start the resource as:
$ srvctl start asm -n rac2
After using this check the status :
$ crs_stat -t
<span style="font-family: arial,helvetica,sans-serif;">Name Type Target State Host ------------------------------------------------------------ ora.orcl.db application ONLINE ONLINE rac1 ora....11.inst application ONLINE ONLINE rac1 ora....SM1.asm application ONLINE ONLINE rac1 ora....DC.lsnr application ONLINE ONLINE rac1 ora....idc.gsd application ONLINE ONLINE rac1 ora....idc.ons application ONLINE ONLINE rac1 ora....idc.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora....dc2.gsd application ONLINE ONLINE rac2 ora....dc2.ons application ONLINE ONLINE rac2 ora....dc2.vip application ONLINE ONLINE rac2</span>


Excellent. Very useful.
Thanks
Murali