【RAC】RAC删除节点
更新:HHH   时间:2023-1-7


一、  规划

二、  思路清晰

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 ----

返回关系型数据库教程...