必须按顺序执行 srvctl stop instance → srvctl stop nodeapps → srvctl stop asm → crsctl stop cluster,否则会导致 OCR/Voting Disk 不一致、监听器/VIP 未释放等故障。
不能直接用 srvctl stop instance 停单个实例后就关服务器——它不自动停监听、vip、asm 或 clusterware,强行断电或重启会破坏 ocr/voting disk 一致性,导致下次启动失败。
srvctl stop instance 只停数据库进程,不碰底层资源
这个命令只终止指定的 Oracle 实例(比如 orcl1),并默认把该实例上跑的服务迁移到其他存活节点(前提是没加 -force)。但它完全不管:
- 该节点上的
listener(监听器仍监听端口,新连接可能被路由到已下线实例) -
VIP(虚拟 IP 未释放,客户端重连可能超时或失败) -
ONS、GSD(集群事件通知和管理服务还在运行) -
ASM实例(如果该节点是 ASM 主节点,磁盘组可能无法被其他节点访问)
典型错误现象:执行 srvctl stop instance -d orcl -i orcl1 后,crs_stat -t 显示 ora.orcl.db 状态变为 INTERMEDIATE,但 ora.rac1.vip 和 ora.C1.lsnr 仍是 ONLINE——这时关机就是高危操作。
必须按顺序停止 nodeapps → ASM → cluster
Oracle 官方推荐的单节点停机顺序(以节点 rac1 为例)是:
- 先停数据库实例:
srvctl stop instance -d orcl -i orcl1 - 再停节点级服务:
srvctl stop nodeapps -n rac1(这会依次停VIP、listener、ONS、GSD) - 接着停 ASM 实例:
srvctl stop asm -n rac1(确保磁盘组安全卸载) - 最后由 root 停集群栈:
/u01/app/19.3.0/grid/bin/crsctl stop cluster -n rac1
注意:srvctl stop nodeapps 在 12c+ 中已被弃用,若报错 CRS-4013: This command is not supported,改用 crsctl stop res "ora.<node>.vip" "ora.<node>.ons" "ora.<node>.listener"</node></node></node> 手动停关键资源;而 crsctl stop cluster 是唯一能安全关闭本地 CRS 进程树的方式,/etc/init.d/init.crs stop 已过时且不可靠。
-force 参数不是“强制关机”,而是控制服务故障转移行为
srvctl stop instance -d orcl -i orcl1 -force 的 -force 并非绕过等待、杀进程,它的实际作用是:
- 跳过服务 graceful shutdown 流程,让该实例承载的服务立即 failover 到其他可用实例(而非等待服务自己清理)
- 不改变停机顺序——仍需后续手动停 nodeapps、ASM、cluster
- 在 RAC One Node 环境中,该参数会被拒绝,报错类似
ORA-15032: not all alterations performed,此时必须用srvctl stop database -d orcl全库停
常见误用:以为加了 -force 就可以跳过 srvctl stop nodeapps。实际上,-force 对 VIP、监听器、OCR 写入锁等完全无影响,漏掉 nodeapps 停止,下次 crsctl start cluster 很可能卡在 Waiting for VIP to be online。
维护前必须验证 OCR 和 Voting Disk 状态
哪怕所有命令都按顺序执行,如果 OCR 备份损坏或 Voting Disk 不可写,crsctl stop cluster 可能静默失败,表面返回成功但后台 CRS 进程仍在运行。务必在停机前确认:
-
ocrcheck输出为Status of Oracle Cluster Registry is as follows...且无 ERROR -
crsctl query css votedisk显示所有 voting disk 状态为online -
ls -l /dev/oracleasm/disks/(或 ASMFD 路径)确认磁盘权限未被意外修改
最容易被忽略的是:停机窗口内不做 OCR 备份。每次 crsctl stop cluster 前,应手动执行 ocrconfig -manualbackup,否则维护中发生 OCR 损坏,恢复难度陡增。


















