RAC環境下修改IP —— 10G

 由於種種原因,可能會遇到需要改服務器IP的情況,完全屬於吃飽了撐着的事情,DBA就慘了,單實例如果有用dbconsole,還得重新刪掉重建才能使用,rac環境就更悲催了!想想任某人對IT行業的評價,笑而不語…

修改前:這裏用DNS解析就改DNS,沒用DNS就改各個節點的hosts文件

[root@rac1 ~]# cat /etc/hosts
127.0.0.1               localhost.localdomain localhost
192.168.1.41            rac1.yang.com      rac1
192.168.122.41          rac1-priv.yang.com rac1-priv
192.168.1.141           rac1-vip.yang.com  rac1-vip

192.168.1.42            rac2.yang.com      rac2
192.168.122.42          rac2-priv.yang.com rac2-priv
192.168.1.142           rac2-vip.yang.com  rac2-vip 

修改後:

 [root@rac1 ~]# cat /etc/hosts
127.0.0.1               localhost.localdomain localhost
192.168.2.41            rac1.yang.com      rac1
192.168.123.41          rac1-priv.yang.com rac1-priv
192.168.2.141           rac1-vip.yang.com  rac1-vip

192.168.2.42            rac2.yang.com      rac2
192.168.123.42          rac2-priv.yang.com rac2-priv
192.168.2.142           rac2-vip.yang.com  rac2-vip

1:關閉數據庫實例,asm實例,nodeapps

  1. [oracle@rac2 ~]$ crs_stat -t -v  
  2. Name           Type           R/RA   F/FT   Target    State     Host          
  3. ----------------------------------------------------------------------  
  4. ora.rac.db     application    0/0    0/1    ONLINE    ONLINE    rac1          
  5. ora....c1.inst application    0/5    0/0    ONLINE    ONLINE    rac1          
  6. ora....c2.inst application    0/5    0/0    ONLINE    ONLINE    rac2          
  7. ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1          
  8. ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1          
  9. ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1          
  10. ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1          
  11. ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1          
  12. ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2          
  13. ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2          
  14. ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2          
  15. ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2          
  16. ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2          
  17. [oracle@rac2 ~]$ srvctl stop database -d rac -o immediate  
  18. [oracle@rac2 ~]$ crs_stop -all 

2:操作系統級別修改ip地址,重啓2個節點,發現VIP和listener不正常

  1. [oracle@rac1 ~]$ ip a |grep inet |grep -v 'inet6'  
  2.     inet 127.0.0.1/8 scope host lo  
  3.     inet 192.168.2.41/24 brd 192.168.2.255 scope global eth0  
  4.     inet 192.168.123.41/24 brd 192.168.123.255 scope global eth1  
  5.  
  6. [oracle@rac2 ~]$ ip a |grep inet |grep -v 'inet6'  
  7.     inet 127.0.0.1/8 scope host lo  
  8.     inet 192.168.2.42/24 brd 192.168.2.255 scope global eth0  
  9.     inet 192.168.123.42/24 brd 192.168.123.255 scope global eth1  
  10.  
  11. [oracle@rac1 ~]$ crs_stat -t -v  
  12. Name           Type           R/RA   F/FT   Target    State     Host          
  13. ----------------------------------------------------------------------  
  14. ora.rac.db     application    0/0    0/1    ONLINE    ONLINE    rac1          
  15. ora....c1.inst application    0/5    0/0    ONLINE    ONLINE    rac1          
  16. ora....c2.inst application    0/5    0/0    ONLINE    ONLINE    rac2          
  17. ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1          
  18. ora....C1.lsnr application    0/5    0/0    ONLINE    OFFLINE                 
  19. ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1          
  20. ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1          
  21. ora.rac1.vip   application    0/0    0/0    ONLINE    OFFLINE                 
  22. ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2          
  23. ora....C2.lsnr application    0/5    0/0    ONLINE    OFFLINE                 
  24. ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2          
  25. ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2          
  26. ora.rac2.vip   application    0/0    0/0    ONLINE    OFFLINE 

