一、
规划
二、
思路清晰
step1:
删除实例
step2:
删除
oracle
软件
step3:
删除
GI
软件
step4:
删除节点后验证
三、
删除节点过程
1.
删除实例
实例是由policy-managed
或
administrator-managed,
删除实例的步骤是不同的。
情况一、policy-managed
执行以下命令
$
srvctl
stop
instance -d ORCL -n rac3
$ srvctl relocate server -n rac3 -g Free
第一条命令是停止Instance
,第二条命令从当前的
server pool
中移除节点,迁移到空闲的
server pool
中。
情况二、administrator-managed
1
)停止
Instance
执行以下命令
$ srvctl status database -d ORCL
$ srvctl stop instance -d ORCL -n rac3
2)
DBCA
删除
instance
(
rac1
执行)
(oracle
用户)
方式一:静默方式
执行以下命令:
$ dbca -silent -deleteInstance -nodeList rac3 -gdbName ORCL -instanceName ORCL3 -sysDBAUserName sys -sysDBAPassword oracle
命令参考:
$ dbca -silent -deleteInstance -nodeList node_name -gdbName gdb_name -instanceName instance_name -sysDBAUserName sysdba -sysDBAPassword password
参数说明:
node_name:
想要添加到的节点名
gdb_name: global database name
instance_name:
指定实例名
sysdba:
有
sysdba
权限的用户
password:
密码
方式二:DBCA
图形界面方式
2.
删除oracle
软件
1)
停止并移除监听(rac1
)
$ srvctl disable listener -n rac3
$ srvctl stop listener -n rac3
2)
更新inventory
(
rac3
)
$ cd $ORACLE_HOME/oui/bin
$ ./runInstaller -updateNodeList ORACLE_HOME=
$ORACLE_HOME
"CLUSTER_NODES={rac3}" -local
3)
卸载oracle
软件(
rac3
)
$ cd $ORACLE_HOME/deinstall
$ ./deinstall -local
4)
更新inventory
(
rac1
)
$ cd $ORACLE_HOME/oui/bin
$ ./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={rac1,rac2}"
注:rac1
和
rac2
为保留节点名
3.
删除GI
软件
1)
查看集群节点信息
(grid
用户)
$ olsnodes -s -t
rac1 Active Unpinned
rac2 Active Unpinned
rac3 Active Unpinned
上条命令显示节点是否处于active
状态,以及是否处于固定(
pin
)状态。
如果是pinned,
需要设置为
unpinned
# crsctl unpin css -n rac3
2)
禁止集群程序和守护进程(rac3
)
(root
用户)
# export ORACLE_HOME=/u01/app/11.2.0/grid
#
cd $ORACLE_HOME/crs/install
#
perl
rootcrs.pl -deconfig -force
如果遇到以下问题
Can't locate Env.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . .) at crsconfig_lib.pm line 703.
BEGIN failed--compilation aborted at crsconfig_lib.pm line 703.
Compilation failed in require at ./rootcrs.pl line 305.
BEGIN failed--compilation aborted at ./rootcrs.pl line 305.
执行以下命令得以解决
# cp /u01/app/11.2.0/grid/perl/lib/5.10.0/Env.pm /usr/lib64/perl5/vendor_perl/
3)
删除节点信息(rac1
)
# cd /u01/app/11.2.0/grid/bin
# ./crsctl delete node -n rac3
4)
更新inventory
(
rac3
)
(grid
用户)
$ cd $ORACLE_HOME/oui/bin
$ ./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={rac3}" CRS=TRUE -silent -local
5)
卸载GI
软件(
rac3
)
(grid
用户)
$ cd $ORACLE_HOME/deinstall
$ ./deinstall -local
期间要根据提示运行一条长命令(root
用户)
#
/tmp/deinstall2020-08-07_02-21-51PM/perl/bin/perl -I/tmp/deinstall2020-08-07_02-21-51PM/perl/lib -I/tmp/deinstall2020-08-07_02-21-51PM/crs/install /tmp/deinstall2020-08-07_02-21-51PM/crs/install/rootcrs.pl -force -deconfig -paramfile "/tmp/deinstall2020-08-07_02-21-51PM/response/deinstall_Ora11g_gridinfrahome1.rsp"
最后还要运行三条清理命令(root
用户)
#
rm -rf /etc/oraInst.loc
#
rm -rf /opt/ORCLfmap
#
rm -rf /etc/oratab
6)
再次更新inventory
(
rac1
)
$ cd $ORACLE_HOME/oui/bin
$ ./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={rac1,rac2}" CRS=TRUE -silent
7)
检查节点是否删除干净(rac1
)
(grid
用户)
$ cluvfy stage -post nodedel -n rac3 -verbose
8)
备份OCR
# cd /u01/app/11.2.0/grid/bin
# ./ocrconfig -manualbackup
4.
删除节点后验证
1)
验证资源状态
2)
验证数据库实例信息
SQL>
select instance_number,instance_name,host_name from gv$instance;
INSTANCE_NUMBER INSTANCE_NAME
HOST_NAME
--------------- ---------------- -----------------
1
ORCL1
rac1
2
ORCL2
rac2
---- end ----