前几天在虚拟机上面安装了oracle rac,今天把节点启动起来之后发现rac工作异常
[oracle@node1 bin]$ ./crs_stat -t
Name                     Type                     Target        State         Host                
------------------------------------------------------------
ora....E1.lsnr application        OFFLINE     UNKNOWN     node1            
ora.node1.gsd    application        ONLINE        UNKNOWN     node1            
ora.node1.ons    application        ONLINE        UNKNOWN     node1            
ora.node1.vip    application        ONLINE        ONLINE        node1            
ora....E2.lsnr application        OFFLINE     UNKNOWN     node2            
ora.node2.gsd    application        ONLINE        UNKNOWN     node2            
ora.node2.ons    application        ONLINE        UNKNOWN     node2            
ora.node2.vip    application        ONLINE        ONLINE        node2            
ora.orcl.db        application        OFFLINE     OFFLINE                            
ora....l1.inst application        OFFLINE     OFFLINE                            
ora....l2.inst application        OFFLINE     UNKNOWN     node2
查看侦听状态      
[oracle@node1 bin]$ ./crs_stat -t|grep lsnr
ora....E1.lsnr application        OFFLINE     UNKNOWN     node1            
ora....E2.lsnr application        OFFLINE     UNKNOWN     node2
[oracle@node1 bin]$ ./crs_stat -l|head -n 15
NAME=ora.node1.LISTENER_NODE1.lsnr
TYPE=application
TARGET=OFFLINE
STATE=UNKNOWN on node1

NAME=ora.node1.gsd
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on node1

NAME=ora.node1.ons
TYPE=application
TARGET=ONLINE
STATE=UNKNOWN on node1
尝试启动侦听
[oracle@node1 bin]$ ./crs_start ora.node1.LISTENER_NODE1.lsnr
CRS-1028: Dependency analysis failed because of:
'Resource in UNKNOWN state: ora.node1.LISTENER_NODE1.lsnr'
CRS-0223: Resource 'ora.node1.LISTENER_NODE1.lsnr' has placement error.
查看CRS状态
[oracle@node1 bin]$ ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
查看CSS状态
[oracle@node1 bin]$ ./crsctl check css
CSS appears healthy
首先停止node1上面的nodeapps
[oracle@node1 bin]$ ./srvctl stop nodeapps -n node1
[oracle@node1 bin]$ ./crs_stat -t
Name                     Type                     Target        State         Host                
------------------------------------------------------------
ora....E1.lsnr application        OFFLINE     OFFLINE                            
ora.node1.gsd    application        OFFLINE     OFFLINE                            
ora.node1.ons    application        OFFLINE     OFFLINE                            
ora.node1.vip    application        OFFLINE     OFFLINE                            
ora....E2.lsnr application        OFFLINE     UNKNOWN     node2            
ora.node2.gsd    application        ONLINE        UNKNOWN     node2            
ora.node2.ons    application        ONLINE        UNKNOWN     node2            
ora.node2.vip    application        ONLINE        ONLINE        node2            
ora.orcl.db        application        OFFLINE     OFFLINE                            
ora....l1.inst application        OFFLINE     OFFLINE                            
ora....l2.inst application        OFFLINE     UNKNOWN     node2
然后启动node1上面的nodeapps
[oracle@node1 bin]$ ./srvctl start nodeapps -n node1
[oracle@node1 bin]$ ./crs_stat -t
Name                     Type                     Target        State         Host                
------------------------------------------------------------
ora....E1.lsnr application        ONLINE        ONLINE        node1            
ora.node1.gsd    application        ONLINE        ONLINE        node1            
ora.node1.ons    application        ONLINE        ONLINE        node1            
ora.node1.vip    application        ONLINE        ONLINE        node1            
ora....E2.lsnr application        OFFLINE     UNKNOWN     node2            
ora.node2.gsd    application        ONLINE        UNKNOWN     node2            
ora.node2.ons    application        ONLINE        UNKNOWN     node2            
ora.node2.vip    application        ONLINE        ONLINE        node2            
ora.orcl.db        application        OFFLINE     OFFLINE                            
ora....l1.inst application        OFFLINE     OFFLINE                            
ora....l2.inst application        OFFLINE     UNKNOWN     node2
再重启所有资源
[oracle@node1 bin]$./crsctl stop resources
[oracle@node1 bin]$ ./crsctl start resources

然后在node2上面执行同样的操作,最后发现资源都启动起来了
[oracle@node1 bin]$ ./crs_stat -t
Name                     Type                     Target        State         Host                
------------------------------------------------------------
ora....E1.lsnr application        ONLINE        ONLINE        node1            
ora.node1.gsd    application        ONLINE        ONLINE        node1            
ora.node1.ons    application        ONLINE        ONLINE        node1            
ora.node1.vip    application        ONLINE        ONLINE        node1            
ora....E2.lsnr application        ONLINE        ONLINE        node2            
ora.node2.gsd    application        ONLINE        ONLINE        node2            
ora.node2.ons    application        ONLINE        ONLINE        node2            
ora.node2.vip    application        ONLINE        ONLINE        node2            
ora.orcl.db        application        ONLINE        ONLINE        node1            
ora....l1.inst application        ONLINE        ONLINE        node1            
ora....l2.inst application        ONLINE        ONLINE        node2
在执行一下
[oracle@node1 bin]$ ./crs_stat -l
所有状态都是online了,OK!
如果还有某个资源没有启动起来,手动执行
[oracle@node1 bin]$ ./crs_start ora.orcl.orcl1.inst(资源名称)
在没有打10.2.0.5.0的clusterware补丁之前这个资源的UNKNOWN状态经常出现(一般出现在虚拟机重启之后),打完补丁之后每次重启完一切正常,资源都能顺利启动起来