srvctl remove instance 报“instance does not exist”是因为ocr未同步、实例名大小写/拼写不匹配或实例未停用;需先srvctl stop instance,确保-db参数为db_unique_name,并严格匹配v$instance.instance_name;ocr残留资源须用crsctl delete resource -f清理;删节点后必须运行runinstaller -updatenodelist同步;lk和sgadef.dbf文件必须手动同时删除,否则startup mount会卡在锁检查。
srvctl remove instance 为什么报错“instance does not exist”
执行 srvctl remove instance 时提示实例不存在,不是因为实例真没了,而是 ocr 里还没同步删除记录,或实例名大小写/拼写与注册时不一致。rac 实例名必须严格匹配 v$instance.instance_name 的值(如 orcl1,不是 orcl1 或 orcl_1),且该实例必须已停用(srvctl stop instance 成功后才可删)。常见误操作包括:在节点未停库状态下直接删、用错数据库唯一名(-db 参数应填 db_unique_name,不是 db_name)、或实例已被静默删除但 ocr 未刷新。
OCR 中残留的实例资源怎么手动清理
OCR 不允许直接编辑,必须通过 Oracle 提供的命令接口操作。若 srvctl remove instance 失败且确认实例已停,可尝试强制清理底层资源:
- 先查清资源名:
crsctl stat res -w "TYPE = ora.database.type" | grep -A 2 orcl(把orcl换成你的 DB 唯一名) - 找到对应实例资源(如
ora.orcl.orcl1.inst),用crsctl delete resource ora.orcl.orcl1.inst -f强制删除 - 再删数据库级资源(如
ora.orcl.db)前,务必确认其他实例仍在运行;否则整个数据库资源会消失,影响集群识别 - 删完后运行
srvctl config database -d orcl,输出中Database instances:行不应再含该实例名
更新 OCR 节点列表必须先跑 updateNodeList
crsctl delete node 只删集群注册表中的节点条目,不碰 OCR 里的数据库配置。OCR 中的节点列表由安装时写入,后续增删节点必须显式调用 runInstaller -updateNodeList 同步。漏掉这步,哪怕节点物理已下线,srvctl config database 仍显示旧节点,DBCA 也会拒绝新建实例。正确顺序是:
- 在剩余健康节点上,以
oracle用户执行:$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={node1,node2}" -silent - 若只删一个节点,
CLUSTER_NODES里只列剩下的节点,不能留空或写错名 - 执行后检查
$ORACLE_HOME/inventory/ContentsXML/install.xml,确认<node_list></node_list>下只剩目标节点 - 最后再跑
srvctl config database -d orcl,验证Database instances:和Server pools:输出是否收敛
lk 和 sgadef.dbf 不删,startup mount 就卡死
即使 OCR 已清、实例资源已删、进程全停,只要 $ORACLE_HOME/dbs/lk<sid></sid> 文件还存在,任何 startup mount 都会在 “failed to lock … exclusive” 处挂住——这是 Oracle 启动时做的本地文件锁互斥检查,和集群无关。这个文件不会被 srvctl 或 deletenode 触及,必须手动删:
- 确认 SID 名准确(区分大小写),例如实例名为
orcl1,则删$ORACLE_HOME/dbs/lkorcl1和$ORACLE_HOME/dbs/sgadeforcl1.dbf - 不要只删一个:两个文件必须同时清除,否则下次启动仍可能因 SGA key 冲突失败
- 删完立刻
ls -l $ORACLE_HOME/dbs/lk* $ORACLE_HOME/dbs/sgadef*.dbf确认无残留 - 这个步骤常被跳过,尤其当节点已宕机、只能从其他节点远程清理时——你得挂载其根分区后操作,而不是在本机执行











