Oracle 10g RAC 如何配置 VIP IPMP

metalink note 283107.1介绍了如何设置VIP的IPMP,此处记录一下设置过程。

o Existing 10g RAC installation
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      For existing 10g RAC installations, use srvctl to modify the VIP to use all the NIC‘s 
      within the same IPMP group.  The following example is configuring the VIP for jphp1580, 
      to use the two NIC‘s specified in the command line.

        # srvctl stop nodeapps -n jpsun1580
        # srvctl modify nodeapps -n jpsun1580 -o /u01/app/oracle/product/10gdb -A 146.56.78.1/255.255.252.0/ce0\|ce1
        # srvctl start nodeapps -n jpsun1580

节点1修改过程

  • 查看节点1当前情况
oracle@ofs00mlctsc01:~ $> srvctl config nodeapps -n ofs00mlctsc01 -a
VIP exists.: /ofs00mlctsc01-vip/10.99.32.11/255.255.255.0/bnx1
oracle@ofs00mlctsc01:~ $> srvctl config nodeapps -n ofs00mlctsc01
ofs00mlctsc01 mlctscdb1 /app/oracle/product/10.2
oracle@ofs00mlctsc01:~ $> ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
bnx0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.99.32.10 netmask ffffff00 broadcast 10.99.32.255
        groupname prod-ipmp
bnx1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname prod-ipmp
bnx1:1: flags=1040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4> mtu 1500 index 3
        inet 10.99.32.11 netmask ffffff00 broadcast 10.99.32.255
bnx2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 192.168.5.10 netmask ffffff00 broadcast 192.168.5.255
        groupname priv-ipmp
bnx3: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 5
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname priv-ipmp
oracle@ofs00mlctsc01:~ $> crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....scdb.db application    ONLINE    ONLINE    ofs0...sc02 
ora....b1.inst application    ONLINE    ONLINE    ofs0...sc01 
ora....b2.inst application    ONLINE    ONLINE    ofs0...sc02 
ora....SM1.asm application    ONLINE    ONLINE    ofs0...sc01 
ora....01.lsnr application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.gsd application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.ons application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.vip application    ONLINE    ONLINE    ofs0...sc01 
ora....SM2.asm application    ONLINE    ONLINE    ofs0...sc02 
ora....02.lsnr application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.gsd application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.ons application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.vip application    ONLINE    ONLINE    ofs0...sc02 

其中bnx0和bnx1是IPMP组prod-ipmp组的两个成员,目前OCR中记录的VIP使用的网卡是bnx1,因此VIP 
10.99.32.11被加到了bnx1上。
  • 停止nodeapps,并修改nodeapps设置
oracle@ofs00mlctsc01:~ $> srvctl stop nodeapps -n ofs00mlctsc01
oracle@ofs00mlctsc01:~ $> crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....scdb.db application    ONLINE    ONLINE    ofs0...sc02 
ora....b1.inst application    ONLINE    ONLINE    ofs0...sc01 
ora....b2.inst application    ONLINE    ONLINE    ofs0...sc02 
ora....SM1.asm application    ONLINE    ONLINE    ofs0...sc01 
ora....01.lsnr application    OFFLINE   OFFLINE               
ora....c01.gsd application    OFFLINE   OFFLINE               
ora....c01.ons application    OFFLINE   OFFLINE               
ora....c01.vip application    OFFLINE   OFFLINE               
ora....SM2.asm application    ONLINE    ONLINE    ofs0...sc02 
ora....02.lsnr application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.gsd application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.ons application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.vip application    ONLINE    ONLINE    ofs0...sc02 
oracle@ofs00mlctsc01:~ $> srvctl modify nodeapps -n ofs00mlctsc01 -o /app/oracle/product/10.2 -A 10.99.32.11/255.255.255.0/bnx0\|bnx1
PRKO-2117 : This command should be executed as the system privilege user.
这个命令需要用root执行
oracle@ofs00mlctsc01:~ $> su - root
Password: 
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
You have new mail.
-bash-3.00# /app/oracle/product/10.2/bin/srvctl modify nodeapps -n ofs00mlctsc01 -o /app/oracle/product/10.2 -A 10.99.32.11/255.255.255.0/bnx0\|bnx1
****ORACLE_HOME environment variable not set!
    ORACLE_HOME should be set to the main
    directory that contains Oracle products.
    Set and export ORACLE_HOME, then re-run.
需要先设备ORACLE_HOME环境变量
-bash-3.00# export ORACLE_HOME=/app/oracle/product/10.2
-bash-3.00# /app/oracle/product/10.2/bin/srvctl modify nodeapps -n ofs00mlctsc01 -o /app/oracle/product/10.2 -A 10.99.32.11/255.255.255.0/bnx0\|bnx1
-bash-3.00# exit
logout
  • 检查并启动nodeapps的配置
oracle@ofs00mlctsc01:~ $> srvctl config nodeapps -n ofs00mlctsc01 -a
VIP exists.: /ofs00mlctsc01-vip/10.99.32.11/255.255.255.0/bnx0:bnx1
oracle@ofs00mlctsc01:~ $> srvctl config nodeapps -n ofs00mlctsc01
ofs00mlctsc01 mlctscdb1 /app/oracle/product/10.2

