oracle 11gR2 rac删除节点和增加节点



你兴趣所在的地方,也就是你能力所在的地方。------------卡耐基


oracle 11gR2 rac删除节点和增加节点


环境:

    双节点RAC,其中一个节点因为本地盘损坏,导致系统完全损坏,系统需要重新安装

    操作系统:OracleLinux 6.5 x86_64


1,重新安装操作系统



2,重新配置服务器环境

   配置主机名

   vi /etc/hosts


   配置网络

   vi /etc/sysconfig/network

   vi /etc/sysconfig/network-script/ifcfg-eth0和/ifcfg-eth1

   

   修改参数

   vi /etc/pam.d/login

   vi /etc/security/limits.conf

   vi /etc/sysctl.conf


   关闭防火墙

   service iptables off

   chkconfig iptables off


   关闭selinux

   Selinux=disable


   关闭NetWorkerManager

   service NetworkerManager stop

   chkconfig NetworkerManager off


   配置用户信息

   groupadd -g 501 oinstall

   groupadd -g 502 dba

   groupadd -g 503 oper

   groupadd -g 504 asmadmin

   groupadd -g 505 asmoper

   groupadd -g 506 asmdba


   useradd -g oinstall -G dba,asmdba,oper,asmadmin,asmoper oracle

   passwd oracle

   

   useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid

   passwd oracle


   配置信任关系(保留节点和已损修复节点间进行)

   oracle用户和grid用户都需要执行                              

     a,生产公钥和私钥(两个节点都执行)                                                                                     

       su - oracle或者grid                                     

       mkdir ~/.ssh                                            

       ssh-****** -t rsa                                       

       ssh-****** -t dsa                                       

                                                               

     b,在保留节点上执行以下操作                                 

       cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys         

       cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys         

       ssh rac2 cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys

       ssh rac2 cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys 

       ssh rac1 cat ~/.ssh/id_rsa.pub >> ./.ssh/authorized_keys

       ssh rac1 cat ~/.ssh/id_dsa.pub >> ./.ssh/authorized_keys

       scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys  

                                                            

     c,在oracle和grid用户下面分别执行检验操作                 

       ssh rac1 date                                           

       ssh rac1-priv date                                      

       ssh rac2 date                                           

       ssh rac2-priv date



3,备份OCR

    root用户下执行:

    检测备份

    $GRID_HOME/bin/ocrconfig -showbackup

    

    手工备份

    # GRID_HOME/bin/ocrconfig -manualbackup     

    # GRID_HOME/bin/ocrdump /tmp/ocrdump_ocr.bak 



4,删除实例

    a,如果是正常删除节点,那么在要删除的节点上执行操作

        sqlplus / as sysdba

        shutdown immediate

       如果是节点损坏,则没有必要进行该操作

       

       在保留节点上执行:

        alter database disable thread 2;

       

    b,在保留节点上执行instance删除

        如果有图形界面支持,则可以运行dbca进行删除

        如果没有则采取静默删除

         dbca -silent -deleteInstance -nodeList db01 -gdbName newtbdb -instanceName db1 -sysDBAUserName sys -sysDBAPassword oracle

         Deleting instance                                                                       

         1% complete                                                                                                                 

         2% complete                                                                             

         6% complete                                                                             

         13% complete                                                                            

         20% complete                                                                            

         26% complete                                                                            

         33% complete                                                                            

         40% complete                                                                            

         46% complete                                                                            

         53% complete                                                                            

         60% complete                                                                            

         66% complete                                                                            

         Completing instance management.                                                         

         100% complete                                                                           

         Look at the log file "/oracle/app/oracle/cfgtoollogs/dbca/orcl.log" for further details.


    c,确认实例删除完成

        su - grid

        srvctl config -d newtbdb



