Deleting Oracle RAC 11g from Nodes on Linux
目录
1 系统环境
2 从集群数据库中删除实例
3 移除ASM实例
4 移除ORACLE RAC
5 从集群中删除节点
6 验证
1 系统环境
1.1 硬件环境
产品名称 | 产品描述 | 数量 |
服务器节点 | Cpu: Intel(R) Xeon(R) CPU E7- 4830 @ 2.13GHz memory:8G Core:4 Swap:6G |
3 |
共享存储 | 一块214G scsi硬盘 | 1 |
1.2 软件环境
分类 | 项目 | 说明 | 备注 |
主机 | 主机名 | S01,s02,S03 | 删除主机S03 |
操作系统 | Red hat as 5 | 5.8 | |
内核 | 2.6.18-308.el5 | x86_64 | |
数据库
| 数据库版本 | Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64 |
|
运行模式 | RAC |
| |
数据库名 | test |
| |
实例名 | test1,test2,test3 | 删除实例Test3 | |
ASM | +DATA,+FLASH,+OCR_VOTE |
|
存储 | ||||
组件 | 文件系统 | 卷大小 | ASM卷组名 | ASM冗余 |
OCR-VOTE | ASM | 3G | +OCR_VOTE | NOMAL |
数据库文件 | ASM | 110G | +DATA | EXTERNAL |
恢复区 | ASM | 110G | +FLASH | EXTERNAL |
1.3 网络环境
网络配置 | |||||
节点 | 公共IP | 私有IP | 虚拟IP | scan名称 | SCAN IP |
S01 | 172.31.2.36 | 192.168.0.2 | 172.31.2.251 |
s-scan |
172.31.2.253 |
S02 | 172.31.2.62 | 192.168.0.3 | 172.31.2.63 | ||
S03 | 172.31.2.35 | 192.168.0.1 | 172.31.2.252 |
2 从集群数据中删除实例
2.1 删除实例
在任一非删除节点上,用ORACLE用户登录,利用dbca命令启动OUI界面
[oracle@s01 bin]$dbca
1 )选择oracle rac database并下一步
2 )选择instance management并下一步
3 )选择delete an instance并下一步
4 )输入sys/password后下一步
5 )选择要删除的INSTANCE,并下一步
注:可以用下列命令沉默删除实例
[oracle@s01 ~]$ dbca -silent -deleteinstance -nodelist s03 -gdbname rac.anbob.com -instancename test3 -sysdbausername sys -sysdbapassword oracle
当要删除多个节点时,重复以上步骤
2.2 验证实例删除情况
检查集群中实例情况
[oracle@s01 ~]$ srvctl config database -d test -v
用SQLPLUS检查
[oracle@s01 ~]$sqlplus / as sysdba
SQL> select inst_id,instance_name from gv$instance;
检查删除节点的redolog thread状态并禁用,其中N为要删除节点对应的redolog thread
sql>alter database disable thread N;
验证实例信息是否还在OCR中
[grid@s01 ~]$srvctl config database -d db_unique_name
3 移除ASM实例
在任一节点上,用GRID用户停止并移除asm实例
[grid@s01 ~]$ srvctl stop asm -n deletenode
[grid@s01 ~]$ srvctl remove asm -n deletenode
在要删除的节点上,用GRID或ROOT用户删除ASM相关文件
[grid@s03 ~]$ rm -rf $GRID_HOME/dbs/*ASM*
[grid@s03 ~]$ rm -rf $GRID_BASE/admin/+ASM
验证
[grid@s01 ~]$ srvctl status asm
4 移除ORACLE RAC
此部分主要目的是:从集群中移去要删除节点的RAC 软件;
更新保留节点的相关资源信息。
操作步骤:
1)禁用并停止删除节点的监听
在任一节点上用GRID用户执行
[grid@s01 bin]$srvctl disable listener -l listener_name -n name_of_node_to_delete
[grid@s01 bin]$srvctl stop listener -l listener_name -n name_of_node_to_delete
2 )更新删除节点的资源信息
在删除节点用GRID用户执行
[grid@s03 bin]$cd $GRID _HOME/oui/bin
[grid@s03 bin]$./runInstaller -updateNodeList ORACLE_HOME=Oracle_home_location
"CLUSTER_NODES={name_of_node_to_delete}" -local
3 )移除ORACLE RAC软件
在删除节点用GRID用户执行
▅ 当ORALCE_HOME是共享目录时
[grid@s03 bin]$cd $ORACLE_HOME/oui/bin
[grid@s03 bin]$./runInstaller
-detachHome ORACLE_HOME=Oracle_home_location
▅ 当没有共享目录时
[grid@s03 bin]$$ORACLE_HOME/deinstall/deinstall -local
4 )更新保留节点的资源信息
在任一保留节点用GRID用户执行
▅ 有共享目录时
[grid@s01 bin]$cd $ORACLE_HOME/oui/bin
[grid@s01 bin]$./runInstaller
-updateNodeList ORACLE_HOME=Oracle_home_location
"CLUSTER_NODES={remaining_node_list}" –cfs “complete path location for the cluster file system”
▅ 无共享目录时
[grid@s01 bin]$cd $ORACLE_HOME/oui/bin
[grid@s01 bin]$./runInstaller
-updateNodeList ORACLE_HOME=Oracle_home_location
"CLUSTER_NODES={remaining_node_list}"
5 从集群中删除节点
1 )检查集群中每个节点的$GRID_HOME确节位置
2 )检查删除节点状态
在任一节点用GRID用户执行
[grid@s01 bin]$olsnodes -s -t
注:当节点PINNED时,需要crsctl unpin css
3 )禁用集群应用
在删除节点用GRID用户执行
[grid@s03 bin]$emctl stop dbconsole
[grid@s03 bin]$cd $GRID_HOME/crs/install
[grid@s03 bin]$./rootcrs.pl -deconfig -force
注:1> 11.2.0.1或11.2.0.2版本不包括 -deinstall
2>如果删除多个节点时,在删除的节点上依次执行上行命令
3>当要删除全部节点时,添加-lastnode选项清除ocr和voting disks
./rootcrs.pl -deconfig -deinstall -force -lastnode
4>当上面命令失败时,需要手工运行:
[root@s03 bin]#srvctl stop vip -i vip_name -f
[root@s03 bin]#srvctl remove vip -i vip_name -f
4 )从集群中移除节点
在保留节点用ROOT用户执行
[root@s01 bin]#cd $GRID_HOME/bin
[root@s01 bin]#crsctl delete node -n deletenode
5 )更新删除节点的资源信息
在删除节点用GRID用户执行
[grid@s03 bin]$cd $GRID_HOME/oui/bin
[grid@s03 bin]$./runInstaller -updateNodeList ORACLE_HOME=Grid_home "CLUSTER_NODES={deletenode}" CRS=TRUE -silent -local
6 删除相关目录
在删除节点用GRID用户执行
▅有共享目录时
[grid@s03 bin]$cd $GRID_HOME/oui/bin
[grid@s03 bin]$./runInstaller -detachHome ORACLE_HOME=Grid_home -silent -local
手工删除以下文件和目录
rm -rf /etc/oraInst.loc
rm -rf /etc/oratab
rm -rf /opt/ORCLfmap/
rm –rf $OraInventory/
rm -rf /etc/oracle/*
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -f /etc/inittab.crs
▅ 无共享目录时
[grid@s03 bin]$$GRID_HOME/deinstall/deinstall -local
注:没有-LOCAL时,将会移除每个节点上的网络架构
7 ) 更新保留节点的资源信息
在任一保留节点,以GRID用户执行
[grid@s01 bin]$cd $GRID_HOME/oui/bin
[grid@s01 bin]$ ./runInstaller -updateNodeList ORACLE_HOME=Grid_home "CLUSTER_NODES=
{remaining_nodes_list}" CRS=TRUE –silent
在任一保留节点,以ORACLE用户执行
▅ 有共享目录时
[oracle@s01 bin]$ cd $ORACLE_HOME/oui/bin
[oracle@s01 bin]$./runInstaller -updateNodeList ORACLE_HOME=ORACLE_HOME
"CLUSTER_NODES={remaining_nodes_list}"
–cfs “complete path location for the cluster file system”
▅ 无共享目录时
[oracle@s01 bin]$ cd $ORACLE_HOME/oui/bin
[oracle@s01 bin]$./runInstaller -updateNodeList ORACLE_HOME=ORACLE_HOME
"CLUSTER_NODES={remaining_nodes_list}"
6验证
在任一保留节点,以GRID用户执行
[grid@s01 bin]$cd $GRID_HOME/bin
[grid@s01 bin]$cluvfy stage -post nodedel -n node_list [-verbose]