如果我们需要移除一个RAC节点,我们该如何操作叻。 

当然先检查一下我们的RAC的节点的状况,在crs目录下,用root登录执行命令, 
./olsnodes -n 

racnode01 1 
racnode02 2 

第一步 从RAC中删除数据库实例 
该步骤将完成如下: 
撤销选择的实例在关联的Oracle Net Services监听中的注册 
从实例配置节点中删除选择的实例 
删除Oracle网络配置 
从实例配置节点中删除OFA目录结构 

可以使用如下两种方式从现有RAC中删除数据库实例: 
1. 使用EM控制台 
登录EM控制台,选择"管理"选项 
选择更改数据库节中的删除实例 
输入集群身份证明(若使用ASM,需输入主机和ASM的身份证明),选择要删除实例的节点,提交该任务。 
任务的执行情况信息都在摘要页面中体现。 

2. 使用DBCA命令 
在保留节点节点上执行。 
交互模式(Interactive Mode) 
实例管理->实例删除->输入具备SYSDBA权限的用户->选择要删除的实例 

非交互模式(Silent Mode)(保留节点) 

dbca -silent -deleteInstance [-nodeList node] -gdbName gdbname -instanceName 
instname -sysDBAUserName sysdba -sysDBAPassword password 
第二步 从节点删除ASM实例(如果使用ASM) 

删除节点 
1. 停止使用被删ASM实例的所有数据库 
2. 删除ASM实例 

srvctl stop asm -n node_name 
srvctl remove asm -n node_name 
3. 删除ASM Oracle目录 

第三步 从RAC中删除节点 

删除节点前要保证设置正确的$CRS_HOME和$ORACLE_HOME环境变量。 
1. 使用NETCA删除listener. 
2. 在RAC集群中删除Oracle目录 

删除节点执行: 
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=Oracle_home "CLUSTER_NODES={node_name}" -local 
保留节点执行: 
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=Oracle_home "CLUSTER_NODES={remaining_nodes_list}" 
remaining_node_list为逗号分隔的集群保留节点名称 
删除节点执行: 
./runInstaller -deinstall -silent "REMOVE_HOMES={Oracle_home}" 
3. 删除Oracle集群目录 

保留节点执行: 
oifcfg delif -node nodename (为删除的节点名) 
从删除节点的ons.config文件获取远程端口号 
CRS_home/bin/racgons remove_config nodename:remote_port 
4. 禁用Oracle集群应用 

#CRS_home/install/rootdelete.sh 
5. 从集群中删除节点并更新OCR(保留节点运行) 

CRS_home/install/rootdeletenode.sh node1,node1-number,node2,node2-number,... nodeN,nodeN-number 
列出的1-N节点为删除节点,node-number可通过olsnodes -n获得。 

# ./rootdeletenode.sh racnode01, racnode01-1 

$CRS_home/oui/bin/runInstaller -updateNodeList ORACLE_HOME=CRS_home "CLUSTER_NODES={node_to_be_deleted}" CRS=TRUE -local 
6. 运行OUI卸CRS目录,确认目录一起删除。 

或者./runInstaller -deinstall -silent "REMOVE_HOMES={CRS_home}" 
7. 更新集群节点 

$CRS_home/oui/bin/runInstaller -updateNodeList ORACLE_HOME=CRS_home "CLUSTER_NODES={remaining_nodes_list}" CRS=TRUE 
至此,节点删除完毕。