crs_start -all的时候遇到CRS-1028,CRS-0223错误
2008-10-28 16:51平台:RHEL4.5 X86 32bit,Oracle10.2.0.1 EE,Clusterware10.2.0.1,RAC环境
运行 crs_start -all 的时候,报以下类似错误:
[oracle@rac1 ~]$ crs_start -all
CRS-1028: Dependency analysis failed because of:
'Resource in UNKNOWN state: ora.rac1.ASM1.asm'
CRS-1028: Dependency analysis failed because of:
'Resource in UNKNOWN state: ora.rac2.ASM2.asm'
CRS-0223: Resource 'ora.devdb.devdb1.inst' has placement error.
CRS-0223: Resource 'ora.devdb.devdb2.inst' has placement error.
[oracle@rac1 ~]$ ps -ef | grep ora_
oracle
[oracle@rac1 ~]$ ps -ef | grep asm_
oracle
[oracle@rac1 ~]$ crs_stat -t
Name
------------------------------------------------------------
ora.....CRM.cs application
ora....db1.srv application
ora.devdb.db
ora....b1.inst application
ora....b2.inst application
ora....SM1.asm application
ora....C1.lsnr application
ora.rac1.gsd
ora.rac1.ons
ora.rac1.vip
ora....SM2.asm application
ora....C2.lsnr application
ora.rac2.gsd
ora.rac2.ons
ora.rac2.vip
发现除了ASM和DB外,其它服务都已经起来了,asm是UNKNOWN状态,db有placement error的错误。应当先启动ASM实例,存储才有用,DB对它有依赖性,得后启动。
[oracle@rac1 ~]$ crs_stat ora.rac1.ASM1.asm
NAME=ora.rac1.ASM1.asm
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac1
[oracle@rac1 ~]$ crs_stat ora.rac2.ASM2.asm
NAME=ora.rac2.ASM2.asm
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on rac2
对于unknown状态的应用,只能是手工先stop再start。
[oracle@rac1 ~]$ crs_stop ora.rac1.ASM1.asm
Attempting to stop `ora.rac1.ASM1.asm` on member `rac1`
Stop of `ora.rac1.ASM1.asm` on member `rac1` succeeded.
CRS-1016: Resources depending on 'ora.rac1.ASM1.asm' are running
CRS-0223: Resource 'ora.rac1.ASM1.asm' has placement error.
[oracle@rac1 ~]$ crs_stop ora.rac2.ASM2.asm
Attempting to stop `ora.rac2.ASM2.asm` on member `rac2`
Stop of `ora.rac2.ASM2.asm` on member `rac2` succeeded.
CRS-1016: Resources depending on 'ora.rac2.ASM2.asm' are running
CRS-0223: Resource 'ora.rac2.ASM2.asm' has placement error.
出现placement error这个问题的原因,主要是资源占用,也就是说两个实例资源出现在同一个节点上,导致另外一个节点得不到需要得资源。
解决办法:出现这个问题,最好是手工用命令启动相关的CRS服务,然后看看具体报什么错误。
启动服务得时候一定要将所有节点服务关闭,然后先启动一个节点,接着观察crs_stat的状态。当这个节点的所有服务正常后,再启动另一个节点。最后通过crs_stat观察全局节点状态。