前情提要
案件回顾
强制删除损坏节点
# 手动清理损坏节点所有与oracle相关的文件,硬件工程师替换损坏磁盘,重建文件系统rm -rf u01.....# 删除节点2的数据库实例# 在存活节点执行,确保数据库查不到racdb2的实例su - oracledbca -silent -deleteInstance -nodeList racdb2 -gdbName orcl -instanceName orcl2-sysDBAUserName sys -sysDBAPassword "****"sqlplus as sysdbaalter database disable thread 2;select thread#,status,instance from v$thread;# 检查数据库配置信息,检查还存在损坏节点实例信息,手动删除srvctl config db -d orclsrvctl remove instance -i orcl2# 检查损坏节点是否被pin住su - rootolsnodes -t –s# 如果损坏节点状态为pin,手动将其状态设为unpincrsctl unpin css -n racdb2# 在存活节点上停止损坏节点nodeappssu - oraclesrvctl stop nodeapps -n racdb2 -f# 在存活节点上使用oracle用户更新集群信息su - oracle$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={racdb1}"# 在存活节点上删除损坏节点vipsu - rootsrvctl stop vip -i ora.racdb2.vip -fsrvctl remove vip -i ora.racdb2.vip -f# 在存活节点上删除损坏节点su - rootcrsctl delete node -n racdb2olsnodes -t -s# 在存活节点上使用grid用户更新集群信息su - grid$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={racdb1}" CRS=true# 验证损坏节点是否被删除su - gridcluvfy stage -post nodedel -n racdb2crsctl stat res -t
重新添加节点
# 添加gridsu - gridexport IGNORE_PREADDNODE_CHECKS=Y/u01/app/grid_home/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={racdb2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={racdb2-vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={racdb2-priv}"# 新节点使用root运行脚本/u01/app/oraInventory/orainstRoot.sh/u01/app/grid_home/root.sh# 添加dbsu - oracleexport IGNORE_PREADDNODE_CHECKS=Y/u01/app/oracle/product/11.2.0/db_1/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={racdb2}"# 新节点使用root运行脚本/u01/app/oracle/product/11.2.0/db_1/root.sh# 添加实例su - oracledbca -silent -addInstance -nodeList racdb2 -gdbName orcl -instanceName orcldb2 -sysDBAUserName sys -sysDBAPassword "***"# 验证su - oraclesqlplus / as sysdbaselect thread#,status,instance from gv$thread;
经验总结
文章转载自6号见的MindPalace,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




