参考文档如下
http://www.cnblogs.com/hmwh/articles/8493588.html
Rac 11g 的节点删除!
一、正常删除测试环境备库节点
10.129.56.67 atp-112-slave1.zgshfp.com.cn atp-112-slave1
10.129.56.68 atp-112-slave2.zgshfp.com.cn atp-112-slave2
# Private
10.129.57.67 atp-112-slave1-priv.zgshfp.com.cn atp-112-slave1-priv
10.129.57.68 atp-112-slave2-priv.zgshfp.com.cn atp-112-slave2-priv
# Virtual
10.129.56.71 atp-112-slave1-vip.zgshfp.com.cn atp-112-slave1-vip
10.129.56.72 atp-112-slave2-vip.zgshfp.com.cn atp-112-slave2-vip
# SCAN
#10.129.56.73 st-scan.zgshfp.com.cn st-scan
#10.129.56.74 st-scan.zgshfp.com.cn st-scan
#10.129.56.75 st-scan.zgshfp.com.cn st-scan
Database instances: shfpdb1,shfpdb2
Database unique name: standby
Database name: shfpdb
1.查看当前线程状态
select thread#,status,instance from v$thread;
2.Oracle用户操作
(在正常节点操作)
注意listener
srvctl stop listener -n xxxxx
srvctl stop scan_listener -i 1
show parameter service
查看service
crsctl status res -t
查看service 状态
https://blog.csdn.net/leshami/article/details/8124232
srvctl config service -d ora10g -s hr_ora10g -a
srvctl status service -d <db_name> -s <service_name> -f -v
停止service srvctl stop service -d <db_name> -s <service_name> -i instance_name -c connect-string -q -f
删除service srvctl remove service -d <db_name> -s <service_name> -i instance_name [-f]
3.1 dbca静默删除
删除节点操作
dbca -silent -deleteInstance -nodeList atp-112-slave2 -gdbName standby -instanceName shfpdb2 -sysDBAUserName sys -sysDBAPassword admin

删除后验证
select thread#,status,instance from v$thread;
ALTER DATABASE DISABLE THREAD 2;
srvctl config database -d standby
再次确认停止相关的监听服务
srvctl disable listener -l listener -n atp-112-slave2
srvctl stop listener -l listener -n atp-112-slave2
srvctl disable listener -l listener -n atp-112-slave2
srvctl disable listener -l listener -n atp-112-slave2
3.2 删除oracle软件
在需要删除的节点下, Oracle 用户 $ORACLE_HOME/oui/bin 下运行
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={atp-112-slave2}" -local

删除Oracle RAC软件(oracle 用户):
$ORACLE_HOME/deinstall/deinstall -local
3.3 在所有的保留节点Oracle 用户 $ORACLE_HOME/oui/bin 下运行以下命令来更新这些节点的清单,并指定逗号分隔的其余节点名称列表
所有的保留节点执行:
cd $ORACLE_HOME/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={atp-112-slave1}"
4. 从cluster中删除节点
4.1查看节点运行情况
ROOT 或者grid 执行 (在待删除节点执行)
/u01/app/11.2.0.4/grid/bin/olsnodes -s -t

如果要删除的节点为 pinned 状态,请ROOT手工执行以下命令。
crsctl unpin css -n <node1>
例如:crsctl unpin css -n rac2
/u01/app/11.2.0/grid/bin/crsctl unpin css -n rac2
4.2删除节点
4.1.1 卸载GI安装目录(正常删除实验)
ROOT 执行:(删除节点执行)
/u01/app/11.2.0.4/grid/crs/install/rootcrs.pl -deconfig -force

如果全部删除节点,在最后一个节点执行以下命令:
/u01/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force -lastnode
-lastnode只能用于全部删除。
4.1.2删除节点
注意:以删除下语句ROOT执行删除节点(保留的节点执行)
/u01/app/11.2.0.4/grid/bin/crsctl delete node -n atp-112-slave2

4.1.3更新集群列表
Grid安装用户更新集群列表:(在删除节点执行)
/u01/app/11.2.0.4/grid/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={atp-112-slave2}" CRS=TRUE -silent -local

继续后续操作:
注意:
官方文档说的是:
再继续之前,查看 inventory.xml 文件确保该文件没有被更新(官方文档说的有点含糊,个人测试的是节点1的不更新,被删除的那个节点文件更新了),如果节点1被更新了,后续卸载会卸载整个集群安装目录。
more u01/app/oraInventory/ContentsXML/inventory.xml

删除节点

正常保留节点
卸载GI安装目录
删除节点执行
/u01/app/11.2.0.4/grid/deinstall/deinstall -local
提示回车 然后y 之后执行脚本

脚本执行成功结果如 上图

之后回车删除成功如上图
所有保留的节点上grid执行以下命令:
/u01/app/11.2.0.4/grid/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=
{atp-112-slave1}" CRS=TRUE -silent

删除验证
cluvfy stage -post nodedel -n atp-112-slave2 -verbose

本文分享自微信公众号 - 学无尽止,如有侵权,请联系 service001@enmotech.com 删除。