oracle@ofs00mlctsc01:~ $> srvctl start nodeapps -n ofs00mlctsc01
oracle@ofs00mlctsc01:~ $> crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....scdb.db application    ONLINE    ONLINE    ofs0...sc02 
ora....b1.inst application    ONLINE    ONLINE    ofs0...sc01 
ora....b2.inst application    ONLINE    ONLINE    ofs0...sc02 
ora....SM1.asm application    ONLINE    ONLINE    ofs0...sc01 
ora....01.lsnr application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.gsd application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.ons application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.vip application    ONLINE    ONLINE    ofs0...sc01 
ora....SM2.asm application    ONLINE    ONLINE    ofs0...sc02 
ora....02.lsnr application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.gsd application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.ons application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.vip application    ONLINE    ONLINE    ofs0...sc02 

oracle@ofs00mlctsc01:~ $> ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
bnx0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.99.32.10 netmask ffffff00 broadcast 10.99.32.255
        groupname prod-ipmp
bnx0:1: flags=1040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4> mtu 1500 index 2
        inet 10.99.32.11 netmask ffffff00 broadcast 10.99.32.255
bnx1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname prod-ipmp
bnx2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 192.168.5.10 netmask ffffff00 broadcast 192.168.5.255
        groupname priv-ipmp
bnx3: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 5
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname priv-ipmp

修改了OCR中的配置以后,VIP回到了bnx0上。

节点2修改过程与节点1类似

oracle@ofs00mlctsc02:~ $> crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....scdb.db application    ONLINE    ONLINE    ofs0...sc02 
ora....b1.inst application    ONLINE    ONLINE    ofs0...sc01 
ora....b2.inst application    ONLINE    ONLINE    ofs0...sc02 
ora....SM1.asm application    ONLINE    ONLINE    ofs0...sc01 
ora....01.lsnr application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.gsd application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.ons application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.vip application    ONLINE    ONLINE    ofs0...sc01 
ora....SM2.asm application    ONLINE    ONLINE    ofs0...sc02 
ora....02.lsnr application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.gsd application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.ons application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.vip application    ONLINE    ONLINE    ofs0...sc02 
 
oracle@ofs00mlctsc02:~ $> srvctl config nodeapps -n ofs00mlctsc02
ofs00mlctsc02 mlctscdb2 /app/oracle/product/10.2
oracle@ofs00mlctsc02:~ $> srvctl config nodeapps -n ofs00mlctsc02 -a
VIP exists.: /ofs00mlctsc02-vip/10.99.32.21/255.255.255.0/bnx1
oracle@ofs00mlctsc02:~ $> crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....scdb.db application    ONLINE    ONLINE    ofs0...sc02 
ora....b1.inst application    ONLINE    ONLINE    ofs0...sc01 
ora....b2.inst application    ONLINE    ONLINE    ofs0...sc02 
ora....SM1.asm application    ONLINE    ONLINE    ofs0...sc01 
ora....01.lsnr application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.gsd application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.ons application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.vip application    ONLINE    ONLINE    ofs0...sc01 
ora....SM2.asm application    ONLINE    ONLINE    ofs0...sc02 
ora....02.lsnr application    OFFLINE   OFFLINE               
ora....c02.gsd application    OFFLINE   OFFLINE               
ora....c02.ons application    OFFLINE   OFFLINE               
ora....c02.vip application    OFFLINE   OFFLINE               

oracle@ofs00mlctsc02:~ $> su - root                               
Password: 
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
You have new mail.
-bash-3.00# export ORACLE_HOME=/app/oracle/product/10.2
-bash-3.00# /app/oracle/product/10.2/bin/srvctl modify nodeapps -n ofs00mlctsc02 -o /app/oracle/product/10.2 -A 10.99.32.21/255.255.255.0/bnx0\|bnx1
-bash-3.00# exit
logout
oracle@ofs00mlctsc02:~ $> srvctl start nodeapps -n ofs00mlctsc02

oracle@ofs00mlctsc02:~ $> crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....scdb.db application    ONLINE    ONLINE    ofs0...sc02 
ora....b1.inst application    ONLINE    ONLINE    ofs0...sc01 
ora....b2.inst application    ONLINE    ONLINE    ofs0...sc02 
ora....SM1.asm application    ONLINE    ONLINE    ofs0...sc01 
ora....01.lsnr application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.gsd application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.ons application    ONLINE    ONLINE    ofs0...sc01 
ora....c01.vip application    ONLINE    ONLINE    ofs0...sc01 
ora....SM2.asm application    ONLINE    ONLINE    ofs0...sc02 
ora....02.lsnr application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.gsd application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.ons application    ONLINE    ONLINE    ofs0...sc02 
ora....c02.vip application    ONLINE    ONLINE    ofs0...sc02 
oracle@ofs00mlctsc02:~ $> ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
bnx0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.99.32.20 netmask ffffff00 broadcast 10.99.32.255
        groupname prod-ipmp
bnx0:1: flags=1040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4> mtu 1500 index 2
        inet 10.99.32.21 netmask ffffff00 broadcast 10.99.32.255
bnx1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname prod-ipmp
bnx2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 192.168.5.20 netmask ffffff00 broadcast 192.168.5.255
        groupname priv-ipmp
bnx3: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 5
        inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
        groupname priv-ipmp
在修改过程中并未停止数据库,因此此操作应该是可以在线做。不过在操作过程中listener和VIP会被停掉,这一点需要注意。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。