资源OFFLINE不等于故障,需先检查集群栈存活、VIP绑定及依赖状态,再针对性修复,避免盲目重启导致UNKNOWN等更难处理的状态。
crsctl stat res -t 显示资源 OFFLINE,先别急着重启
offline 不等于挂了,它只是 crs 认为该资源不该运行在当前节点——可能因为依赖未就绪、vip 绑定失败、或上一轮启动被手动中止。直接 crs_start -f 往往无效,甚至让状态变成 unknown,后续更难处理。
优先检查三件事:
- 用
crsctl check cluster -all确认所有节点的集群栈(OHASD/CSSD)是否存活;如果某个节点显示CRS-4639或超时,问题出在底层通信或 grid 用户环境 - 查
$ORACLE_BASE/diag/crs/,搜索关键词/crs/trace/alert.log ORA-、failed to start、binding failed,重点看最后一段报错前的 5 行上下文 - 确认 VIP 是否冲突:用
ifconfig -a | grep在对应节点执行,若没输出,说明 VIP 没绑上;若有输出但不在预期网卡上,大概率是/etc/hosts解析错或srvctl config vip配置的网卡名不匹配
ora.asm 资源 OFFLINE,别直接 ALTER DISKGROUP ONLINE
ASM 实例 OFFLINE 时,ALTER DISKGROUP ... ONLINE DISK 是无效的——命令根本进不去 ASM 实例。必须先让 ora.asm 自身上线,否则所有磁盘组操作都会报 ORA-15032 或 ORA-15063。
典型修复路径:
- 先确认 ASM 磁盘可见性:
asmcmd lsdg如果报 “cannot connect”,说明 ASM 实例没起来;asmcmd lsdisk如果返回空或报错,说明底层存储路径(如 multipath 设备、AFD 标签)在该节点丢失 - 检查
grid用户的ORACLE_HOME和ORACLE_BASE是否正确,尤其注意末尾有没有多余/(比如export ORACLE_HOME=/u01/app/19.0.0/grid/多了个斜杠,会导致crsctl start res ora.asm静默失败) - 手动拉起 ASM:
srvctl start asm -n;失败时看$GRID_HOME/log/,常有/agent/ohasd/orarootagent_root/orarootagent_root.log permission denied on /dev/asm*或AFD not initialized
重置本地节点配置:不是卸载重装,而是清理残留注册信息
当节点反复出现资源状态漂移、crsctl stop crs 后无法干净 shutdown、或者加节点时报 PRCR-1079,大概率是 OCR 中还存着旧的节点元数据,或本地 ohasd 的持久化状态损坏。
安全清理步骤(仅限单节点操作,且确认该节点已离线):
- 停止本节点所有集群进程:
crsctl stop crs -f,等待ps -ef | grep -i 'ora_|crs_|ohasd'输出为空 - 备份并清空本地 OCR 镜像缓存:
mv $GRID_HOME/cdata/(防止误删)/backup* /tmp/ - 重置本地节点注册:
crsctl delete node -n(在正常节点执行),再在本节点执行crsctl unpin css+crsctl stop crs -f,最后crsctl start crs - 验证:
crsctl query css votedisk应返回完整投票盘列表;ocrcheck返回 HEALTHY;cluvfy comp nodecon -n all -verbose无 ERROR
srvctl status volume 显示 ADVM 卷 OFFLINE,优先用 srvctl 启动
ADVM 卷(如 ora.DATA.VOL1.advm)OFFLINE 通常不影响数据库实例,但会影响 ACFS 文件系统挂载。不要用 SQL 命令去“在线”卷,ASM 不识别 ADVM 卷对象。
正确做法是:
- 确认对应磁盘组已 MOUNT:
asmcmd lsdg中STATE列为MOUNTED - 查卷状态:
srvctl status volume -volume-diskgroup - 启动卷:
srvctl start volume -volume;若报-diskgroup -node PRCR-1065,说明卷资源依赖的ora.还没 ONLINE,得先解决磁盘组问题.dg - ACFS 挂载后,检查
df -h是否出现对应路径;若没出现,手动mount -t acfs /dev/asm/并确认-xxx /mnt/acfs /etc/fstab里有对应条目
最易被忽略的是:ADVM 卷的 ENABLED 状态和 RUNNING 状态是两回事。srvctl status volume 显示 enabled 但 not running,说明卷定义存在但没激活——这时必须用 srvctl start volume,不能靠重启 ASM 或 CRS 自动恢复。