3:修改2個節點的listener.ora文件,重啓監聽器,發現一切正常,難道這樣就ok了?

  1. [oracle@rac1 ~]$ cd $ORACLE_HOME/network/admin  
  2. [oracle@rac1 admin]$ grep -v '^#' listener.ora   
  3. LISTENER_RAC1 =  
  4.   (DESCRIPTION_LIST =  
  5.     (DESCRIPTION =  
  6.       (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.yang.com)(PORT = 1521)(IP = FIRST))  
  7.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.41)(PORT = 1521)(IP = FIRST))  
  8.     )  
  9.   )  
  10.  
  11. SID_LIST_LISTENER_RAC1 =  
  12.   (SID_LIST =  
  13.     (SID_DESC =  
  14.       (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)  
  15.       (SID_NAME = rac1)  
  16.     )  
  17.     (SID_DESC =  
  18.       (SID_NAME = PLSExtProc)  
  19.       (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)  
  20.       (PROGRAM = extproc)  
  21.     )  
  22.   )  
  23.  
  24. [oracle@rac1 ~]$ srvctl stop listener -n rac1  
  25. [oracle@rac1 ~]$ srvctl stop listener -n rac2  
  26. [oracle@rac1 ~]$ srvctl start listener -n rac1  
  27. [oracle@rac1 ~]$ srvctl start listener -n rac2  
  28.  
  29. [oracle@rac1 ~]$ crs_stat -t -v  
  30. Name           Type           R/RA   F/FT   Target    State     Host          
  31. ----------------------------------------------------------------------  
  32. ora.rac.db     application    0/0    0/1    ONLINE    ONLINE    rac1          
  33. ora....c1.inst application    0/5    0/0    ONLINE    ONLINE    rac1          
  34. ora....c2.inst application    0/5    0/0    ONLINE    ONLINE    rac2          
  35. ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1          
  36. ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1          
  37. ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1          
  38. ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1          
  39. ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1          
  40. ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2          
  41. ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2          
  42. ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2          
  43. ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2          
  44. ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2   

4:查看下VIP,發現依然是舊的,在2個節點上使用oifcfg改(使用root用戶),這裏估計也可以使用vipca工具改

  1. [oracle@rac1 ~]$ ip a |grep inet |grep -v 'inet6'  
  2.     inet 127.0.0.1/8 scope host lo  
  3.     inet 192.168.2.41/24 brd 192.168.2.255 scope global eth0  
  4.     inet 192.168.1.141/24 brd 192.168.1.255 scope global eth0:1  
  5.     inet 192.168.123.41/24 brd 192.168.123.255 scope global eth1  
  6.  
  7. [root@rac1 ~]# cd /u01/app/oracle/product/10.2.0/crs_1/bin/  
  8. [root@rac1 bin]# ./oifcfg iflist  
  9. eth0  192.168.2.0  
  10. eth0  192.168.1.0  
  11. eth1  192.168.123.0  
  12.  
  13. [root@rac1 bin]# ./oifcfg getif  
  14. [root@rac1 bin]# ./oifcfg setif -global eth0/192.168.2.0:public  
  15. [root@rac1 bin]# ./oifcfg setif -global eth1/192.168.123.0:cluster_interconnect  
  16. [root@rac1 bin]# ./oifcfg getif  
  17. eth0  192.168.2.0  global  public  
  18. eth1  192.168.123.0  global  cluster_interconnect  
  19.  
  20. [root@rac2 bin]# ./oifcfg iflist  
  21. eth0  192.168.2.0  
  22. eth0  192.168.1.0  
  23. eth1  192.168.123.0  
  24.  
  25. [root@rac2 bin]# ./oifcfg getif  
  26. eth0  192.168.2.0  global  public  
  27. eth1  192.168.123.0  global  cluster_interconnect  
  28.  
  29. [oracle@rac1 ~]$ srvctl stop database -d rac -o immediate  
  30. [oracle@rac1 ~]$ srvctl stop listener -n rac1  
  31. [oracle@rac1 ~]$ srvctl stop listener -n rac2  
  32.  
  33. [root@rac1 bin]# ./srvctl modify nodeapps -n rac1  -A 192.168.2.141/255.255.255.0/eth0  
  34. [root@rac2 bin]# ./srvctl modify nodeapps -n rac2  -A 192.168.2.142/255.255.255.0/eth0 

