1.环境
SUSE11+11.1.0.7 crs,双节点
用户发现集群运行一段时间之后,大部分的crs_stat,srvctl 命令都会
挂起。重启集群虽然能够短暂解决问题,但是此问题很快会出现。
2.过程分析
问题是crs_stat 命令会挂起。
--查看集群状态
crsctl check crs
集群状态正常
由于crs_stat 和srvctl 命令是用来查询集群资源状态的,所以他们
会和CRSD 进行通信。查看 crsd.log;
Action Script /u01/app/db/bin/racgwrap timed out for ora.test.test1.inst;
(timeout=600)
该问题和10gr2版本的一个已知问题相似。该问题在:11.1.0.7 版本修复。
ps -ef |grep "racgmain check"|wc -l
之前的已知问题是由于 racgwrap 的文件的最后几行有问题,需要修改。
检查 racgwrap的最后几行:
ORA_RACG_VIP_FALLBACK=1 && export ORA_RACG_VIP_FALLBACK
exec $ORACLE_HOME/bin/racgmain "$@"
脚本没有问题。
重新排查:
不部分的crs_stat,srvctl 命令都会挂起,由于 crs_stat 和srvctl
命令会访问crsd.bin 守护进程。crsd.log 显示,crsd.bin 守护进程
出现超时现象:
Action Script /u01/app/db/bin/racgwrap timed out for ora.test.test1.inst;
(timeout=600)
,所以crsd.bin 应还在运行,但是有可能一直在执行某些特定的操作或者
陷入了死循环。
pstat 8888 --8888 是 crsd 守护矜持点操作系统进程号。
Thread 1275
crsd.bin 守护进程启动了1000多个线程。结合上面的信息,推测是一个BUG
引起:BUG 10058182
3.解决方法
应用补丁10058182