(超详细)Oracle 10g RAC 删除节点实验操作总结

Oracle10g RAC 删除节点实验操作总结

 

目  录

 

RAC物理结构... 3

一.     DBCA删除dbi节点的Database实例... 4

1.1、   检查删除dbi节点的wxxrdb3实例前的crs_stat -t -v 状态... 4

1.2、   先停掉RAC 上的dbi节点实例的服务... 4

1.3、   用Xmanager连上dbp节点,执行dbca命令删除dbi节点上的数据库实例... 4

1.4、   删除dbi节点的数据库实例后检查... 10

二、     删除dbi节点ASM实例... 11

2.1、执行以下命令删除dbi节点的ASM实例... 11

2.2、删除dbi节点上ASM实例的相关目录... 11

2.3、删除dbi节点的ASM实例后检查... 11

三、     删除dbi节点的数据库监听器... 12

3.1、执行以下命令删除dbi节点的监听器... 12

3.2、删除dbi节点的监听器后检查... 16

四、     删除dbi节点的数据库软件... 17

4.1、在保留的任意一个结点上执行如下命令,更新$ORACLE_HOME的Oracle Inventory  17

4.2、在要被删除的节点(dbi)上执行下列命令,同样是更新$ORACLE_HOME的Oracle Inventory. 17

4.3、删除dbi节点上的数据库软件... 17

4.4、删除dbi节点的数据库软件后检查... 21

五、     删除dbi节点NodeApps. 23

5.1、删除dbi节点的NodeApps. 23

5.2、删除dbi节点的NodeApps后检查... 23

5.3、删除dbi节点的ons资源... 24

六、     从集群中删除节点dbi24

6.1、在要删除的dbi节点上用root用户执行$CRS_HOME/install/rootdelete.sh脚本删除dbi节点的集群应用... 24

6.2、从集群中删除dbi节点... 26

6.2、更新$CRS_HOME的Oracle Inventory. 27

6.3、在dbi节点上删除集群软件... 28

6.4、删除dbi主机上的相关目录... 33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RAC物理结构

现在的RAC环境是三个节点: dbp,dbs,dbi。这个实验就是删除节点dbi。

dbp,dbs和dbi节点的信息规划如下:

服务器主机名

dbp

dbs

dbi

公共IP地址(eth0)

192.168.123.154

192.168.123.155

192.168.123.156

虚拟IP地址(eth0)

192.168.123.130

192.168.123.131

192.168.123.132

私有IP地址(eth1)

10.0.0.154

10.0.0.155

10.0.0.156

ORACLE RAC SID

wxxrdb1

wxxrdb2

wxxrdb3

集群实例名称

crs(查看命令$CRS_HOME/bin/cemutlo -n)

集群件和数据库软件版本

10.2.0.1.0 (x86_64)

操作系统版本

Red Hat Enterprise Linux Server release 5.6 (x86_64)

OCR(oracle集群注册表)

/dev/raw/raw1   /dev/sdb1        300M
查看命令:

1、$CRS_HOME/bin/ocrcheck

2、根据上述步骤1查到裸设备后,再执行 raw -q /dev/raw/raw1 查得裸设备的major和minor号后,再根据以下查ASM设备的方法查得对应的块设备和计算大小。

表决磁盘(voting disk)

/dev/raw/raw2   /dev/sdb2       300M

查看命令:

1、$CRS_HOME/bin/crsctl query css votedisk

2、根据上述步骤1查到裸设备后,再执行 raw -q /dev/raw/raw2 查得裸设备的major和minor号后,再根据以下查ASM设备的方法查得对应的块设备和计算大小。

ASM

ASM_diskname:VOL1  For_DG:+DATA  Blockdev_name:/dev/sdc1  容量:6G

ASM_diskname:VOL2  For_DG:+RECOVERY  Blockdev_name:/dev/sdd1  容量:6G

ASM_diskname: ARCH_DISK1  For_DG:+ARCH  Blockdev_name:/dev/sdd2  容量:5G

ASM_diskname: ARCH_DISK2  For_DG:+ARCH  Blockdev_name:/dev/sdd3  容量:5G

 

