OracleRac跨网段修改Public IP/VIP/Private IP/Scan IP

本验证于测试环境,生产操作需谨慎
现为测试环境,机器有且仅有两个网卡存在,需求修改Public IP/VIP/Private IP/Scan IP,把Public IP/VIP/Scan IP的网段改为Private IP的网段,Private IP于Public IP网段互换。
先停掉两个节点的数据库

#(ORACLE)
$ srvctl stop database -d <db_name>

操作前最好先备份两个节点的profile.xml文件

#(GRID)
$ cd $GRID_HOME/gpnp/<hostname>/profiles/peer/
$ cp -p profile.xml profile.xml.bk

用grid用户在一个节点上关闭监听

#(GRID)
$ srvctl stop listener -n <hostname1>
$ srvctl stop listener -n <hostname2>
$ srvctl stop scan_listener

用grid用户在一节点关闭vip和scan vip

#(GRID)
$ srvctl stop vip -n <hostname1>
$ srvctl stop vip -n <hostname2>
$ srvctl stop scan

用grid用户在一节点更改私公网和网通讯接口

#(GRID)
$ oifcfg getif  --查看当前公网和网通讯接口

$ oifcfg  getifg
team1 20.8.91.0 global public
team2 16.0.100.0  global cluster_interconnect,asm
#(GRID)
$ oifcfg setif -global <私有网卡名>/<新私有网段>:cluster_interconnect,asm

$ oifcfg setif -global team1/20.8.91.0 :cluster_interconnect,asm
$ oifcfg setif -global team2 /16.0.100.0  :public

grid用户登陆一节点配置新的priv子网

#(GRID)
$ srvctl config listener -asmlistener
$ srvctl config asm  
--查看原ASMLISTENER

添加新的ASMLISTENER:

#(GRID)
$ srvctl add listener -asmlistener -l ASMNET1LSNR2_ASM -subnet 20.8.91.0 

删除旧的ASMLISTENER:

#(GRID)
$ lsnrctl stop ASMNET1LSNR_ASM
$ srvctl update listener -listener ASMNET1LSNR_ASM -asm -remove -force

root用户配置asmnetwork

$(ROOT)
# srvctl config asmnetwork
# srvctl stop asmnetwork
# srvctl remove asmnetwork -netnum 1
# srvctl add asmnetwork -netnum 1 -subnet 20.8.91.0 

修改后关闭集群自启动并关闭集群

$(ROOT)
# crsctl disable crs
# crsctl stop cluster -all

重启集群后root用户修改VIP资源为目标IP

$(ROOT)
# srvctl modify nodeapps -n  -A /255.255.255.0/<网卡>
# srvctl modify nodeapps -n  -A /255.255.255.0/<网卡>
验证是否修改成功
# srvctl config vip -n 
# srvctl config vip -n 

修改scan IP

$(ROOT)
# srvctl modify scan -n 

#srvctl modify scan -n yysd-scan

#(GRID)
$ srvctl modify scan_listener -u
$ srvctl config scan
$ srvctl config scan_listener

用户grid登陆任一节点启动vip资源和scan vip资源

#(GRID)
$ srvctl start vip -n <hostname1>
$ srvctl start vip -n <hostname2>
$ srvctl start scan
$ srvctl start listener -n <hostname1>
$ srvctl start listener -n <hostname2>
$ srvctl start scan_listener

你可能感兴趣的:(oracle,数据库)