六、移除节点

  注意,下列操作均是在确实要保留的实例上进行,不要选择在要被删除的节点上进行操作哟。

6.1  删除DATABASE实例

  在视窗界面中找开dbca命令

  Dbca 界面大家应该已经非常熟悉了,这里仍然是选择RAC database:

  选择Instance Management,点击下一步:

  Of course ,Delete Instance:

  选择要操作的数据库,并输入一个具有sysdba权限的用户及密码:

  选择一个要删除的实例,这里当然是jssdbn3喽!哎,这可怜的孩子,刚被加进来又不得不被踢出去,不过没关系,能加能删才是真实例:)

  确定删除点击OK,接下来如果还蹦这类窗口,同样直接点击OK即可:

  开始进行删除操作:

  终于删除完了,这里可别点yes,操作已经完成,点"No"退出即可。


6.2  删除ASM实例

  接下来,我们需要删除该节点中的asm实例,以及注册到crs中的相关信息,操作如下:

    [oracle@jssdbn1 bin]$ ./srvctl stop asm -n jssdbn3

    [oracle@jssdbn1 bin]$ ./srvctl remove asm -n jssdbn3

  Ok, 上述两个命令行正确执行后,目标节点的asm实例就已经被删除了,你是否想问怎么确定删除操作确实执行了呢?最简单的方式,执行crs_stat查看当前crs的各进程状态:

    [oracle@jssdbn1 bin]$ ./crs_stat -t

    Name           Type           Target    State     Host        

    ------------------------------------------------------------

    ora.jssdb.db   application    ONLINE    ONLINE    jssdbn2     

    ora....n1.inst application    ONLINE    ONLINE    jssdbn1     

    ora....n2.inst application    ONLINE    ONLINE    jssdbn2     

    ora....SM1.asm application    ONLINE    ONLINE    jssdbn1     

    ora....N1.lsnr application    OFFLINE   OFFLINE               

    ora....bn1.gsd application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.ons application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.vip application    ONLINE    ONLINE    jssdbn1     

    ora....SM2.asm application    ONLINE    ONLINE    jssdbn2     

    ora....N2.lsnr application    ONLINE    UNKNOWN   jssdbn2     

    ora....bn2.gsd application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.ons application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.vip application    ONLINE    ONLINE    jssdbn2     

    ora....N3.lsnr application    ONLINE    UNKNOWN   jssdbn3     

    ora....bn3.gsd application    ONLINE    ONLINE    jssdbn3     

    ora....bn3.ons application    ONLINE    ONLINE    jssdbn3     

    ora....bn3.vip application    ONLINE    ONLINE    jssdbn3     

  从上述返回信息可以看出,jssdbn3节点中运行的asm和instance均已经不存在了。

  此时虽然相关应用均已被删除,不过asm实例相关的pfile以及一些trc文件仍然存在,可以通过操作系统的命令删除相关文件,包括但不限于下列路径:

  • $ORACLE_BASE/admin/+ASM/*
  • $ORACLE_HOME/dbs/init+ASM*

6.3  删除节点

  下面,我们还需要从RAC环境中,删除目标节点,本步操作比较多而且杂,务必注意操作步骤,以及执行操作所在的节点。

1、删除目标节点监听服务

  首先可以通过netca删除目标节点中的监听服务(趁现在ORACLE_HOME还在),netca的操作比较简单,这里就不演示了。

2、停止目标节点apps

  监听服务删除之后,接着停止目标节点中的应用,可以在任意节点上操作,执行命令如下:

[oracle@jssdbn1 bin]$ ./srvctl stop nodeapps -h

3、删除目标结点数据库软件

  本操作包含两个部分,首先是要在保留的任意一个结点上执行操作,更新Oracle Inventory,例如:

    [oracle@jssdbn1 ~]$ $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=jssdbn1,jssdbn2"

    Starting Oracle Universal Installer...

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

    ¨UpdateNodeList¨ was successful.

  接下来在要被删除的节点上执行下列命令,同样是更新Oracle Inventory:

    [oracle@jssdbn3 ~]$ $ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES=jssdbn3" -local

    Starting Oracle Universal Installer...

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

  然后就可以删除该节点上的数据库软件了,在视窗界面执行命令如下:

    [oracle@jssdbn3 ~]$ $ORACLE_HOME/oui/bin/runInstaller -deinstall 

    Starting Oracle Universal Installer...

    .....................

    .....................

  然后就会看到OUI的操作界面了。如图所示,点击REMOVE即可(注意要选对数据库软件哟):

  如果弹出是否确认删除的提示框,也直接点击yes确认就好。OUI开始执行删除操作。

  操作完成后,点击close退出该界面。

    提示:如果希望在非图形界面执行删除操作的话,那么执行runInstall命令时,附加-silent参数即可。

    该服务器如果不准备再安装ORACLE数据库的话,可以同时删除/etc/oratab文件。

    [oracle@jssdbn3 ~]$ rm /etc/oratab

4、删除ONS配置

  在任意保留节点中执行racgons命令,删除ONS配置,操作如下:

    [oracle@jssdbn1 ~]$ $ORA_CRS_HOME/bin/racgons remove_config jssdbn3:6200

    racgons: Existing key value on jssdbn3 = 6200.

    racgons: jssdbn3:6200 removed from OCR.

  要查询目标节点的ONS端口号,可以通过下列命令:

    [oracle@jssdbn3 ~]$ more $ORA_CRS_HOME/opmn/conf/ons.config 

    localport=6113 

    remoteport=6200 

    loglevel=3

    useocr=on

5、删除NodeApps

  目标节点中包括GSD、ONS、VIP等应用此时已经可以被删除了,删除这些应用可以通过srvctl命令,注意要以root身份执行,操作如下:

    [root@jssdbn1 ~]# /data/ora10g/product/10.2.0/crs_1/bin/srvctl remove nodeapps -n jssdbn3

    Please confirm that you intend to remove the node-level applications on node jssdbn3 (y/[n]) y

  执行完上述命令后,返回oracle用户,执行crs_stat查看当前应用的状态:

    [oracle@jssdbn1 bin]$ ./crs_stat -t

    Name           Type           Target    State     Host        

    ------------------------------------------------------------

    ora.jssdb.db   application    ONLINE    ONLINE    jssdbn2     

    ora....n1.inst application    ONLINE    ONLINE    jssdbn1     

    ora....n2.inst application    ONLINE    ONLINE    jssdbn2     

    ora....SM1.asm application    ONLINE    ONLINE    jssdbn1     

    ora....N1.lsnr application    OFFLINE   ONLINE    jssdbn1  

    ora....bn1.gsd application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.ons application    ONLINE    ONLINE    jssdbn1     

    ora....bn1.vip application    ONLINE    ONLINE    jssdbn1     

    ora....SM2.asm application    ONLINE    ONLINE    jssdbn2     

    ora....N2.lsnr application    ONLINE    ONLINE    jssdbn2      

    ora....bn2.gsd application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.ons application    ONLINE    ONLINE    jssdbn2     

    ora....bn2.vip application    ONLINE    ONLINE    jssdbn2     

  如上述所示,CRS中关于jssdbn3的痕迹都已经不见了。

6、删除目标节点clusterware软件

  接下来要做的是删除目标节点上的clusterware软件,本步操作与删除数据库软件类似,实际上眼神好的朋友可能也看到了,之前执行runInstall -deinstall命令,在弹出界面里也看到了OraCrs10g_home。详细操作步骤如下!

  首先仍是在任意保留的节点中操作:

    [oracle@jssdbn1 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES=jssdbn1,jssdbn2" CRS=TRUE

    Starting Oracle Universal Installer...

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

    ¨UpdateNodeList¨ was successful.

  然后切换至目标节点,执行更新Oracle Inventory的操作:

    [oracle@jssdbn3 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORA_CRS_HOME "CLUSTER_NODES=jssdbn3" CRS=TRUE -local

    Starting Oracle Universal Installer...

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

    ¨UpdateNodeList¨ was successful.

  接下来执行runInstaller -deinstall命令,执行clusterware软件的删除操作(注意是在视窗界面操作):

    [oracle@jssdbn3 ~]$ $ORA_CRS_HOME/oui/bin/runInstaller -deinstall

    Starting Oracle Universal Installer...

  弹出窗口如下,选中crs路径,然后点击remove即可。

  操作完成后,点击close关闭窗口。集群件软件就被成功从目标节点删除了。接下来如果愿意(或者确实需要),可以考虑清除ORACLE留下的一些操作痕迹,包括但不限于下列:

  • 删除$ORACLE_BASE/oraInventory目录
  • 删除/etc/inittab文件
  • 删除/var/tmp/.oracle目录
  • 删除ORA相关的启动关闭脚本,比如/etc/init.d/init*,以及/etc/rc?.d/*init.crs等文件
  • 删除/etc/oracle目录
  • 清除crontab中关于ORACLE的相关任务;
  • 清除oracle用户下profile中关于ORA的相关环境变量设置;
  • 清除共享存储分配给jssdbn3的相关权限

7、从OCR中删除节点信息

  在任意一台保留的节点执行:

    [oracle@jssdbn1 ~]$ cd $ORA_CRS_HOME/bin

    [oracle@jssdbn1 bin]$ ./olsnodes -n -i

    jssdbn1 1       jssdbn1-vip

    jssdbn2 2       jssdbn2-vip

    jssdbn3 3       

  你看,尽管通过前面的操作,ORACLE软件以及集群件均已被删除,节点信息也更新过了,不过OCR中还是保留有jssdbn3节点的信息,因此这块也需要删除,执行脚本如下:

    [root@jssdbn1 ~]# cd /data/ora10g/product/10.2.0/crs_1/install

    [root@jssdbn1 install]# ./rootdeletenode.sh jssdbn3,3

    CRS-0210: Could not find resource ¨ora.jssdbn3.LISTENER_JSSDBN3.lsnr¨.

    CRS-0210: Could not find resource ¨ora.jssdbn3.ons¨.

    CRS-0210: Could not find resource ¨ora.jssdbn3.vip¨.

    CRS-0210: Could not find resource ¨ora.jssdbn3.gsd¨.

    CRS-0210: Could not find resource ora.jssdbn3.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.nodejssdbn3 marked for deletion is not there. Ignoring.

    Successfully deleted 5 keys from OCR.

    Node deletion operation successful.

    ¨jssdbn3,3¨ deleted successfully

    [root@jssdbn1 install]# exit

    logout

    [oracle@jssdbn1 bin]$ ./olsnodes -n -i

    jssdbn1 1       jssdbn1-vip

    jssdbn2 2       jssdbn2-vip

  至此,删除节点操作告以段落。

全文完,下载pdf版本请至:http://www.5ienet.com/mydesign/article.asp?/html/rid/114.html