检查方法:

1、  oracleasm listdisks 查到所有的ASM diskname

2、  ls -ltr /dev/oracleasm/disks/VOL1

brw-rw---- 1 oracle dba 8, 33 02-12 00:16 /dev/oracleasm/disks/VOL1

查到VOL1的major是8,minor 是33

3、[root@dbp dev]# ls -ltr /dev | grep "8,.*33"

brw-r----- 1 root disk     8,   33 2016-02-12 sdc1

   根据VOL1的major和minor号查到的块设备是/dev/sdc1

3、  查看 /dev/sdc1 的大小:

fdisk -l /dev/sdc1 或

blockdev --getsize /dev/sdc1 查得块数,再乘以512(OS块大小)/1024/1024/1024

上述两个命令计算的大小有差异,fdisk -l命令计算的大小比 blockdev命令计算的大,但blockdev命令计算的大小和v$asm_disk.total_mb 一样差不多。

4、  查看 ASM disk所属的DG(Disk Group):

select asmdg.name,asmd.group_number,asmd.path,asmd.total_mb,asmd.free_mb

from v$asm_disk asmd,v$asm_diskgroup asmdg

where asmd.group_number=asmdg.group_number;

数据库备份

 

删除RAC节点遵循的步骤如下:

      1、删除数据库实例

      2、删除ASM实例

      3、删除节点

 

 

一.          DBCA删除dbi节点的Database实例

1.1、     检查删除dbi节点的wxxrdb3实例前的crs_stat -t -v 状态

1.2、     先停掉RAC 上的dbi节点实例的服务

[oracle@dbp tmp] $ srvctl stop instance -d wxxrdb -i wxxrdb3

[oracle@dbp tmp] $ crs_stop -f ora.wxxrdb.wxxrdb3.inst   ## -f参数,强制停止CRS资源服务

 

1.3、     用Xmanager连上dbp节点,执行dbca命令删除dbi节点上的数据库实例

可以通过以下两种方式删除数据库实例:

1)、通过DBCA图形界面操作删除数据库实例:

[oracle@dbp tmp] $ export DISPLAY=192.168.123.1:0.0

[oracle@dbp tmp] $ dbca

 

 

 

选择”Oracle Real Application Clusters database”,然后点击”Next”

 

选择”Instance Management”,然后点击”Next”

 

选择”Delete instance”,然后点击”Next”

 

选择数据库,输入sys用户和密码,然后点击”Next”

 

选择要删除的实例,因为执行dbca之前,已经把dbi节点的wxxrdb3实例关闭了,所以这时wxxrdb3实例的状态是inactive(非活动),然后点击”Next”,再点击”Finish”

 

 

点击”OK”

 

 

 

 

 

 

点击”OK”

 

开始删除数据库实例

 

 

 

 

 

2)、通过dbca命令的静默参数模式删除数据库实例:

[oracle@dbi tmp]$ dbca -silent -deleteInstance [-nodeListdbi] -gdbName wxxrdb -instanceName wxxrdb3 -sysDBAUserName sys-sysDBAPassword caserver   ##-nodeList 参数是可选项,可不加此参数

执行结果如下:

[oracle@dbp tmp]$ dbca -silent -deleteInstance -gdbNamewxxrdb -instanceName wxxrdb3 -sysDBAUserName sys -sysDBAPassword caserver

Deleting instance

20% complete

21% complete

100% complete

Look at the log file"/oracle/product/database/cfgtoollogs/dbca/silent.log"for further details. ##详细情况可以查看这个日志文件。

 

1.4、     删除dbi节点的数据库实例后检查

执行上述步骤删除数据库实例后,执行crs_stat -t -v 命令检查发现dbi节点的wxxrdb3实例已经删除,但是dbi节点的其它CRS资源,如asm,listener,gsd,ons,vip还没有删除:

所以还得继续以下的步骤。

 

注意:通过以上两种方式删除数据库实例后,OCR中关于该数据库实例的信息也会自动删除,不用再通过crs_unregister ora.wxxrdb.wxxrdb3.inst 命令手工删除,否则会报找不到该资源的错误,如下:

[oracle@dbp dbca]$ crs_unregister ora.wxxrdb.wxxrdb3.inst

CRS-0210: Could not findresource 'ora.wxxrdb.wxxrdb3.inst'.

二、  删除dbi节点ASM实例

2.1、执行以下命令删除dbi节点的ASM实例

[oracle@dbp dbca]$ srvctl stop asm -n dbi     ##先停止dbi节点的ASM实例

[oracle@dbp dbca]$ srvctl remove asm -n dbi  ##再删除dbi节点的ASM实例

 

注意:通过以上方式删除ASM实例后,OCR中关于该ASM实例的信息也会自动删除,不用再通过crs_unregister ora.dbi.ASM3.asm 命令手工删除,否则会报找不到该资源的错误,如下:

[oracle@dbp dbca]$ crs_unregister ora.dbi.ASM3.asm

CRS-0210: Could not findresource 'ora.dbi.ASM3.asm'.

 

 

2.2、删除dbi节点上ASM实例的相关目录

删除dbi节点上/etc/oratab文件中对应的ASM实例信息:

[oracle@dbi wxxrdb]$ vi /etc/oratab

+ASM3:/oracle/product/database:N  ##删除掉这一行

wxxrdb:/oracle/product/database:N

 

删除dbi节点上$ORACLE_BASE/admin/+ASM目录:

[oracle@dbi oracle]$ rm -rf $ORACLE_BASE/admin/+ASM

 

删除dbi节点上$ORACLE_HOME/dbs下面与asm有关的文件:

[oracle@dbi dbs]$ rm -rf $ORACLE_HOME/dbs/*+ASM*

 

 

2.3、删除dbi节点的ASM实例后检查

执行crs_stat -t -v 命令后,可以看到dbi节点的ASM实例对应的CRS资源 ora.dbi.ASM3.asm 已经删除,但dbi节点的listener,gsd,ons,vip的CRS资源还没有删除:

所以还得继续以下的步骤。

 

 

三、  删除dbi节点的数据库监听器

3.1、执行以下命令删除dbi节点的监听器

 [oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbp tmp]$ netca

 

选择”Cluster configuration”,然后点击”Next”

 

选择要删除监听器的节点,然后点击”Next”

 

选择”Listener configuration”,然后点击”Next”

 

选择”Delete”,然后点击”Next”

 

选择要删除的监听器名字,然后点击”Next”。如果这个dbi节点存在有多个监听器,则重复上述步骤,逐个删除。

 

点击”Yes”,确认删除。

 

监听器已经删除,点击”Next”,然后再点击”Finish”退出。

 

 

3.2、删除dbi节点的监听器后检查

执行crs_stat -t -v 命令后,可以看到dbi节点的监听器对应的CRS资源ora.dbi.LISTENER_DBI.lsnr 已经删除,但dbi节点的gsd,ons,vip的CRS资源还没有删除:

所以还得继续以下的步骤。

 

 

四、  删除dbi节点的数据库软件

 

4.1、在保留的任意一个结点上执行如下命令,更新$ORACLE_HOME的Oracle Inventory

[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbp tmp]$ $ORACLE_HOME/oui/bin/runInstaller-updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=dbp,dbs"   ##这里的CLUSTER_NODES参数表示要保留(即不删除)的节点

Starting Oracle Universal Installer...

 

No pre-requisite checks found in oraparam.ini, no systempre-requisite checks will be executed.

'UpdateNodeList' was successful.

 

 

4.2、在要被删除的节点(dbi)上执行下列命令,同样是更新$ORACLE_HOME的Oracle Inventory

[oracle@dbi tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbi tmp]$ $ORACLE_HOME/oui/bin/runInstaller-updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=dbi" -local   ##这里的CLUSTER_NODES参数表示要删除(即不保留)的节点

Starting Oracle Universal Installer...

 

No pre-requisite checks found in oraparam.ini, no systempre-requisite checks will be executed.

'UpdateNodeList' was successful.

 

 

4.3、删除dbi节点上的数据库软件

可以通过以下两种方式删除数据库软件:

1)、通过runInstaller程序的图形界面删除数据库软件:

在要删除的dbi节点上执行:

[oracle@dbi tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbi tmp]$ $ORACLE_HOME/oui/bin/runInstaller-deinstall

这里先勾选数据库软件的ORACLE_HOME,然后点击”Remove”进行删除,集群软件的CRS_HOME在之后再勾选删除,现在先不用勾选

 

点击”Yes”,确认删除这些数据库软件组件

 

开始删除数据库软件

 

数据库软件删除完成,点击”Close”退出

 

1)、通过runInstaller程序的静默参数模式删除数据库软件:

[oracle@dbi tmp]$ $ORACLE_HOME/oui/bin/runInstaller-deinstall -silent "REMOVE_HOMES={ ORACLE_HOME }"

注意:这里的REMOVE_HOMES指的是Oracle软件所在目录的名字,不一定是指$ORACLE_HOME环境变量,当然Oracle软件所在目录的名字是在安装Oracle软件时指定的,其名字也可以定义为ORACLE_HOME,本例Oracle软件所在目录的名字就是ORACLE_HOME,所以REMOVE_HOMES参数值指定为ORACLE_HOME(这里不带$符号,不是指$ORACLE_HOME环境变量)

 

 

4.4、删除dbi节点的数据库软件后检查

检查发现:

1)、dbi节点上的$ORACLE_HOME目录下的很多目录和文件都已经删除,剩余的目录文件如下:

[oracle@dbidatabase]$ ls -ltr $ORACLE_HOME

total 64

drwxr-xr-t 4 oracledba  4096 Feb 14 21:17 log

drwxr----- 3 oracledba  4096 Feb 15 03:29 dbp_wxxrdb1

drwxr----- 3 oracledba  4096 Feb 15 03:30 dbs_wxxrdb2

drwxr-xr-x 3 oracledba  4096 Feb 15 03:30 dbi_wxxrdb3

-rw-r----- 1 oracledba 16733 Feb 15 03:32 sqlnet.log

drwxr-x--- 2 oracledba  4096 Feb 16 02:23 dbs

drwxr-x--- 3 oracledba  4096 Feb 16 02:23 ctx

drwxr-x--- 3 oracledba  4096 Feb 16 02:23 racg

drwxr-x--- 2 oracledba  4096 Feb 16 02:23 lib32

drwxr-x--- 2 oracledba 12288 Feb 16 02:23 lib

 

另,删除数据库软件后,在执行删除数据库软件命令:$ORACLE_HOME/oui/bin/runInstaller–deinstall  的目录下

会生成一个名为deinstall_dbsoft 的文件,里面记录了删除的数据库组件,如下:

 

2)、/etc/oratab文件中关于oracle数据库软件安装路径($ORACLE_HOME)的条目也已经删除,文件内容为空:

[oracle@dbidatabase]$ cat /etc/oratab | grep -v"^#"

 

 

 

 

[oracle@dbidatabase]$

注意:如果dbi该服务器没有安装到其它的Oracle数据库软件,或不打算作为Oracle数据库服务器的话,可以将/etc/oratab文件删除,如果该主机还有其它数据库软件运行的话,不能删除,否则会影响其它数据库的运行。

 

3)、执行crs_stat -t -v,显示dbi节点的CRS资源gsd,ons,vip(即nodeapps资源)还没有删除:

所以还得继续以下的步骤。

 

 

五、  删除dbi节点NodeApps

5.1、删除dbi节点的NodeApps

在任一节点上执行(最好在要保留的节点):

[oracle@dbp tmp]$ srvctl stop nodeapps -n dbi   ##停止CRS资源nodeapps

CRS-0210: Could not findresource 'ora.dbi.LISTENER_DBI.lsnr'.  ##dbi节点的监听器在之前已经删除,这个报错不用理会

 

使用root用户执行删除nodeapps资源:

[root@dbp tmp]# /oracle/product/crs/bin/srvctl remove nodeapps -n dbi

请确认要删除节点 dbi 上的节点级应用程序 (y/[n]) y

 

5.2、删除dbi节点的NodeApps后检查

执行crs_stat -t -v 命令,发现OCR中dbi节点的nodeapps资源(gsd,ons,vip)都已经删除:

 

如果发ons资源没有删除,侧还需要执行以下的步骤:

 

5.3、删除dbi节点的ons资源

在保留节点上执行:

[oracle@dbp tmp]$ oifcfg delif -node dbi

 

在要删除的节点dbi查询ons资源服务的端口号:

[oracle@dbi tmp]$ cat $CRS_HOME/opmn/conf/ons.config

localport=6113

remoteport=6200

loglevel=3

useocr=on

 

在任意保留节点中执行racgons命令,删除dbi节点的ons配置:

[oracle@dbp tmp]$ $CRS_HOME/bin/racgons remove_configdbi:6200

 

 

 

六、  从集群中删除节点dbi

6.1、在要删除的dbi节点上用root用户执行$CRS_HOME/install/rootdelete.sh脚本删除dbi节点的集群应用

[root@dbi tmp]# /oracle/product/crs/install/rootdelete.sh

CRS-0210: Could not findresource 'ora.dbi.LISTENER_DBI.lsnr'.

CRS-0210: Could not findresource 'ora.dbi.ons'.

CRS-0210: Could not findresource 'ora.dbi.vip'.

CRS-0210: Could not findresource 'ora.dbi.gsd'.

Shutting down OracleCluster Ready Services (CRS):

Stopping resources.

Successfully stoppedCRS resources

Stopping CSSD.

Shutting down CSSdaemon.

Shutdown requestsuccessfully issued.

Shutdown has begun.The daemons should exit soon.

Checking to see if OracleCRS stack is down...

Oracle CRS stack isnot running.

Oracle CRS stack isdown now.

Removing script forOracle Cluster Ready services

Updating ocr file fordowngrade

Cleaning up SCRsettings in '/etc/oracle/scls_scr'

 

说明:上面报错的红色部分的资源在上面的步骤已经删除,这里不用理会。

 

 

执行完上述操作后,发现dbi节点在集群中的所有服务资源都已经删除了,只剩下dbp和dbs节点的服务资源,如下:

在dbi节点都不能执行相关的集群管理命令了,如下:

 

 

 

6.2、从集群中删除dbi节点

在保留节点中用root用户执行如下命令删除dbi节点:

[root@dbp tmp]# /oracle/product/crs/install/rootdeletenode.shdbi 3

CRS nodeapps aredeleted successfully

clscfg: EXISTINGconfiguration version 3 detected.

clscfg: version 3 is10G Release 2.

Node deletionoperation successful.

'dbi' deletedsuccessfully

 

命令格式:

$CRS_HOME/install/rootdeletenode.sh node_name1node1_number,node2 node2_number,..

node_number 可以通过 olsnodes -n -i 命令 获得:

[oracle@dbp tmp]$ olsnodes -n -i

dbp     1      dbp-vip

dbs     2      dbs-vip

dbi     3      <none>

执行完上述删除dbi节点步骤后,执行 olsnodes -n 命令还是会显示存在dbi节点:

[oracle@dbp tmp]$olsnodes -n -i

dbp     1      dbp-vip

dbs     2      dbs-vip

dbi     3      <none>

 

经测试,将命令[root@dbp tmp]# /oracle/product/crs/install/rootdeletenode.sh dbi 3

修改为 /oracle/product/crs/install/rootdeletenode.shdbi ,3 就可以了(dbi和3之间要加一个,逗号):

[root@dbp tmp]# /oracle/product/crs/install/rootdeletenode.shdbi,3

CRS nodeapps aredeleted successfully

clscfg: EXISTINGconfiguration version 3 detected.

clscfg: version 3 is10G Release 2.

Successfully deleted 14 valuesfrom OCR.

KeySYSTEM.css.interfaces.nodedbi marked for deletion is not there. Ignoring.

Successfully deleted 5 keys fromOCR.

Node deletionoperation successful.

'dbi,3' deletedsuccessfully

 

检查发现dbi (3)节点已经成功删除了:

[oracle@dbp install]$olsnodes -n -i

dbp     1      dbp-vip

dbs     2      dbs-vip

 

 

6.2、更新$CRS_HOME的Oracle Inventory

6.2.1、在保留的任意一个结点上执行如下命令,更新$CRS_HOME的Oracle Inventory

[oracle@dbp tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbp tmp]$ $CRS_HOME/oui/bin/runInstaller-updateNodeList ORACLE_HOME=$CRS_HOME "CLUSTER_NODES=dbp,dbs"CRS=TRUE   ##这里的CLUSTER_NODES参数表示要保留(即不删除)的节点

Starting Oracle Universal Installer...

 

No pre-requisite checks found in oraparam.ini, no systempre-requisite checks will be executed.

'UpdateNodeList' was successful.

 

 

6.2.2、在要被删除的节点(dbi)上执行如下命令,同样是更新$CRS_HOME的Oracle Inventory

[oracle@dbi tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbi tmp]$ $CRS_HOME/oui/bin/runInstaller-updateNodeList ORACLE_HOME=$CRS_HOME "CLUSTER_NODES=dbi" CRS=TRUE-local   ##这里的CLUSTER_NODES参数表示要删除(即不保留)的节点

Starting Oracle Universal Installer...

 

No pre-requisite checks found in oraparam.ini, no systempre-requisite checks will be executed.

'UpdateNodeList' was successful.

 

 

6.3、在dbi节点上删除集群软件

6.3.1、在dbi节点上执行如下命令删除集群软件

[oracle@dbi tmp]$ export DISPLAY=192.168.123.1:0.0

[oracle@dbi tmp]$ $CRS_HOME/oui/bin/runInstaller -deinstall

 

勾选”CRS_HOME”,点击”Remove”

 

点击”Yes”,确认删除这些集群软件组件

 

 

 

点击”Yes”,删除集群软件的同时删除集群软件目录:/oracle/product/crs

点击”No”,删除集群软件,但不删除集群软件目录:/oracle/product/crs

 

开始执行删除dbi节点的集群软件

 

dbi节点的集群软件已经删除,点击”Close”完成退出。

 

 

6.3.2、删除dbi节点的集群软件后检查

在以上倒数第三个截图中,点击了”Yes”表示删除集群软件的同时删除集群软件目录,但删除集群软件后,发现集群软件目录并没有删除,dbi节点的$CRS_HOME目录下的文件和目录数和保留的dbp和dbs节点一样,如下:

[oracle@dbi crs]$ ls -ltr $CRS_HOME | wc -l

45

[oracle@dbp tmp]$ ls -ltr $CRS_HOME | wc -l

45

[oracle@dbs tmp]$ ls -ltr $CRS_HOME | wc -l

45

 

这个不知道为什么,可能还是要手工删除。

 

 

6.4、删除dbi主机上的相关目录

如果dbi主机上不再存在其它正常运行的Oracle软件产品,侧可以执行以下步骤彻底删除Oracle软件,否则以后安装Oracle数据库软件时报错:

删除$ORACLE_BASE目录(包括$ORACLE_HOME,$CRS_HOME和oraInventory目录等)

 

删除 /etc/oraInst.loc文件

 

删除 /etc/oratab文件

 

删除/usr/local/bin 目录下的dbhome、coraenv和oraenv 文件

 

      更改/etc/inittab文件,将相关的oracle条目删除

 

      删除/var/tmp/.oracle目录

 

      删除集群和数据库相关的启动和关闭脚本,比如/etc/init.d/init*,以及/etc/rc?.d/*init.crs等文件,参考命令:

find /etc/rc.d  /etc/rc?.d  -name "*init*" -o -name"*crs*" -o -name "*css*"

 

      删除/etc/oracle目录(该目录下的ocr.loc文件记录了OCR存储的位置)

 

      清除crontab中关于ORACLE的相关任务;

 

      清除oracle用户下profile中关于Oracle的相关环境变量设置;

 

            删除 oracleasm 软件

 

 

 

阅读更多
个人分类: [Oracle-HA(RAC/DG/OGG]
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

(超详细)Oracle 10g RAC 删除节点实验操作总结

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