立即注册 登录
关注IT社区 返回首页

o0JSP的个人空间 http://u.gzit.org/?27 [收藏] [复制] [分享] [RSS]

日志

Linux/Unix下Oracle RAC 11gr2 删除节点操作过程(根据白皮书整理)

已有 1006 次阅读2015-8-20 10:53 |个人分类:Oracle| Oracle, 白皮书, Linux

        由于有套库准备要将一些节点踢出,所以今早翻了一下白皮书,重新梳理了一下过程。为了避免每次都看得那么麻烦,也方便其他同学,就顺便将梳理的东西发布到这里,希望对其他同学有所帮助。全文并非按白皮书直译,基本上属于偷懒模式的整理,错漏在所难免,请大家多多见谅。


说明:前期建议先将需要删除节点的实例进行删除,当然,如果不嫌删除实例也不影响下文中关于删除RAC节点的相关操作。只是如果你不先进行删除,则实例的相关配置信息将保留在删除的节点上,只是它将不再运行。

在以下文档中,0步骤为删除实例的步骤,从1步骤开始为提出集群节点的过程。

0、删除实例信息
        1> 通过DBCA将需要删除节点上的实例通过图形界面进行删除。
        2> 通过查询GV$LOG视图检查相关的实例的REDO进程是否已经关闭,如果尚未关闭,可通过如下示范指令进行关闭:
        SQL> ALTER DATABASE DISABLE THREAD 2;
    其中TREAD 2需要根据实际要删除的节点进行修改。
    3> 确认实例是否已经从OCR信息库中进行删除。指令如下:
    srvctl config database -d db_unique_name
            4>  删除ORACLE RAC
                    4.1    如果在需要删除的节点上仍然有监听正在运行,则需要先对该监听服务进行停止、删除。在集群中任何一个节点上执行如下指令即可:
                    srvctl disable listener -l listener_name -n name_of_node_to_delete
                    srvctl stop listener -l listener_name -n name_of_node_to_delete
                    4.2     在需要删除的节点上,于ORACLE_HOME/oui/bin目录下执行如下指令更新inventory信息。指令如下:
                    ./runInstaller -updateNodeList ORACLE_HOME=Oracle_home_location"CLUSTER_NODES={name_of_node_to_delete}" -local
        4.3    根据安装目录是共享文件还是本地文件,分别进行如下操作:
           共享文件系统:
           在任何一个需要删除的节点上于ORACLE_HOME/oui/bin目录下执行如下操作:
                              $ ./runInstaller -detachHome ORACLE_HOME=Oracle_home_location
                              
                              本地文件系统:
                               $ORACLE_HOME/deinstall/deinstall -local
                    4.4    在任何不需要删除的节点上,于ORACLE_HOME/oui/bin目录下 执行如下指令:
                              $ ./runInstaller -updateNodeList ORACLE_HOME=Oracle_home_location "CLUSTER_NODES={remaining_node_list}"
           如果安装目录是共享文件,则需要在上述的命令中添加-cfs选项,例如:
           $ ./runInstaller -updateNodeList ORACLE_HOME=Oracle_home_location "CLUSTER_NODES={remaining_node_list}" -cfs

1、确认GRID_HOME正确设置到Oracle Clusterware软件的安装路径

2、确定想要删除的节点是否是在活跃状态及是否被pin住。(使用root用户或者Oracle Clusterware安装用户执行脚本)
olsnodes -s -t
如果要删除的节点是被pin的状态,则通过执行crsctl unpin css命令进行解pin。然后继续执行下一步操作。

3、关闭在要删除节点上的Oracle Clusterware应用和进程。在要删除节点上使用root用户从GRID_HOME/crs/install目录下执行rootcrs.pl脚本。(在删除之前,需要确保EMAGENT,例如:smctl stop dbconsole)
./rootcrs.pl -deconfig -force
    PS:
    1> 如果你要删除多个节点,则需要在所有需要删除的节点上执行以上脚本。
        2> 如果你要删除所有节点,则需要在指令最后添加-lastnode选项,改选项将会对OCR和VOTING DISKS进行清理。例如:
             # ./rootcrs.pl -deconfig -force -lastnode
    如果在以上指令中没有添加-force选项,或者要删除的节点无法访问导致你无法执行上述指令,则相应的VIP资源将继续保持运行状态。这个时候,你需要手工执行停止、删除VIP资源的命令。使用root用户在任何不需要删除的节点上执行如下指令:
    srvctl stop vip -i vip_name -f
    srvctl remove vip -i vip_name -f
     vip_name为你要删除节点的名称,如果你需要删除多个节点的VIP资源,则上述指令中需要用双引号(")将多个vip_name引起来,并且每个名称之间需要使用逗号进行分割。例如:srvctl stop vip -i "vip_name1,vip_name2-f

4、在任何一个不需要删除的节点上,使用root用户在GRID_HOME/bin目录下执行如下指令,将要删除的节点踢出集群。
crsctl delete node -n node_to_be_deleted

5、在你需要删除的节点上,使用安装Oracle Clusterware的用户在GRID_HOME/oui/bin目录下执行如下命令:
./runInstaller -updateNodeList ORACLE_HOME=Grid_home "CLUSTER_NODES={node_to_be_deleted}" CRS=TRUE -silent -local

6、根据安装目录是共享文件还是本地文件,分别进行如下操作:
    1>如果是共享文件。
    A、在需要删除的节点上执行如下命令:
    Grid_home/perl/bin/perl Grid_home/crs/install/rootcrs.pl -deconfig
    B、在GRID_HOME/oui/bin目录下分离GRID HOME:
    ./runInstaller -detachHome ORACLE_HOME=Grid_home -silent -local
    C、手工删除如下文件:
    /etc/oraInst.loc
    /etc/oratab
    /etc/oracle/
    /opt/ORCLfmap/
    $OraInventory/
    
    2>如果是本地文件。则在需要删除的节点上,于GRID_HOME/deinstall/deinstall目录下执行如下指令即可:
    deinstall –local

7、在任何一个不需要删除的节点上,在GRID_HOME/oui/bin目录下执行如下指令:
./runInstaller -updateNodeList ORACLE_HOME=Grid_home "CLUSTER_NODES={remaining_nodes_list}" CRS=TRUE -silent
    请注意:
    1> 节点列表中为不需要删除的节点列表,ORACLE_HOME参数中指定的值为GRID_HOME的路径。
    2> 你需要再执行一次类似以上的脚本,在这次要执行脚本中,将ORACLE_HOME参数中指定的值换成ORACLE_HOME的路径,并且去掉CRS=TRUE -silent的内容。例如:
    ./runInstaller -updateNodeList ORACLE_HOME=ORACLE_HOME"CLUSTER_NODES={remaining_nodes_list}"
    PS:如果安装目录是共享文件,则需要在上述的命令中添加-cfs选项,例如:
    ./runInstaller -updateNodeList ORACLE_HOME=ORACLE_HOME"CLUSTER_NODES={remaining_nodes_list}" -cfs

8、执行如下的CVU命令来确认节点是否已经成功从集群中删除。例如:
cluvfy stage -post nodedel -n node_list [-verbose]


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

Archiver|关注IT ( 粤ICP备06100905号 )

GMT+8, 2018-12-13 02:26 , Processed in 0.089501 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部