暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORACLE19C IPV4+IPV6双栈配置实验

IT那活儿 2022-11-28
1642

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


背景

为了满足海量地址分配需求,IPV6替代IPV4已成为必然。新部署的ORACLE数据库已经直接使用IPV6,已部署的ORACLE数据库也正在更改IPV4使用IPV6。
数据库更改IPV4使用IPV6还涉及主机和客户端网络更改,如果同时实施所有网络更改,客户端多且网络比较复杂的环境,业务停机时间会很长从而影响业务正常使用。

为了应对这种情况,IPV4+IPV6双栈过渡技术也就应运而生,基本上新版本的软硬件都具备双栈配置。


ORACLE数据库配置IPV4+IPV6双栈

2.1 版本支持

Oracle Grid Infrastructure (GI)集群12C以前是不支持IPV6,如果使用早于 12.1.0.2 的 GI 版本,请先升级到12.1.0.2 或更高版本支持IPV4+IPV6双栈。

2.2 网络规划

本次实验双栈目标是将客户端访问网络配置更改,只更改SCANIP、VIPIP和PUBLICIP网络,SCAN、VIP和主机的名称不变,唯一更改是IP地址,更改网络不能滚动方式完成,因此必须中断数据库。
本次实验私有和私网存储单元访问网络不需要对它们进行任何更改,可以使用这些网络远程登录,完成本次实验网络更改。
对于IPV6,所有标准子网都是/64,要计算此IP地址的子网,只需获取地址的前4部分(fd15:4ba5:5a2b:1008)并将“::0”附加到它:fd15:4ba5:5a2b:1008::0。

2.3 获取GI集群配置信息

  • (grid)$ srvctl config network

  • (grid)$ srvctl config scan

  • (grid)$ srvctl config scan_listener

  • (grid)$ srvctl config vip -n rac19c1
  • (grid)$ srvctl config vip -n rac19c2

  • (grid)$ srvctl config listener

  • (grid)$ srvctl config nodeapps

  • (grid)$ srvctl config cvu

  • (grid)$ oifcfg getif

2.4 停止集群服务并检查状态

  • (grid)$ srvctl stop listener

  • (grid)$ srvctl stop scan_listener

  • (grid)$ srvctl stop database -db rac19c

  • (grid)$ srvctl stop cvu

  • (grid)$ srvctl stop vip -n rac19c1
  • (grid)$ srvctl stop vip -n rac19c2

  • (grid)$ srvctl stop scan
  • (grid)$ srvctl stop nodeapps
注意:如果有如下报错,可以强制停止服务。
----强制停止。
  •   (grid)$ crsctl stat res -t

2.5 配置hosts文件

建议数据库双栈使用DNS,为了使主机 VIP 和 SCAN 的主机名必须解析为IPv4和IPv6 IP地址。
本次实验环境没有DNS配置,只配置hosts,配置如下:
cp /etc/hosts /etc/hosts.bak
vi /etc/hosts
#Public IP
192.168.100.91 rac19c1
192.168.100.92 rac19c2
#Virtual IP
192.168.100.101 rac19c1-vip
192.168.100.102 rac19c2-vip
#Scan IP
192.168.100.111 rac19c-scan

#Public IP
fd15:4ba5:5a2b:1008::0100:0091 rac19c1_v6
fd15:4ba5:5a2b:1008::0100:0092 rac19c2_v6
#Virtual IP
fd15:4ba5:5a2b:1008::0100:0101 rac19c1_v6-vip
fd15:4ba5:5a2b:1008::0100:0102 rac19c2_v6-vip
#Scan IP
fd15:4ba5:5a2b:1008::0100:0111 rac19c_v6-scan

2.6 修改/etc/sysctl.conf

每个数据库节点上,/etc/sysctl.conf修改默ipv6设置。参数:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

1禁用0开启,参数redhat7默认开启,不需要修改,也可以写入sysctl.conf文件,运行“sysctl -p”生效。

2.7 更新/etc/sysconfig/network

每个数据库节点上都修改,添加以下参数:

2.8 修改ifcfg-eth0

每个数据库节点上都修改,确保ifcfg-eth0文件同时包含IPV6和IPV4网络配置。

2.9 重启网卡并验证

(root)# ifdown eth0;ifup eth0
(root)# ifconfig eth0

2.10 修改/etc/host.conf

用户需要使用DNS来解析SCAN,否则会发生一些问题。以往案例是通过下面的方式规避了这个问题,请参考:
在/etc/host.conf配置文件中添加"multi on"。

2.11 添加网络资源

群集中的一个节点上使用新的网络配置添加网络资源。
$su - root
(root)# srvctl modify network -netnum 1 -subnet fd15:4ba5:5a2b:1008::0/64/eth0

2.12 修改节点VIP

必须首先删除节点VIP,然后重新添加。

2.13 验证节点VIP

在这些更改之后,节点vip资源应该在USR_ORA_VIP属性中列出IPV4和IP6 IP,如下所示:

2.14 添加公共接口

使用 oifcfg 将新的公共接口添加到集群。
注意:您在指定网络时不能使用速记双冒号语法,除非您使用的是 12.1.0.2 BP13 或更高版本。

2.15 仅一个节点上将扫描集群名

注意:因为没有使用dns,临时把hosts文件里IPV6和IPV4的scanname(rac19c-scan)修改成一样,扫描完成后,修改IPV6的scanname为rac19c_v6-scan,如果hosts中IPV6和IPV4的scanname相同,GI运行期间会一直有报错。

2.16 在集群中的一个节点上修改网络资源以激活IPV6配置

$su - root
(root)# srvctl modify network -iptype both

2.17 开启集群并验证

2.18 最后一次检查

在一个节点上重新启动所有集群组件。

2.19 在一个节点上重新启动数据库

2.20 检查GI集群配置信息

2.21 客户端连接测试

测试成功,完成配置。


本文作者:付青启(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论