点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
Public 网络
Public 网络用于客户端访问数据库服务,包括 Public IP, Public VIP 和 SCAN IP。
注意:操作之前确保所有节点都处于运行状态。
1.1 IP 网络配置变更
场景一:
IP 地址和子网需要修改; 服务器 & 集群 & 数据库实例不重启。
集群层修改接口配置:
# 如网络接口发生变更,先添加新接口,再删除原接口。
oifcfg setif -global ens42/XXX.XXX.29.0:public
oifcfg delif -global ens41/XXX.XXX.28.0
# 如网络接口无变化,先删除接口,再重新添加。
oifcfg delif -global ens41/XXX.XXX.28.0
oifcfg setif -global ens41/XXX.XXX.29.0:public
编辑 etc/hosts 文件,修改 Public IP,Public VIP 和 SCAN IP 为新地址,在所有节点执行:
# #############
# # IPv4 #
# #############
# PublicNetwork- (ens41)
XXX.XXX.29.71rhel79-19-a1
XXX.XXX.29.72rhel79-19-a2
# PublicVirtualIP (VIP) addresses- (ens41:1)
XXX.XXX.29.81rhel79-19-a1-vip
XXX.XXX.29.82rhel79-19-a2-vip
# SingleClientAccessName (SCAN) - (ens41:2)
XXX.XXX.29.70 ORA19C-A-SCAN
停止监听和 VIP 资源:
srvctl stop listener -listener LISTENER -node rhel79-19-a1
srvctl stop listener -listener LISTENER -node rhel79-19-a2
srvctl stop vip -vip rhel79-19-a1-vip
srvctl stop vip -vip rhel79-19-a2-vip
操作系统层修改接口 IP 地址和子网,在所有节点执行。
更新 network 资源,使用 root 用户执行:
srvctl modify network -subnet XXX.XXX.29.0/255.255.255.0
更新 VIP 资源,使用 root 用户执行:
srvctl modify vip -node rhel79-19-a1 -netnum 1 -address rhel79-19-a1-vip/255.255.255.0
srvctl modify vip -node rhel79-19-a2 -netnum 1 -address rhel79-19-a2-vip/255.255.255.0
启动监听和 VIP 资源:
srvctl start vip -vip rhel79-19-a1-vip
srvctl start vip -vip rhel79-19-a2-vip
srvctl start listener -listener LISTENER -node rhel79-19-a1
srvctl start listener -listener LISTENER -node rhel79-19-a2
更新 SCAN 资源:
srvctl stop scan_listener
srvctl stop scan
# by root.
srvctl modify scan -scanname ORA19C-A-SCAN
srvctl start scan
srvctl start scan_listener
场景二:
服务器迁移至新环境; IP 地址和子网需要修改。
关闭并禁用 CRS 自启动:
crsctl stop crs
crsctl disable crs
迁移服务器至新环境后,在操作系统层修改 IP 地址。
编辑 /etc/hosts 文件, 修改 Public IP,Public VIP 和 SCAN IP 为新地址,在所有节点执行:
# #############
# # IPv4 #
# #############
# PublicNetwork- (ens41)
XXX.XXX.26.71rhel79-19-a1
XXX.XXX.26.72rhel79-19-a2
# PublicVirtualIP (VIP) addresses- (ens41:1)
XXX.XXX.26.81rhel79-19-a1-vip
XXX.XXX.26.82rhel79-19-a2-vip
# SingleClientAccessName (SCAN) - (ens41:2)
XXX.XXX.26.70 ORA19C-A-SCAN
启动一个节点 CRS:
crsctl start crs
集群层修改接口配置:
# 如网络接口发生变更,先添加新接口,再删除原接口。
oifcfg setif -global ens42/XXX.XXX.22.0:public
oifcfg delif -global ens41/XXX.XXX.29.0
# 如网络接口无变化,先删除接口,再重新添加。
oifcfg delif -global ens41/XXX.XXX.29.0
oifcfg setif -global ens41/XXX.XXX.22.0:public
更新 network 资源,使用 root 用户执行:
srvctl modify network -subnet XXX.XXX.22.0/255.255.255.0
更新 SCAN 资源,使用 root 用户执行:
srvctl stop scan_listener
srvctl stop scan
# by root
srvctl modify scan -scanname ORA19C-A-SCAN
srvctl start scan
srvctl start scan_listener
关闭当前节点 CRS,重新启动集群:
crsctl stop crs
crsctl start crs
1.2 IPv4 转换至 IPv4 & IPv6
编辑 /etc/hosts 文件,添加 IPv6 部分内容:
# #############
# # IPv4 #
# #############
# Public Network - (ens33)
XXX.XXX.21.71 rhel79-19-a1
XXX.XXX.21.72 rhel79-19-a2
# Public Virtual IP (VIP) addresses - (ens33:1)
XXX.XXX.21.81 rhel79-19-a1-vip
XXX.XXX.21.82 rhel79-19-a2-vip
# Single Client Access Name (SCAN)
XXX.XXX.21.70 ORA19C-A-SCAN
# #############
# # IPv6 #
# #############
# Public Network - (ens33)
FD01::71 rhel79-19-a1
FD01::72 rhel79-19-a2
# Public Virtual IP (VIP) addresses - (ens33:1)
FD01::81 rhel79-19-a1-vip
FD01::82 rhel79-19-a2-vip
# Single Client Access Name (SCAN)
FD01::70 ORA19C-A-SCAN
添加 IPv6 子网,使用 root 用户执行:
srvctl modify network -subnet fd01::0/64
添加 IPv6 VIP,使用 root 用户执行:
srvctl modify vip -node rhel79-19-a1 -netnum 1 -address rhel79-19-a1-vip/64
srvctl modify vip -node rhel79-19-a2 -netnum 1 -address rhel79-19-a2-vip/64
添加 IPv6 网络资源至 OCR,使用 grid 用户执行:
oifcfg setif -global ens33/fd01::0:public
添加 IPv6 地址至 SCAN VIP,使用 root 用户执行:
srvctl modify scan -scanname ORA19C-A-SCAN
将网络类型由 IPv4 转换至 IPv4 & IPv6,使用 root 用户执行:
srvctl modify network -netnum 1 -iptype both
1.3 IPv4 转换至 IPv6
首先执行 IPv4 转换至 IPv4 & IPv6 操作步骤 。
编辑 etc/hosts 文件,去除 IPv4 部分内容:
# #############
# # IPv6 #
# #############
# Public Network - (ens33)
FD01::71 rhel79-19-a1
FD01::72 rhel79-19-a2
# Public Virtual IP (VIP) addresses - (ens33:1)
FD01::81 rhel79-19-a1-vip
FD01::82 rhel79-19-a2-vip
# Single Client Access Name (SCAN)
FD01::70 ORA19C-A-SCAN
将网络类型由 IPv4 & IPv6 转换至 IPv6,使用 root 用户执行:
srvctl modify network -iptype ipv6
修改 VIP,使用 root 用户执行:
srvctl modify vip -node rhel79-19-a1 -address rhel79-19-a1-vip/64 -netnum 1
srvctl modify vip -node rhel79-19-a2 -address rhel79-19-a2-vip/64 -netnum 1
修改 SCAN,使用 root 用户执行:
srvctl modify scan -scanname ORA19C-A-SCAN
从 OCR 中删除 IPv4 网络资源,使用 grid 用户执行:
oifcfg delif -global ens33/XXX.XXX.21.0
Private 网络
Private 网络主要用于节点之间网络心跳,数据库缓存融合和 ASM 实例通信。
2.1 场景说明
服务器迁移至新环境; IP 地址 & 子网 & 网络接口需要修改。
关闭并禁用 CRS 自启动:
crsctl stop crs
crsctl disable crs
迁移服务器至新环境,重新配置网络。
<略>
2.2 编辑 GPNP PROFILE
以 exclusive 模式启动其中一个节点 CRS:
crsctl start crs -excl -nocrs
编辑 GPNP Profile,根据需要修改 Sequence Number, IP 网络号和网络适配器接口名称。
编辑完成后,将 GPNP Profile 拷贝至其他节点覆盖原文件:
cd $ORACLE_HOME/gpnp/`hostname`/profiles/peer
cp -pprofile.xml profile.bak
gpnptool unsign -p=profile.bak -o-
gpnptool getpval -p=profile.bak -prf_sq -o-
218
gpnptool edit -net2:net_ip='10.0.2.0' -net2:net_ada='ens36' -prf_sq=219 -p=profile.bak -o=profile.bak -ovr
gpnptool sign -p=profile.bak -w=file:$ORACLE_HOME/gpnp/`hostname`/wallets/peer/ -o=profile.new
gpnptool put -p=profile.new
关闭当前节点 CRS 并重启:
crsctl stop crs
crsctl start crs
2.3 启动集群
关闭当前节点 CRS 并启动集群:
crsctl stop crs
crsctl start crs
IPv4/IPv6 转换
适用于 IPv4/IPv6 互相转换,根据需要替换 IP 地址类型即可。
3.1 检查 Private 网络
接口配置:
oifcfg getif
ens33 XXX.XXX.21.0 global public
ens34 fd03::0 global cluster_interconnect,asm
ens35 fd04::0 global cluster_interconnect,asm
ens36 fd05::0 global cluster_interconnect,asm
ens37 fd06::0 global cluster_interconnect,asm
ASMNETWORK
srvctl config asmnetwork
ASM LISTENER
srvctl config listener -asmlistener
3.2 备份 GPNP Profile
在所有节点执行备份,使用 grid 用户:
cd $ORACLE_HOME/gpnp/`hostname`/profiles/peer
cp -p profile.xml home/grid/profile.xml.bak
3.3 删除资源和配置
注:
如果只有一个 Private 网络,此步骤可忽略。
如果有多个 Private 网络,建议只保留一个,删除其他接口配置及关联的资源。
ASM LISTENER
srvctl stop listener -listener ASMNET2LSNR_ASM
srvctl stop listener -listener ASMNET3LSNR_ASM
srvctl stop listener -listener ASMNET4LSNR_ASM
srvctl remove listener -listener ASMNET2LSNR_ASM
srvctl remove listener -listener ASMNET3LSNR_ASM
srvctl remove listener -listener ASMNET4LSNR_ASM
ASMNETWORK
srvctl stop asmnetwork -netnum 2
srvctl stop asmnetwork -netnum 3
srvctl stop asmnetwork -netnum 4
# by root
srvctl remove asmnetwork -netnum 2
srvctl remove asmnetwork -netnum 3
srvctl remove asmnetwork -netnum 4
接口配置:
oifcfg delif -global ens35/fd04::0
oifcfg delif -global ens36/fd05::0
oifcfg delif -global ens37/fd06::0
3.4 编辑 GPNP PROFILE
确保所有节点正常运行,在其中一个节点编辑 GPNP Profile,根据需要修改 Sequence Number, IP 网络号和网络适配器接口名称:
cd $ORACLE_HOME/gpnp/`hostname`/profiles/peer
cp -pprofile.xml profile.bak
gpnptool unsign -p=profile.bak -o-
gpnptool getpval -p=profile.bak -prf_sq -o-
206
gpnptool edit -net1:net_ip='10.0.0.0' -net1:net_ada='ens34' -prf_sq=207 -p=profile.bak -o=profile.bak -ovr
gpnptool sign -p=profile.bak -w=file:$ORACLE_HOME/gpnp/`hostname`/wallets/peer/ -o=profile.new
gpnptool put -p=profile.new
编辑完成后在每个节点检查:
gpnptool get -o-
3.5 重启集群
关闭所有节点 CRS 并重新启动:
crsctl stop crs
crsctl start crs
3.6 检查接口配置
确认编辑 GPNP PROFILE 操作已经生效。
如果出现 "PRIF-30: Network information in OCR and GPnP profile differs" 提示,使用 oifcfg 删除多余的接口:
oifcfg getif
更新资源:
ASM LISTENER
srvctl update listener -listener ASMNET1LSNR_ASM -asm -remove -force
ASMNETWORK
srvctl stop asmnetwork -netnum 1
# by root
srvctl remove asmnetwork -netnum 1
srvctl add asmnetwork -netnum 1 -subnet 10.0.0.0
srvctl start asmnetwork -netnum 1
ASM LISTENER
srvctl add listener -listener ASMNET1LSNR_ASM -asmlistener -subnet 10.0.0.0
srvctl start listener -listener ASMNET1LSNR_ASM
添加配置和资源:
注:如果只有一个 Private 网络,此步骤可忽略。
接口配置:
oifcfg setif -global ens35/10.0.1.0:cluster_interconnect,asm
oifcfg setif -global ens36/10.0.2.0:cluster_interconnect,asm
oifcfg setif -global ens37/172.16.1.0:cluster_interconnect,asm
ASMNETWORK
# by root
srvctladdasmnetwork-netnum 2 -subnet 10.0.1.0
srvctladdasmnetwork-netnum 3 -subnet 10.0.2.0
srvctladdasmnetwork-netnum 4 -subnet 172.16.1.0
srvctlstartasmnetwork-netnum 2
srvctlstartasmnetwork-netnum 3
srvctlstartasmnetwork-netnum 4
ASM LISTENER
srvctl addlistener-listenerASMNET2LSNR_ASM-asmlistener-subnet 10.0.1.0
srvctladdlistener-listenerASMNET3LSNR_ASM-asmlistener-subnet 10.0.2.0
srvctladdlistener-listenerASMNET4LSNR_ASM-asmlistener-subnet 172.16.1.0
srvctlstartlistener-listenerASMNET2LSNR_ASM
srvctlstartlistener-listenerASMNET3LSNR_ASM
srvctlstartlistener-listener ASMNET4LSNR_ASM

本文作者:智 源(上海新炬中北团队)
本文来源:“IT那活儿”公众号





