Deleting Oracle RAC 11g from Nodes on Linux
1 系统环境
2 从集群数据库中删除实例
3 移除ASM实例
4 移除ORACLE RAC
5 从集群中删除节点
6 验证
产品名称 |
产品描述 |
数量 |
服务器节点 |
Cpu: Intel(R) Xeon(R) CPU E7- 4830 @ 2.13GHz memory:8G Core:4 Swap:6G |
3 |
共享存储 |
一块214G scsi硬盘 |
1 |
分类 |
项目 |
说明 |
备注 |
主机 |
主机名 |
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 |
网络配置 |
|||||
节点 |
公共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 |
在任一非删除节点上,用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
当要删除多个节点时,重复以上步骤
检查集群中实例情况
[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
在任一节点上,用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
此部分主要目的是:从集群中移去要删除节点的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}"
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}"
在任一保留节点,以GRID用户执行
[grid@s01 bin]$cd $GRID_HOME/bin
[grid@s01 bin]$cluvfy stage -post nodedel -n node_list [-verbose]