5,RAC层面删除节点

    a,保留节点上执行

        srvctl status listener

        srvctl disable listener -n db01

        srvctl stop listener -n db01

        

    b,移除oracle home

        如果是正常删除节点,需要在被删除节点上执行一下操作,如果是损坏则不需要

         su - oracle

         cd $ORACLE_HOME/oui/bin

         ./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={db01(代表要删除的节点)}" -local

         卸载oracle db,删除oracle home

         $ORACLE_HOME/deinstall/deinstall -local

         

        保留节点上更新节点列表信息

         su - oracle

         cd $ORACLE_HOME/oui/bin

         ./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={db02(代表保留节点)}"


6,Grid Infrastructure层面删除节点(删除grid home)

    a,确认节点状态是否是Unpinned

        su - grid

        $olsnodes -s -t

        如果是pinned,请设为Unpinned

        crsctl unpin css -n db01

        

    b,在被删除节点禁用clusterware的application and daemons

       被删除节点上执行

       su - root

       cd $GRID_HOME/crs/install

       #./rootcrs.pl -deconfig -force

     

    c,在保留节点上进行节点删除

       su - root

       #crsctl delete node -n db01

       

    d,被删除节点更新节点信息

       su - grid

       cd $GRID_HOME/oui/bin

       ./runInstaller -updateNodeList ORACLE_HOME=$GRID_HOME "CLUSTER_NODES={zdnewtbdb01}" CRS=TRUE -silent -local

    

    e,被删除节点上卸载GI,删除grid home

       su - grid

       cd $GRID_HOME/deinstall

       ./deinstall -local

    

    f,保留节点更新节点信息

       su - grid

       cd $GRID_HOME/oui/bin

       ./runInstaller -updateNodeList ORACLE_HOME=$GRID_HOME "CLUSTER_NODES={zdnewtbdb01}" CRS=TRUE -silent   

       

    g,在保留节点上确认节点是否删除

       su - grid

       cluvfy stage -post nodedel -n zdnewtbdb01

       


节点增加

注意点:删除节点后,如果新增加的节点主机名和删除节点一样,可能会遇到如下错误:

   SEVERE:由于无法从命令行或响应文件中获取CLUSTER_NEW_NODES。。。。。。。。。。。。。

该问题是由于可能配置信息未完全清除,不能进行使用,可以换取另外一个nodename  

7,确保环境是否一样

    a,确保所有节点用户组,用户id一致

       id oracle

       id grid

       

    b,检查环境(用户grid和oracle下面都执行)

       cluvfy stage -pre nodeadd -n db03 -fixup -verbose

       cluvfy stage -post hwos -n db03

       cluvfy comp peer -refnode db02 -n db03 -orainv oinstall -osdba oinstall-verbose

       

8,Grid Infrastructure层面添加新节点

    a,执行添加节点,拷贝软件信息

       su - grid

       cd $ORACLE_HOME/oui/bin

       export IGNORE_PREADDNODE_CHECKS=Y

       ./addNode.sh -silent "CLUSTER_NEW_NODES={db03}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={db03-vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={db03-priv}"

       

    b,新增加节点上运行提示的脚本

       su - root

       sh /opt/oracle/app/oraInventory/oraInstRoot.sh

       sh $ORACLE_HOME/root.sh


9,RAC层面添加节点

    a,保留节点上执行添加节点,拷贝软件信息

       su - oracle

       cd $ORACLE_HOME/oui/bin

       export IGNORE_PREADDNODE_CHECKS=Y

       ./addNode.sh -silent "CLUSTER_NEW_NODES={db03}"

       

    b,新增加节点上运行提示的脚本

       su - root

       cd $ORACLE_HOME

       sh root.sh

       

10,新节点添加实例

    如果有图形界面支持,则运行dbca进行添加,否则:

       su - oracle

       dbca -silent -addInstance -nodeList db03 -gdbName newtbdb -instanceName db1 -sysDBAUserName sys -sysDBAPassword 123456


11,检查是否成功

    select * from gv$instance;



喜欢的朋友可以扫描以下二维码进行关注,公众号将每天更新文章:

oracle 11gR2 rac删除节点和增加节点