本文我们主要介绍了Linux系统下实现Oracle 10g数据库RAC功能的双网卡绑定与解除绑定的实现方法,接下来就让我们来一起了解一下这一过程吧。
一、软硬件环境概述
在虚拟机VMware GSX Server上安装两套redhet Enterprise-R4-U4系统rac1和rac2,虚拟共享存储, 在此基础上搭建的oracle10g RAC环境。
1、rac1两块网卡eth0:192.168.2.111,eth1:10.10.10.11。
2、rac2两块网卡eth0:192.168.2.112,eth1:10.10.10.12。
/etc/hosts文件:
127.0.0.1 |
localhost |
|
192.168.2.111 |
rac1.mycorpdomain.com |
rac1 |
192.168.2.13 |
rac1-vip.mycorpdomain.com |
rac1-vip |
10.10.10.11 |
rac1-priv.mycorpdomain.com |
rac1-priv |
192.168.2.112 |
rac2.mycorpdomain.com |
rac2 |
192.168.2.14 |
rac2-vip.mycorpdomain.com |
rac2-vip |
10.10.10.12 |
rac2-priv.mycorpdomain.com |
rac2-priv |
二、添加网卡eth2
1、在rac1和rac2上分别以host-only的模式添加一块网卡
a、Edit virtual machine
b、Add进入add hardware wizard,下一步
c、选择ethernet adapter 下一步
d、选择host-only,完成
2、启动虚拟机,此时ifconfig –a可以看见多出了一个网卡eth2,只是没有IP地址,在network configuration图形界面的hardware选项页可以看见eth2,status为OK。
三、在rac1和rac2上停数据库和crs
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- 停数据库实例
- #./srvctl stop instance –d devdb –i ora.devdb.devd1.inst
- #./srvctl stop instance –d devdb –i ora.devdb.devd2.inst
- 停数据库
- #./srvctl stop database –d devdb
- 停ASM实例
- #./srvctl stop asm –n rac1
- #./srvctl stop asm –n rac2
- 停vip,gsd,listener,ons
- #./srvctl stop nodeapps –n rac1
- #./srvctl stop nodeapps –n rac2
四、更改网卡配置绑定网卡
更改eth0和eth2的配置文件,将eth0和eth2绑定为一块虚拟网卡bond0.
1、首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0
- #cd /etc/sysconfig/network-scripts/
- #vi ifcfg-bond0
- DEVICE=bond0
- BOOTPROTO=none
- BROADCAST=192.168.2。255
- IPADDR=192.168.2.111
- NETMASK=255.255.255.0
- NETWORK=192.168.2.0
- ONBOOT=yes
- TYPE=Ethernet
- USERCTL=no
- PEERDNS=yes
- GATEWAY=192.168.168.250
- IPV6INIt=no
2、更改eth0的配置文件ifcfg-eth0,更改后的内容如下
- Vi ifcfg-eth0
- DEVICE=eth0
- BOOTPROTO=none
- ONBOOT=yes
- TYPE=Ethernet
- USERCTL=no
- MASTER=bond0
- SLAVE=yes
3、添加eth2的配置文件ifcfg-eth2
- Vi ifcfg-eth2
- DEVICE=eth2
- BOOTPROTO=none
- ONBOOT=yes
- TYPE=Ethernet
- USERCTL=no
- MASTER=bond0
- SLAVE=yes
4、因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module。在/etc/modules.conf文件中添加如下内容(如果没有该文件,则新建一个):
- alias bond0 bonding
- options bond0 miimon=100 mode=0 primary=eth0
其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡,mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到,primary=eth0表示主备模式下eth0为默认的active网卡。
5、在/etc/rc.local中加入modprobe bonding miimon=100 mode=0
6、在rac2上也进行同样的修改
7、重启后生效,ifconfig -a查看可以发现多了bond0这个网卡,配置了原来eth0的ip配置,在network configuration的图形界面可以发现也多了bond0
五、启动crs的gsd和ons
在rac1和rac2上停数据库和crs,只启动crs的gsd和ons
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- 停数据库实例
- #./srvctl stop instance –d devdb –i ora.devdb.devd1.inst
- #./srvctl stop instance –d devdb –i ora.devdb.devd2.inst
- 停数据库
- #./srvctl stop database –d devdb
- 停ASM实例
- #./srvctl stop asm –n rac1
- #./srvctl stop asm –n rac2
- 停vip,gsd,listener,ons
- #./srvctl stop nodeapps –n rac1
- #./srvctl stop nodeapps –n rac2
- #./crs_start ora.rac1.gsd
- #./crs_start ora.rac1.ons
- #./crs_start ora.rac2.gsd
- #./crs_start ora.rac2.ons
六、在rac1以root用户更改VIP到bond0网卡
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- #./srvctl modify nodeapps –n rac1 –A 192.168.2.13/255.255.255.0/bond0
- #./srvctl modify nodeapps –n rac1 –A rac1-vip/255.255.255.0/bond0
七、在rac2以root用户更改VIP到bond0网卡
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- #./srvctl modify nodeapps –n rac2 –A 192.168.2.14/255.255.255.0/bond0
- #./srvctl modify nodeapps –n rac2 –A rac2-vip/255.255.255.0/bond0
八、确认更改后的vip配置
- #./srvctl config nodeapps –n rac1 –a
- VIP exists.:/rac1-vip.mycorpdomain.com/192.168.2.13/255.255.255.0/bond0
- #./srvctl config nodeapps –n rac2 –a
- VIP exists.:/rac2-vip.mycorpdomain.com/192.168.2.14/255.255.255.0/bond0
九、更改完成,启动数据库相关进程
- #./srvctl start nodeapps –n rac1
- #./srvctl start nodeapps –n rac2
- #./crs_start ora.rac1.ASM1.asm
- #./crs_start ora.rac2.ASM2.asm
- #./crs_start ora.devdb.db
十、查看crs状态
#crs_stat –t
从上面可以看出所有的进程状态都正常,绑定成功。
#p#
解除双网卡绑定
十一、停数据库和crs
在rac1和rac2上停数据库和crs
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- 停数据库实例
- #./srvctl stop instance –d devdb –i ora.devdb.devd1.inst
- #./srvctl stop instance –d devdb –i ora.devdb.devd2.inst
- 停数据库
- #./srvctl stop database –d devdb
- 停ASM实例
- #./srvctl stop asm –n rac1
- #./srvctl stop asm –n rac2
- 停vip,gsd,listener,ons
- #./srvctl stop nodeapps –n rac1
- #./srvctl stop nodeapps –n rac2
十二、更改网卡配置
1、首先在/etc/sysconfig/network-scripts/还原eth0的配置文件ifcfg-eth0
- #vi /etc/sysconfig/network-scripts/ ifcfg-eth0
- DEVICE=eth0
- BOOTPROTO=none
- BROADCAST=192.168.2。255
- IPADDR=192.168.2.111
- NETMASK=255.255.255.0
- NETWORK=192.168.2.0
- ONBOOT=yes
- TYPE=Ethernet
- USERCTL=no
- PEERDNS=yes
- GATEWAY=192.168.168.250
- IPV6INIt=no
2、删除bond0的配置文件
#rm ifcfg-bond0
3、删除或者注销eth2的配置文件ifcfg-eth2
- # vi ifcfg-eth2
- #DEVICE=eth2
- #BOOTPROTO=none
- #ONBOOT=yes
- #TYPE=Ethernet
- #USERCTL=no
- #MASTER=bond0
- #SLAVE=yes
4、在/etc/modules.conf文件中注销如下内容:
- #vi /etc/modules.conf
- #alias bond0 bonding
- #options bond0 miimon=100 mode=0 primary=eth0
5、在/etc/rc.local文件中注销如下内容
- #vi /etc/rc.local
- # modprobe bonding miimon=100 mode=0
6、在rac2上做同样的修改,然后reboot两个节点。
十三、在rac1和rac2上停数据库和crs,只启动crs的gsd和ons
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- 停数据库实例
- #./srvctl stop instance –d devdb –i ora.devdb.devd1.inst
- #./srvctl stop instance –d devdb –i ora.devdb.devd2.inst
- 停数据库
- #./srvctl stop database –d devdb
- 停ASM实例
- #./srvctl stop asm –n rac1
- #./srvctl stop asm –n rac2
- 停vip,gsd,listener,ons
- #./srvctl stop nodeapps –n rac1
- #./srvctl stop nodeapps –n rac2
- #./crs_start ora.rac1.gsd
- #./crs_start ora.rac1.ons
- #./crs_start ora.rac2.gsd
- #./crs_start ora.rac2.ons
十四、以root用户更改rac1和rac2的vip到eth0
- #cd /u01/app/oracle/product/10.2.0/crs_1/bin
- #./srvctl modify nodeapps –n rac1 –A 192.168.2.13/255.255.255.0/eth0
- #./srvctl modify nodeapps –n rac1 –A rac1-vip/255.255.255.0/eth0
- #./srvctl modify nodeapps –n rac2 –A 192.168.2.14/255.255.255.0/eth0
- #./srvctl modify nodeapps –n rac2 –A rac1-vip/255.255.255.0/eth0
十五、确认更改后的vip配置
- #./srvctl config nodeapps –n rac1 –a
- VIP exists.:/rac1-vip.mycorpdomain.com/192.168.2.13/255.255.255.0/eth0
- #./srvctl config nodeapps –n rac2 –a
- VIP exists.:/rac2-vip.mycorpdomain.com/192.168.2.14/255.255.255.0/eth0
十六、更改完成,启动数据库相关进程
- #./srvctl start nodeapps –n rac1
- #./srvctl start nodeapps –n rac2
- #./crs_start ora.rac1.ASM1.asm
- #./crs_start ora.rac2.ASM2.asm
- #./crs_start ora.devdb.db
十七、 查看crs状态
#crs_stat –t
从上面可以看出所有的进程状态都正常,解除绑定成功。
关于Linux系统下Oracle 10g数据库实现RAC功能双网卡绑定与解除绑定的实现方法就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
- 数据库集群中间件CJDBC详细介绍
- 在SQL Server数据库中插入图像的实现方法
- SQL Server 2005无法连接到本地服务器的解决
- SQL Server 2000在Windows7 旗舰版中的安装配置
- 用SQL Server 2005存储过程实现IP地址归属地查询