5:修改完,發現新的VIP和舊的VIP都綁定在網卡上,於是重啓2個節點,重啓後只綁定了新的VIP,nodeapps,asm和數據庫實例都隨着crs的啓動而自動online!(這裏忘記使用service network restart命令測試,失敗!)

  1. [oracle@rac1 ~]$ crs_start -all  
  2. [oracle@rac1 ~]$ ip a |grep 'inet' |grep -v 'inet6'  
  3.     inet 127.0.0.1/8 scope host lo  
  4.     inet 192.168.2.41/24 brd 192.168.2.255 scope global eth0  
  5.     inet 192.168.1.141/24 brd 192.168.1.255 scope global eth0:1  
  6.     inet 192.168.2.141/24 brd 192.168.2.255 scope global secondary eth0:2  
  7.     inet 192.168.123.41/24 brd 192.168.123.255 scope global eth1  
  8.  
  9. [root@rac1 ~]# uptime   
  10.  20:24:25 up 6 min,  1 user,  load average: 2.80, 3.15, 1.50  
  11. [root@rac1 ~]# ip a |grep inet |grep -v inet6  
  12.     inet 127.0.0.1/8 scope host lo  
  13.     inet 192.168.2.41/24 brd 192.168.2.255 scope global eth0  
  14.     inet 192.168.2.141/24 brd 192.168.2.255 scope global secondary eth0:1  
  15.     inet 192.168.123.41/24 brd 192.168.123.255 scope global eth1  
  16.  
  17. [root@rac1 ~]# cd /u01/app/oracle/product/10.2.0/crs_1/bin/  
  18. [root@rac1 bin]# ./oifcfg iflist  
  19. eth0  192.168.2.0  
  20. eth1  192.168.123.0  
  21. [root@rac1 bin]# ./oifcfg getif  
  22. eth0  192.168.2.0  global  public  
  23. eth1  192.168.123.0  global  cluster_interconnect  
  24.  
  25. [root@rac1 bin]# su - oracle  
  26. [oracle@rac1 ~]$ crs_stat -t -v  
  27. Name           Type           R/RA   F/FT   Target    State     Host          
  28. ----------------------------------------------------------------------  
  29. ora.rac.db     application    0/0    0/1    ONLINE    ONLINE    rac2          
  30. ora....c1.inst application    0/5    0/0    ONLINE    ONLINE    rac1          
  31. ora....c2.inst application    0/5    0/0    ONLINE    ONLINE    rac2          
  32. ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1          
  33. ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1          
  34. ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1          
  35. ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1          
  36. ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1          
  37. ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2          
  38. ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2          
  39. ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2          
  40. ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2          
  41. ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2  

6:測試下,發現正常!

  1. [oracle@rhel6 admin]$ tail -17 tnsnames.ora   
  2. RAC =  
  3.   (DESCRIPTION =  
  4.     (ADDRESS_LIST =  
  5.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.141)(PORT = 1521))  
  6.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.142)(PORT = 1521))  
  7.     )  
  8.     (LOAD_BALANCE=YES)  
  9.     (FAILOVER=YES)  
  10.     (CONNECT_DATA =  
  11.       (SERVICE_NAME = rac.yang.com)  
  12.       (FAILOVER_MODE =  
  13.        (TYPE = SELECT)  
  14.        (METHOD = BASIC)  
  15.        (RETRIES = 180)  
  16.        (DELAY = 5))  
  17.     )  
  18.   )  
  19.  
  20. [oracle@rhel6 admin]$ sqlplus sys/123456@rac as sysdba  
  21. SQL*Plus: Release 10.2.0.1.0 - Production on Mon Mar 26 20:28:02 2012  
  22. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  23.  
  24. Connected to:  
  25. Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production  
  26. With the Partitioning, Real Application Clusters, OLAP, Data Mining  
  27. and Real Application Testing options  
  28.  
  29. SQL> select instance_name from v$instance;  
  30.  
  31. INSTANCE_NAME  
  32. ----------------  
  33. rac1 

備註:這裏rac未使用網格控制器管理,後期可以研究下,修改完IP後,如何向網格控制器重新註冊!數據庫版本是10.2.0.5,稍後也將測試下11g的rac,另外修改前還是備份下OCR比較保險點,有閒功夫的話,數據庫也備份一次吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章