最近呢,由于开发需求,需要在公司的12c rac环境上添加一组IPV6的IP,使得开发工程师可以测试IPv6的相关情况。
IPV4从1981年开始使用,由于长度的原因,使得其约能提供40亿条IP 地址。这在当时是绰绰有余的,随着互联网和物联网的发展,手表、手机甚至智能水杯都会占据一个IP。所以40亿个IP现在根本不够用,这也是推行IPV6的其中一个重要原因。
根据ORACLE的白皮书,oracle从12c开始完全支持IPV6,所以呢,我们现在就来试试,如何在不影响现有IPV4网络的情况下,增加一组IPv6的网络!。
Step1ADD 2nd network
1.1提前配好/etc/hosts
划线部分为新的IP
[oracle@RAC2~]$ cat /etc/hosts
192.168.238.65RAC1
192.168.238.66RAC2
192.168.238.70RAC1-vip
192.168.238.71RAC2-vip
172.16.100.1RAC1-priv
172.16.100.2RAC2-priv
192.168.238.67RAC-scan
2001::192:168:238:66 RAC1-6
2001::192:168:238:65 RAC2-6
2001::192:168:238:70 RAC1-vip6
2001::192:168:238:71 RAC2-vip6
2001::192:168:238:67 RAC-scan6
1.2提前添加新的网卡,eth2,两个节点分别配上新的IP

1.3查看并add网络
[grid@RAC2~]$ oifcfg iflist
eth0192.168.238.0
eth1172.16.100.0
eth1169.254.128.0
eth1169.254.0.0
virbr0192.168.122.0
eth12001::172:16💯0
eth22001::192:168:238:0
【##注意,此处eth0/1为老的public和private,eth2是新加的网卡,作为新的public IP】
[grid@RAC2~]$oifcfg getif
eth0192.168.238.0global public
eth1172.16.100.0global cluster_interconnect,asm
添加IPV6网段的网卡到public ip
[grid@RAC2~]$ oifcfg setif -global eth2/2001::192:168:238:0:public
[grid@RAC2~]$ oifcfg getif
eth0192.168.238.0global public
eth1172.16.100.0global cluster_interconnect,asm
eth22001::192:168:238:0global public
添加第二组网络
[root@mynode]#/oracle/grid/bin/srvctl add network -netnum2-subnet [2001::192:168:238:0]/112/eth2
【若出现报错:PRCN-3005: Failed to add or use registered network 2 with network interfaces ‘eth2’ because the network was already registered for network interfaces ‘eth0’
原因:因为之前误操作,将其他网卡eth0添加进了network 2
solution:/oracle/grid/bin/srvctl remove network -netnum 2】
[root@mynode]#/oracle/grid/bin/srvctl config network -netnum 2
Network 2 exists
Subnet IPv4:
Subnet IPv6:2001:0:0:0:192:168:238:0/112/eth2, static
Ping Targets:
Network is enabled
Network is individually enabled on nodes:
Network is individually disabled on nodes:
Step2ADD node VIPs 添加vip到集群
[root@mynode]# srvctl add vip -node RAC1-netnum2-address RAC1-vip6/112
[root@mynode]# srvctl add vip -node RAC2-netnum2-address RAC2-vip6/112
Step3添加第二组网络的监听
[grid@mynode]$ srvctl add listener -listener listnet2-netnum2-endpoints “TCP:1523”
Step4添加第二组网络的scan
[root@RAC2~]#/oracle/grid/bin/srvctl add scan -scannameRAC-scan6-netnum 2
【注意,名字要和原来的不一样。取自
/etc/hosts
2001::192:168:238:67RAC-scan6】
Step5开启第二组网络的vip
[root@mynode]# srvctl start vip -vip RAC1-vip6[root@mynode]# srvctl start vip -vip RAC2-vip6
Step6开启第二组网络的监听
[grid@mynode]$ srvctl start listener -listener listnet2[grid@mynode]$ srvctl status listener -listener listnet2Listener LISTNET2 is enabledListener LISTNET2 is running on node(s): salessrv145,salessrv146.
Step7开启第二组网络的scan
[root@mynode]# srvctl start scan -netnum 2
Step8添加并开启第二组网络的scan监听(as grid user)
grid@mynode]$srvctl add scan_listener -netnum2-listener scanlsnr_2-endpoints"TCP:1523"
【"TCP:1523"表示端口】
grid@mynode]$srvctl start scan_listener -netnum 2
Step9检查scan的配置


Step10修改remote listener和local listener



可以看到,可以正常连接!实验到此就正式结束了,实现的效果就是,开发的小伙伴们既可以使用IPV4登陆,也可以使用IPV6登陆!
不得不说的是,在实际生产中,很少出现一组IPv6一组IPv4共存的情况,一般都是在建立新环境的过程中直接使用IPV6的IP,或者将老的IPV4替换成IPv6。好了,不多说,我们下期再见!

作者:美创运维中心数据库服务团队
文章来源:https://t.cj.sina.com.cn/articles/view/2950093642/afd6db4a00100rpul?from=tech&subch=otech




