Oracle的oifcfg命令用于管理RAC环境的网络接口。OIFCFG不仅可以显示节点的网络接口信息,还可以安全稳妥的修改网络接口的IP地址,比如
oifcfg - Oracle接口配置工具。
用法: oifcfg iflist [-p [-n]]
oifcfg setif {-node| -global} {/:}...
oifcfg getif [-node| -global] [ -if[/] [-type] ]
oifcfg delif [-node| -global] [[/]]
oifcfg [-help]
-为通信网络所知的主机名
-系统中配置的接口的名称
-接口的子网地址
-接口类型{ cluster_interconnect | public | storage }
用例:
root@SHYQ-PS-MV-SV03-CDMPDB1:/#oifcfggetif -global
en0 172.16.14.0 global public
en3 1.1.14.0 global cluster_interconnect
bash-2.03$ oifcfg iflist
ce0 172.25.0.0
ce0 172.25.198.0
ce1 10.0.0.0
bash-2.03$ oifcfg iflist -p
ce0 172.25.0.0 PRIVATE
ce0 172.25.198.0 PRIVATE
ce1 10.0.0.0 PRIVATE
bash-2.03$ oifcfg iflist -p -n
ce0 172.25.0.0 PRIVATE 255.255.0.0
ce0 172.25.198.0 PRIVATE 255.255.255.0
ce1 10.0.0.0 PRIVATE 255.255.255.0
利用getif可以获取当前节点的配置:
bash-2.03$ oifcfg getif
ce0 172.25.0.0 global public
ce1 10.0.0.0 global cluster_interconnect
bash-2.03$ oifcfg getif -if ce0
ce0 172.25.0.0 global public
bash-2.03$ oifcfg getif -if ce1
ce1 10.0.0.0 global cluster_interconnect
利用oifcfg删除添加网络接口的时候,oracle用户的权限不够,需要切换为root用户执行:
bash-2.03# /data/oracle/product/10.2/crs/bin/oifcfg delif -global ce1
bash-2.03# /data/oracle/product/10.2/crs/bin/oifcfg setif -global ce1/10.0.0.0:cluster_interconnect
bash-2.03# /data/oracle/product/10.2/crs/bin/oifcfg getif -global
ce0 172.25.0.0 global public
ce1 10.0.0.0 global cluster_interconnect
@H_403_154@11GR2 RAC modify vip,public ip,private ip,scan vip
实施步骤
1 修改目的
根据业务的需求,需要由原来的临时IP改为生产ip,以下为调整前后对应的IP表
调整前对应ip表
--------------------------------------------------------------
主机名 类型 IP 地址 网卡端口
P570a public ip 192.168.128.10 en0
p570a-vip vip 192.168.128.12 en0
p570a-priv private ip 172.168.128.10 en2
p570b public ip 192.168.128.11 en0
p570b-vip vip 192.168.128.13 en0
p570b-priv private ip 172.168.128.11 en2
scan-vip scan 192.168.128.100 en0
调整后对应ip表
主机名 类型 IP 地址 网卡端口
P570a public ip 10.76.31.112 en0
p570a-vip vip 10.76.31.113 en0
p570a-priv private ip 192.76.31.113 en8
p570b public ip 10.76.31.114 en0
p570b-vip vip 10.76.31.115 en0
p570b-priv private ip 192.76.31.115 en8
scan-vip scan 10.76.31.111 en0
网卡端口可以用ifconfig -a 显示出来
2 修改public ip,vip,scan vip
2.1 停止两边节点数据库,监听,并且停止crs
A、grid用户执行如下操作
$ srvctl stop database -d gdcdc -o immediate
$ srvctl stop listener -n p570a
$ srvctl stop listener -n p570b
B、root用户
cd /grid/app/11.2.0/grid/bin
./crsctl stop crs
可以用ps �Cef|grep grid看进程是否完全关闭
2.2 修改两边节点的/etc/hosts文件
修改前先做个备份
cp /etc/hosts /etc/hosts.bak
修改后如下所示:
10.76.31.112 p570a
10.76.31.113 p570a-vip
172.168.128.10 p570a-priv
10.76.31.114 p570b
10.76.31.115 p570b-vip
172.168.128.11 p570b-priv
10.76.31.111 scan-vip
注意这里私网ip地址暂时先不做修改,修改private ip时再修改
2.3 修改两个节点上的public ip,255);"> 2.3.1修改p570a节点 public ip
用smitty命令修改物理ip
smitty tcpip
选择en0
修改ip为 10.76.31.112,网关为10.76.31.1
掩码为 255.255.255.0
2.3.2修改P570b节点 public ip
第4页共11页
修改ip为 10.76.31.114,网关为10.76.31.1
掩码为255.255.255.0
2.3.3两边节点启动crs,用oifcfg 命令修改public ip
A、root用户停止crs,一边节点做即可(注意)
cd /grid/app/11.2.0/grid/bin
./crsctl start crs
B、root用户检查修改
先用oifcfg getif查看当前设置
./oifcfg getif
en0 192.168.128.0 global public
en2 172.168.128.0 global cluster_interconnect
修改
./oifcfg delif -global en0
./oifcfg setif -global en0/10.76.31.0:public
两边节点确认
en0 10.76.31.0 global public
2.3.4修改VIP
A、关闭database,grid或者oracle用户操作
root用户下运行以下命令
cd /grid/app/11.2.0/grid/bin
./srvctl stop database -d gdcdc -o immediate
B、检查VIP设置信息(grid用户操作)
用srvctl config vip 检查vip设置
$ srvctl config vip -n p570a
VIP exists.:p570a
VIP exists.: /p570a-vip/192.168.128.12/255.255.255.0/eth0
$ srvctl config vip -n p570b
VIP exists.:p570b
VIP exists.: /p570b-vip/192.168.128.13/255.255.255.0/eth0
C、停止vip 服务和修改vip(grid用户操作)
./srvctl stop listener -n p570a
./srvctl stop listener -n p570b
./srvctl stop vip -n p570a
./srvctl stop vip -n p570b
./srvctl modify nodeapps -n p570a -A 10.76.31.113/255.255.255.0/en0
./srvctl modify nodeapps -n p570b -A 10.76.31.115/255.255.255.0/en0
D、确认是否修改成功
./srvctl config vip -n p570a
VIP exists.:p570a
VIP exists.:/p570a-vip/10.76.31.113/255.255.255.0/en0
./srvctl config vip -n p570b
VIP exists.:p570b
VIP exists.:/p570b-vip/10.76.31.115/255.255.255.0/en0
E、启动vip服务,监听,数据库
./srvctl start vip -n p570a
./srvctl start vip -n p570b
./srvctl start listener -n p570a
./srvctl start listener -n p570b
./srvctl start database �Cd gdcdc
2.3.5 两边节点修改local_listener参数
该部分应该是在修改完VIP之后,重启数据库由oraagent自动注册进去。
Show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=192.
168.128.12)(PORT=1521))))
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.76.31.113)(PORT=1521))))' scope=both sid='gdcdc1';
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.76.31.115)(PORT=1521))))' scope=both sid='gdcdc2';
2.3.6修改SCAN VIP
1.srvctl config scan 查看当前vip设置
config scan SCAN name: 192.168.128.100,Network: 1/192.168.128.0/255.255.255.0/en0 SCAN VIP name: scan1,IP: /scan-vip/192.168.128.100
2.用root用户停止scan_listener 和sacn vip
$GRID_HOME/bin/srvctl stop scan_listener
$GRID_HOME/bin/srvctl stop scan
$GRID_HOME/bin/srvctl status scan
SCAN VIP scan1 is enabled SCAN VIP scan1 is not running
$GRID_HOME/bin/srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is not running
3.用root用户修改scan vip
$GRID_HOME/bin/srvctl modify scan -n10.76.31.111
4.检查是否修改成功
config scan SCAN name: 10.76.31.111,Network: 1/10.76.31.0/255.255.255.0/en0 SCAN VIP name: scan1,IP: /scan-vip/10.76.31.111
5.启动scan和scan_listener
$GRID_HOME/bin/srvctl start scan
$GRID_HOME/bin/srvctl start scan_listener
3 修改 private ip
3.1 确保crs集群是打开的
可以用olsnodes �Cs 检查集群的状态
./olsnodes -s
P570a Active
P570b Active
3.2 用oifcfg getif 检查和oifcfg setif修改当前private 设置
修改前设置
修改private ip,新网络端口号为en8,如果没有修改端口号,则设置的值还是为en2
./oifcfg setif -global en8/192.76.31.0:cluster_interconnect
./oifcfg delif -global en2
修改后设置
en8 192.76.31.0 global cluster_interconnect
3.3 两边节点停止database和crs
./srvctl stop database -d gdcdc -o immedate
./crsctl stop crs
检查是否关闭
ps -ef|grep grid
ps -ef|grep oracle
3.4 修改两边节点/etc/hosts表
172.168.128.10 p570a-priv
172.168.128.11 p570b-priv
修改为
192.76.31.113 p570a-priv
192.76.31.115 p570b-priv
3.5 修改p570a节点 private ip
用smitty命令修改物理私网ip
选择en8
修改ip为 192.76.31.113 掩码为 255.255.255.0
3.6 修改P570b节点 private ip
修改ip为 192.76.31.115 掩码为 255.255.255.0
3.7 两边节点启动crs
crsctl start crs
检查资源组状态
crsctl status resource �Ct
如果都online,则没问题。
4 实施总结
1. 在修改public ip时注意修改对应的正确网关,如果不修改,有可能导致vip服务起不来。
2. 注意检查修改hosts文件,因为改ip后,hosts文件会增加记录。
public ip对应的掩码也要修改正确,
3. 主机名在安装crs时要规划好,一旦装好后,就不能修改,否则要重新安装crs。
4. 11GR2 srvctl 新增 config vip命令
5. 修改private ip的顺序刚好和10gR2相反,10gR2是先关闭crs,然后修改hosts表和物理ip,再启动crs,用oifcfg 设置新私网ip,这点要注意,否则按10gR2修改私网的方法,会导致CRS集群起不来,所以做之前先做好备份。
6. 如果两边节点local_listener参数没修改的话,会导致客户端连接不到数据库报ERROR:ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序,这是因为scan_listener 认到的还是修改前的vip 原文链接:https://www.f2er.com/oracle/210649.html