前一段时间在用虚拟机搭建了RAC环境,刚搭好的时候一切正常。
可今天启动的时候却出现N多错误。通过./crs_stat -t查看很多资源状态不正常
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application ONLINE UNKNOWN rac2
ora....b1.inst application ONLINE OFFLINE
ora....b2.inst application ONLINE UNKNOWN rac2
ora....SM1.asm application ONLINE UNKNOWN rac1
ora....C1.lsnr application ONLINE UNKNOWN rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE UNKNOWN rac2
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac1
手动启动资源的时候报错CRS-0223: Resource 'ResourceName' has placement error
GOOGLE上查到的资料有两种说法:
1.两台机器时间不同步造成的
2.资源相互依赖,启动次序不对造成的。(http://hrivera99.blogspot.com/2008/05/crs-0223-resource-resourcename-has.html)
首先尝试同步两台机器的时间,同步后问题依旧。
第一种不行,那就尝试按照次序启动资源。
1.先查看资源的依赖关系
用./crs_stat -p 查看 输出结果,关键是看NAME属性和REQUIRED_RESOURCES属性,下面是我总结出来的资源依赖关系。
ora.devdb.db =>
ora.devdb.devdb1.inst =>ora.rac1.vip ora.rac1.ASM1.asm
ora.devdb.devdb2.inst =>ora.rac2.vip ora.rac2.ASM2.asm
ora.rac1.ASM1.asm =>ora.rac1.vip
ora.rac1.LISTENER_RAC1.lsnr =>ora.rac1.vip
ora.rac1.gsd =>
ora.rac1.ons =>
ora.rac1.vip =>
ora.rac2.ASM2.asm =>ora.rac2.vip
ora.rac2.LISTENER_RAC2.lsnr =>ora.rac2.vip
ora.rac2.gsd =>
ora.rac2.ons =>
ora.rac2.vip =>
2.按照顺序 ora.devdb.devdb1.inst,ora.rac1.ASM1.asm,ra.rac1.LISTENER_RAC1.lsnr,ora.rac1.gsd,ora.rac1.ons,ora.rac1.vip的
顺序用 CRS_STOP RESOURCE_NAME命令依次停掉资源,然后按照相反的顺序依次启动各个资源。通过这个方式最后成功启动RAC1借点上的所有资源。
下面是执行成功后的状态信息:
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application ONLINE ONLINE rac1
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
说明前面的问题确实是由于资源启动顺序不对造成的资源不能启动。
需要说明两点
1.如果资源的STATE=OFFLINE的不能执行停止操作,强行停止ORACLE会报错。只有处于STATE=UNKNOWN,ONLINE的能执行停止操作。
2.各个资源的启动顺序子要能保证被依赖资源早于依赖资源启动就没问题,停止的时候要先关闭依赖资源再关闭被依赖的资源。
可今天启动的时候却出现N多错误。通过./crs_stat -t查看很多资源状态不正常
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application ONLINE UNKNOWN rac2
ora....b1.inst application ONLINE OFFLINE
ora....b2.inst application ONLINE UNKNOWN rac2
ora....SM1.asm application ONLINE UNKNOWN rac1
ora....C1.lsnr application ONLINE UNKNOWN rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE UNKNOWN rac2
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac1
手动启动资源的时候报错CRS-0223: Resource 'ResourceName' has placement error
GOOGLE上查到的资料有两种说法:
1.两台机器时间不同步造成的
2.资源相互依赖,启动次序不对造成的。(http://hrivera99.blogspot.com/2008/05/crs-0223-resource-resourcename-has.html)
首先尝试同步两台机器的时间,同步后问题依旧。
第一种不行,那就尝试按照次序启动资源。
1.先查看资源的依赖关系
用./crs_stat -p 查看 输出结果,关键是看NAME属性和REQUIRED_RESOURCES属性,下面是我总结出来的资源依赖关系。
ora.devdb.db =>
ora.devdb.devdb1.inst =>ora.rac1.vip ora.rac1.ASM1.asm
ora.devdb.devdb2.inst =>ora.rac2.vip ora.rac2.ASM2.asm
ora.rac1.ASM1.asm =>ora.rac1.vip
ora.rac1.LISTENER_RAC1.lsnr =>ora.rac1.vip
ora.rac1.gsd =>
ora.rac1.ons =>
ora.rac1.vip =>
ora.rac2.ASM2.asm =>ora.rac2.vip
ora.rac2.LISTENER_RAC2.lsnr =>ora.rac2.vip
ora.rac2.gsd =>
ora.rac2.ons =>
ora.rac2.vip =>
2.按照顺序 ora.devdb.devdb1.inst,ora.rac1.ASM1.asm,ra.rac1.LISTENER_RAC1.lsnr,ora.rac1.gsd,ora.rac1.ons,ora.rac1.vip的
顺序用 CRS_STOP RESOURCE_NAME命令依次停掉资源,然后按照相反的顺序依次启动各个资源。通过这个方式最后成功启动RAC1借点上的所有资源。
下面是执行成功后的状态信息:
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.devdb.db application ONLINE ONLINE rac1
ora....b1.inst application ONLINE ONLINE rac1
ora....b2.inst application ONLINE ONLINE rac2
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
说明前面的问题确实是由于资源启动顺序不对造成的资源不能启动。
需要说明两点
1.如果资源的STATE=OFFLINE的不能执行停止操作,强行停止ORACLE会报错。只有处于STATE=UNKNOWN,ONLINE的能执行停止操作。
2.各个资源的启动顺序子要能保证被依赖资源早于依赖资源启动就没问题,停止的时候要先关闭依赖资源再关闭被依赖的资源。