暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

一学就会,一会就废系列之--Oracle 10g RAC 多节点集群删除节点实操记录终结篇

532

一、概述

1.1 项目背景

有套Oracle 10g RAC 三节点数据库,综合衡量,为更好的节省资源,计划将其改造成单机数据库,剔除其它两节点。

1.2 现有集群节点信息

主机名 public-IP virtual-IP private-IP 操作系统版本 数据库版本
local-xxx-standby-db1 192.168.10.2 192.168.10.3 10.90.1.12 CentOS release 5.11 (Final) 10.2.0.5
local-xxx-standby-db1 192.168.10.4 192.168.10.5 10.90.1.14 CentOS release 5.11 (Final) 10.2.0.5
local-xxx-standby-db1 192.168.10.6 192.168.10.7 10.90.1.16 CentOS release 5.11 (Final) 10.2.0.5

二、删除节点

先删除实例三节点,待检查正常后再删除实例二节点。

建议在操作之前备份voting Disk,此处略。

2.1 查看集群状态

使用Oracle用户在任一节点查看集群状态。

[oracle@local-xxx-standby-db1 ~]$ crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora.xxx.db application 0/0 0/1 ONLINE ONLINE loca...-db2 ora....s1.inst application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....s2.inst application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....s3.inst application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....SM1.asm application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.gsd application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.ons application 0/3 0/0 ONLINE ONLINE loca...-db1 ora....db1.vip application 0/0 0/0 ONLINE ONLINE loca...-db1 ora....SM2.asm application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.gsd application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.ons application 0/3 0/0 ONLINE ONLINE loca...-db2 ora....db2.vip application 0/0 0/0 ONLINE ONLINE loca...-db2 ora....SM3.asm application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....B3.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....db3.gsd application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....db3.ons application 0/3 0/0 ONLINE ONLINE loca...-db3 ora....db3.vip application 0/0 0/0 ONLINE ONLINE loca...-db3 [oracle@local-xxx-standby-db1 ~]$ srvctl status database -d xxx Instance xxx1 is running on node local-xxx-standby-db1 Instance xxx2 is running on node local-xxx-standby-db2 Instance xxx3 is running on node local-xxx-standby-db3

2.2 停止被删节点实例

使用Oracle用户在任一节点操作,停止被删除节点oracle及ASM实例。

[oracle@local-xxx-standby-db1 ~]$ srvctl stop instance -d xxx -i xxx3 -o immediate [oracle@local-xxx-standby-db1 ~]$ srvctl status asm -n local-xxx-standby-db3 ASM instance +ASM3 is running on node local-xxx-standby-db3. [oracle@local-xxx-standby-db1 ~]$ srvctl stop asm -n local-xxx-standby-db3 [oracle@local-xxx-standby-db1 ~]$ srvctl status asm -n local-xxx-standby-db3 ASM instance +ASM3 is not running on node local-xxx-standby-db3.

2.3 从spfile删除被删节点参数

使用Oracle用户在任一未被删除节点操作。

