CRS-2672卡住主因是资源锁残留,需先确认资源状态(crsctl stat res -t),再通过crsctl debug log res调试日志定位锁持有者,严禁直接删进程或OCR;软停失败用-f强制停止并验证无残留进程,依赖资源须全部停稳后方可crs_unregister,操作前务必ocrconfig -export备份。
crsctl start resource 一直卡住或报 CRS-2672 是资源锁残留
资源启动卡在 crs-2672: attempting to start 'xxx',不是配置错,大概率是上一次异常退出没释放锁。crs 内部用分布式锁管理资源状态,若进程僵死、节点失联或强制 kill -9 过 crsd,锁可能滞留在 ocr 或内存中,后续启动会反复等待这个“不存在的持有者”。
常见触发场景包括:节点硬重启后未 clean shutdown、crsctl stop crs -f 后立刻 start crs、手动 kill ora.crsd.bin 进程但没清 cache。
- 先确认锁是否真卡住:
crsctl stat res -t | grep -E "(OFFLINE|UNKNOWN)",看目标资源是否长期处于 INIT/INTERMEDIATE 状态 - 查锁持有者:
crsctl debug log res "resource:5"开启调试日志,再重试启动,然后去ADRBASE/diag/crs/<nodename>/crs/trace/crsd.trc搜lock holder或wait for lock - 不要直接删进程或改 OCR —— 锁信息分散在内存、OCR 和本地 cache 三层,只动一层会更乱
crs_unregister 强制清除资源前必须停稳且无依赖
crs_unregister 不校验运行状态,直接从 OCR 删元数据,但前提是资源已真正下线。如果 crsctl stop resource <name> 返回成功却仍有子进程残留(比如 ora.asm 僵在 Z 状态),crs_unregister 后 OCR 没了记录,但系统里还挂着进程,下次 crsctl start crs 可能直接 panic。
- 软停失败就加
-f:crsctl stop resource <name> -f,再ps -ef | grep <name>确认无对应 bin 进程 - 查依赖链:
crsctl stat res <name> -p | grep REQUIRED_RESOURCES,确保它依赖的监听器、VIP、ASM 实例都已停稳 - 检查 ASM 客户端:
sqlplus / as sysasm -S < /dev/stdin <<EOF\nSELECT inst_name FROM v$asm_client;\nEOF,输出为空才安全
OCR 损坏导致 crsctl delete resource 失效时,别碰 crsctl unregister
看到 crsctl delete resource 报 ORA-40001 或 CRS-4605,但 crsctl stat res -t 还能列出来,说明 OCR 元数据不一致——资源定义残缺或 name/type 字段错位。此时 crsctl unregister 根本不存在,是常见笔误;正确命令只有 crs_unregister。
- 执行前必须
ocrconfig -export /tmp/ocr_pre_unreg.exp,否则删错无法回退 - 删完立刻验证:
crsctl stat res -t | grep <name>应无输出,再ocrdump -stdout | grep -A3 -B3 <name>确认 OCR 里真没了 - 如果
crs_unregister自己报CRS-0184(连不上 crsd),说明 OCR 已不可读,得切到ocrconfig -restore或-overwrite流程,不能再走资源级清理
rootcrs.sh -deconfig 卡住多半是因为 asm 或 cssd 没真正停掉
在故障节点跑 _rootcrs.sh -deconfig 卡在 “Stopping CRS services…” 不是脚本问题,而是它内部会调 crsctl stop crs → 停 ora.crsd → 停 ora.asm → 查 OCR 设备。只要其中一环僵住(比如 ASM 实例 hang 在 disk heartbeat 等待共享盘响应),整个清理就挂起。
- 别等它自己超时,先手动查:
ps -ef | grep -E "(ohasd|crsd|cssd|diskmon|gpnpd)",有残留进程就kill -9并rm -f /var/tmp/.oracle/* - 确认 OCR 设备可访问:
blkid | grep <votedisk_device>+ls -l /dev/mapper/<mpath>,若设备消失,先修复 multipath 或 iscsi 再清理 - 12.1+ GI 必须用
rootcrs.pl -deconfig -force,混用_rootcrs.sh会导致ora.cluster_interconnect.haip资源残留,后续加节点必卡在 CRS-2672
crsctl check cluster -all 和 ocrcheck -detail 的输出,比盲目跑 -force 更省时间。


















