如果我们需要移除一个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
至此,节点删除完毕。