[oracle@local-xxx-standby-db1 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Tue Sep 19 10:18:25 2023 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> set long 9999 head off pages 0 lines 1000 SQL> show parameter spfile; spfile string +DATA/xxx/spfilexxx.ora SQL> select name,value from v$spparameter where sid='xxx3'; thread 3 instance_number 3 undo_tablespace UNDOTBS3 local_listener LISTENER_XXX3 SQL> alter system reset thread scope=spfile sid='xxx3'; System altered. SQL> alter system reset instance_number scope=spfile sid='xxx3'; System altered. SQL> alter system reset undo_tablespace scope=spfile sid='xxx3'; System altered. SQL> select name,value from v$spparameter where sid='xxx3'; local_listener LISTENER_XXX3 SQL> select sid,name,value from v$spparameter where name='cluster_database_instances'; * cluster_database_instances 3

2.4 停止被删除节点监听

使用Oracle用户在任一非被删除节点操作。

[oracle@local-xxx-standby-db1 ~]$ srvctl stop listener -n local-xxx-standby-db3 [oracle@local-xxx-standby-db1 ~]$ crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora.xxx.db application 0/0 0/1 ONLINE ONLINE loca...-db2 ora....s1.inst application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....s2.inst application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....s3.inst application 0/5 0/0 OFFLINE OFFLINE ora....SM1.asm application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.gsd application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.ons application 0/3 0/0 ONLINE ONLINE loca...-db1 ora....db1.vip application 0/0 0/0 ONLINE ONLINE loca...-db1 ora....SM2.asm application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.gsd application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.ons application 0/3 0/0 ONLINE ONLINE loca...-db2 ora....db2.vip application 0/0 0/0 ONLINE ONLINE loca...-db2 ora....SM3.asm application 0/5 0/0 OFFLINE OFFLINE ora....B3.lsnr application 0/5 0/0 OFFLINE OFFLINE ora....db3.gsd application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....db3.ons application 0/3 0/0 ONLINE ONLINE loca...-db3 ora....db3.vip application 0/0 0/0 ONLINE ONLINE loca...-db3 [oracle@local-xxx-standby-db1 ~]$ srvctl status database -d xxx Instance xxx1 is running on node local-xxx-standby-db1 Instance xxx2 is running on node local-xxx-standby-db2 Instance xxx3 is not running on node local-xxx-standby-db3

2.5 删除数据库实例

使用Oracle用户在任一非被删除节点操作。

[oracle@local-xxx-standby-db1 ~]$ srvctl remove instance -d xxx -i xxx3 Remove instance xxx3 from the database xxx? (y/[n]) y --- 输入 y [oracle@local-xxx-standby-db1 ~]$ srvctl status database -d xxx Instance xxx1 is running on node local-xxx-standby-db1 Instance xxx2 is running on node local-xxx-standby-db2 [oracle@local-xxx-standby-db1 ~]$ crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora.xxx.db application 0/0 0/1 ONLINE ONLINE loca...-db2 ora....s1.inst application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....s2.inst application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....SM1.asm application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.gsd application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.ons application 0/3 0/0 ONLINE ONLINE loca...-db1 ora....db1.vip application 0/0 0/0 ONLINE ONLINE loca...-db1 ora....SM2.asm application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.gsd application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.ons application 0/3 0/0 ONLINE ONLINE loca...-db2 ora....db2.vip application 0/0 0/0 ONLINE ONLINE loca...-db2 ora....SM3.asm application 0/5 0/0 OFFLINE OFFLINE ora....B3.lsnr application 0/5 0/0 OFFLINE OFFLINE ora....db3.gsd application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....db3.ons application 0/3 0/0 ONLINE ONLINE loca...-db3 ora....db3.vip application 0/0 0/0 ONLINE ONLINE loca...-db3

2.6 删除ASM实例

使用Oracle用户在任一非被删除节点操作。

[oracle@local-xxx-standby-db1 ~]$ srvctl status asm -n local-xxx-standby-db3 ASM instance +ASM3 is not running on node local-xxx-standby-db3. [oracle@local-xxx-standby-db1 ~]$ srvctl remove asm -n local-xxx-standby-db3 [oracle@local-xxx-standby-db1 ~]$ srvctl status asm -n local-xxx-standby-db3 [oracle@local-xxx-standby-db1 ~]$ crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora.xxx.db application 0/0 0/1 ONLINE ONLINE loca...-db2 ora....s1.inst application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....s2.inst application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....SM1.asm application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.gsd application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.ons application 0/3 0/0 ONLINE ONLINE loca...-db1 ora....db1.vip application 0/0 0/0 ONLINE ONLINE loca...-db1 ora....SM2.asm application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.gsd application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.ons application 0/3 0/0 ONLINE ONLINE loca...-db2 ora....db2.vip application 0/0 0/0 ONLINE ONLINE loca...-db2 ora....B3.lsnr application 0/5 0/0 OFFLINE OFFLINE ora....db3.gsd application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....db3.ons application 0/3 0/0 ONLINE ONLINE loca...-db3 ora....db3.vip application 0/0 0/0 ONLINE ONLINE loca...-db3

2.7 删除监听

使用Oracle用户在任一非被删除节点操作。

注:本次使用图形化界面操作,也可使用命令操作,详见本系列Oracle 11g 删除节点操作文章(https://www.modb.pro/db/1706516399739965440)

image20230927135635632.png

选择需要删除监听的节点

image20230919104716740.png

选择监听配置方式

image20230919104811509.png

选择删除操作

image20230919104920203.png
image20230919104942006.png
image20230919105004589.png

完成删除操作

image20230919105025716.png

查看当前监听状态

[oracle@local-xxx-standby-db1 ~]$ crs_stat -t -v Name Type R/RA F/FT Target State Host ---------------------------------------------------------------------- ora.xxx.db application 0/0 0/1 ONLINE ONLINE loca...-db2 ora....s1.inst application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....s2.inst application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....SM1.asm application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.gsd application 0/5 0/0 ONLINE ONLINE loca...-db1 ora....db1.ons application 0/3 0/0 ONLINE ONLINE loca...-db1 ora....db1.vip application 0/0 0/0 ONLINE ONLINE loca...-db1 ora....SM2.asm application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.gsd application 0/5 0/0 ONLINE ONLINE loca...-db2 ora....db2.ons application 0/3 0/0 ONLINE ONLINE loca...-db2 ora....db2.vip application 0/0 0/0 ONLINE ONLINE loca...-db2 ora....db3.gsd application 0/5 0/0 ONLINE ONLINE loca...-db3 ora....db3.ons application 0/3 0/0 ONLINE ONLINE loca...-db3 ora....db3.vip application 0/0 0/0 ONLINE ONLINE loca...-db3

2.8 清除rac配置信息

使用Oracle用户在任一非被删除节点操作。

[oracle@local-xxx-standby-db1 ~]$ cat /u01/app/oracle/product/10.2.0/crs_1/opmn/conf/ons.config localport=6113 remoteport=6200 loglevel=3 useocr=on [oracle@local-xxx-standby-db1 ~]$ racgons remove_config local-xxx-standby-db3:6200

2.9 删除数据库软件

注意:在要执行被删除的local-xxx-standby-db3节点上以root用户身份执行rootdelete.sh删除节点脚本

千万要注意是在被删除节点上操作执行。

[root@local-xxx-standby-db3 ~]# cd /u01/app/oracle/product/10.2.0/crs_1/install [root@local-xxx-standby-db3 install]# ./rootdelete.sh --- 上述操作执行结果如下 CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.:.inst'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.:.inst'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.:.inst'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.:.inst'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.:.inst'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.:.inst'. Shutting down Oracle Cluster Ready Services (CRS): Sep 19 10:55:52.721 | INF | daemon shutting down Stopping resources. This could take several minutes. Successfully stopped CRS resources. Stopping CSSD. Shutting down CSS daemon. Shutdown request successfully issued. Shutdown has begun. The daemons should exit soon. Checking to see if Oracle CRS stack is down... Checking to see if Oracle CRS stack is down... Oracle CRS stack is not running. Oracle CRS stack is down now. Removing script for Oracle Cluster Ready services Updating ocr file for downgrade Cleaning up SCR settings in '/etc/oracle/scls_scr' Cleaning up Network socket directories

2.10 更新OCR信息

使用root用户在任一非被删除节点操作。

[root@local-xxx-standby-db1 ~]# cd /u01/app/oracle/product/10.2.0/crs_1/install [root@local-xxx-standby-db1 install]# ./rootdeletenode.sh local-xxx-standby-db3,3 -- 上述操作结果如下 CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.ons'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.vip'. CRS-0210: Could not find resource 'ora.local-xxx-standby-db3.gsd'. CRS-0210: Could not find resource ora.local-xxx-standby-db3.vip. CRS nodeapps are deleted successfully clscfg: EXISTING configuration version 3 detected. clscfg: version 3 is 10G Release 2. Successfully deleted 14 values from OCR. Key SYSTEM.css.interfaces.nodelocal-xxx-standby-db3 marked for deletion is not there. Ignoring. Successfully deleted 5 keys from OCR. Node deletion operation successful. 'local-xxx-standby-db3,3' deleted successfully

2.11更新crs信息

使用Oracle用户在任一非被删除节点操作。

[oracle@local-xxx-standby-db1 ~]$ cd $ORA_CRS_HOME/oui/bin [oracle@local-xxx-standby-db1 bin]$ ./runInstaller -updateNodelist ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES={local-xxx-standby-db1,local-xxx-standby-db2}" CRS=TRUE Starting Oracle Universal Installer... No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oracle/oraInventory 'UpdateNodeList' was successful.

三、验证

重复执行上述操作后,其它两个节点已从集群中被删除。查看当前集群状态,已变为单节点。

[oracle@local-xxx-standby-db1 ~]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.xxx.db application ONLINE ONLINE loca...-db1 ora....s1.inst application ONLINE ONLINE loca...-db1 ora....SM1.asm application ONLINE ONLINE loca...-db1 ora....B1.lsnr application ONLINE ONLINE loca...-db1 ora....db1.gsd application ONLINE ONLINE loca...-db1 ora....db1.ons application ONLINE ONLINE loca...-db1 ora....db1.vip application ONLINE ONLINE loca...-db1 [oracle@local-xxx-standby-db1 ~]$ olsnodes -n local-xxx-standby-db1 1 [oracle@local-xxx-standby-db1 ~]$ ora si SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 27 14:04:50 2023 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options [oracle@local-xxx-standby-db1 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 27 14:04:56 2023 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> set long 99999 head off pages 0 lines 1000 SQL> select INST_ID,INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME,STATUS,THREAD# from gv$instance; 1 1 xxx1 local-xxx-standby-db1 MOUNTED 1 SQL> select INST_ID,THREAD#,STATUS,GROUPS,INSTANCE from gv$thread; 1 1 OPEN 4 xxx1 1 2 OPEN 4 xxx2 1 3 OPEN 4 xxx3
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论