1.禁止相关CRS资源的启动,停止这些资源(vip,listener,scan,scan_listener,database)

   1.1  所有节点上禁止数据库启动,停止数据库

          [grid@rac1 ~]$ srvctl disable database -d racdb

          [grid@rac1 ~]$ srvctl stop database -d racdb

   1.2  禁止所有节点的LISTNER的启动,停止所有节点上的LISTENER

          [grid@rac1 ~]$ srvctl disable listener

          [grid@rac1 ~]$ srvctl stop listener

   1.3  禁止所有节点的VIP的启动,停止所有节点上的VIP(注意:a.操作VIP的时候提供的/etc/hosts中配置的是VIP的名字;b.只有root用户才能DISABLE VIP资源)

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl disable vip -i "rac1-vip"
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl disable vip -i "rac2-vip

          [grid@rac1 ~]$ srvctl stop vip -n rac1

          [grid@rac1 ~]$ srvctl stop vip -n rac2

   1.4  禁止所有节点的SCAN_LISTENER的启动,停止所有节点上的SCAN_LISTENER

          [grid@rac1 ~]$ srvctl disable scan_listener

          [grid@rac1 ~]$ srvctl stop scan_listener

   1.5  禁止所有节点的SCAN的启动,停止所有节点上的SCAN

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl disable scan 
          [grid@rac1 ~]$ srvctl stop scan

2.网络基础设施配置(交换机,路由器,DNS)

  这里要保证主机配置更改好能能够正长访问网络资源,DNS服务器中的相关条目要反映新的IP

3.操作系统网络配置修改(/etc/hosts,ifcfg-eth0,/etc/resolve.conf)

4.CRS 网络相关资源的重新配置和启动(集群的public网络和网卡设置,vip配置和LISTENER得启动,scan的重新配置和SCAN_LISTENER的启动)
  第3步操作完成,配置生效后才能进行下面的操作;另外public ip,vip 不需要特别的配置,修改完/etc/hosts文件中的对应条目后

集群回自动使用新的IP,ORACLE应该主要使用主机名来配置这些IP的;

  4.1 集群的public网络和网卡设置

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/oifcfg getif
          eth0  10.3.0.0  global  public
          eth1  10.4.0.0  global  cluster_interconnect

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/oifcfg delif -global eth0
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/oifcfg setif -global eth0/10.5.0.0:public
       修改完成后在所有几点调用下面的命令验证更改是否在所有节点上生效
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/oifcfg getif
          eth1  10.4.0.0  global  cluster_interconnect

          eth0  10.5.0.0  global  public

   4.2  vip配置和LISTENER得启动

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl enable vip -i "rac1-vip"
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl enable vip -i "rac2-vip"

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl start vip -n rac1
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl start vip -n rac2

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl enable listener
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl start listener

   4.3 scan的重新配置和SCAN_LISTENER的启动
       经过试验发现scan中的subnet依赖于 资源ora.net1.network的USR_ORA_SUBNET属性,所以修改SCAN前先修改该属性

       修改资源ora.net1.network的USR_ORA_SUBNET属性为新的网络号

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/crsctl modify res "ora.net1.network"  -attr "USR_ORA_SUBNET=10.5.0.0"  不修改这里,监听始终只能在一个节点启动,

ora.rac02.vip

      1        ONLINE  INTERMEDIATE rac01                    FAILED OVER   

监听日志报错:Not all endpoints are registered for listener LISTENE

       修改rac-scan的值,srvctl只提供了一个用域名来修改scan配置的选项,猜测ORACLE是通过DNS来获取对应的IP从而实现配置的

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl modify scan -n 192.168.0.180


          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl enable scan

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl start scan

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl enable scan_listener


          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl start scan_listener



   4.4 启动数据库,完成oracle rac 环境public 网络的切换。

          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl enable database -d racdb
          [root@rac1 ~]# /u01/app/11.2.0/grid/bin/srvctl start database -d racdb

6.测试数据库连通