Oracle 11g rac IP地址修改(public ip、vip、scan ip、priviate ip)
本案例中,public ip、vip、scan ip、priviate ip四个IP地址的网段、网卡名称都会进行修改
本案例中,集群的主机名/节点名:host33rac1/host34rac2
一、案例介绍
| 名称 | 修改前 | 修改后 |
|---|---|---|
| 主机IP (PUBLIC IP) | 192.168.11.73/74 | 10.10.10.133/134 |
| VIP | 192.168.11.75/76 | 10.10.10.135/136 |
| SCAN IP | 192.168.11.77 | 10.10.10.137 |
| 私有IP(Private IP) | 10.10.10.73/74 | 192.168.11.133/134 |
| 公有网卡 | ens33 | ens37 |
| 私有网卡 | ens36 | ens38 |
二、公有网络修改(PUBLIC IP、VIP、SCANIP)
1、root设置环境变量,方便后续执行GI集群操作
两个节点都执行
echo "export PATH=$PATH:/u01/app/crs/bin" >>/etc/profile
退出重新登录即可生效!
备注:
/u01/app/crs/bin请以实际环境的目录代替
su - grid
which crsctl
/u01/app/crs/bin/crsctl
其中/u01/app/crs/bin,就是需要加入环境变量的目录
2、备份集群配置文件(ocr)
root用户执行,一个节点执行即可
crsctl query css votedisk
ocrconfig -showbackup
ocrconfig -manualbackup
ocrconfig -export /tmp/orc1.txt
3、检查现有集群网络配置
root用户执行,一个节点执行即可
oifcfg iflist
oifcfg getif
srvctl config nodeapps -a
srvctl config scan
检查结果:
[root@host33rac1 ~]# oifcfg iflist
ens33 192.168.11.0
ens36 10.10.10.0
ens36 169.254.0.0
[root@host33rac1 ~]# oifcfg getif
ens33 192.168.11.0 global public --公有网络
ens36 10.10.10.0 global cluster_interconnect --私有网络
[root@host33rac1 ~]# srvctl config nodeapps -a
Network exists: 1/192.168.11.0/255.255.255.0/ens33, type static
VIP exists: /host33rac1-vip/192.168.11.75/192.168.11.0/255.255.255.0/ens33, hosting node host33rac1
VIP exists: /host34rac2-vip/192.168.11.76/192.168.11.0/255.255.255.0/ens33, hosting node host34rac2
[root@host33rac1 ~]# srvctl config scan
SCAN name: 192.168.11.77, Network: 1/192.168.11.0/255.255.255.0/ens33
SCAN VIP name: scan1, IP: /192.168.11.77/192.168.11.77
4、备份/etc/hosts文件(两节点都执行)
cp /etc/hosts /etc/hosts`date "+%F"`.bak
5、关闭数据库、监听、集群
su - grid
srvctl stop database -d orcl -o immediate
srvctl stop listener
srvctl stop scan_listener
#下面关闭集群的命令需要两个节点使用root用户执行
crsctl stop crs -f
6、修改/etc/hosts文件(两节点都执行)
修改前文件内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.73 host33rac1-priv
10.10.10.74 host34rac2-priv
192.168.11.73 host33rac1
192.168.11.74 host34rac2
192.168.11.75 host33rac1-vip
192.168.11.76 host34rac2-vip
192.168.11.77 hostrac-scan
修改后文件内容
cat >/etc/hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.73 host33rac1-priv
10.10.10.74 host34rac2-priv
##上面两个私有IP暂时保持不变
10.10.10.133 host33rac1
10.10.10.134 host34rac2
10.10.10.135 host33rac1-vip
10.10.10.136 host34rac2-vip
10.10.10.137 hostrac-scan
EOF
7、操作系统层面修改网卡IP(配置网卡IP)
1)这里根据实际情况修改网络,步骤省略
2)重启网卡
systemctl restart network
或者针对单独的网卡重启
ifdown ens33
ifup
检查
ifconfig -a
8、启动GI集群(两个节点都执行)
root用户执行
crsctl start crs
9、修改Public IP
备注:修改其中一个节点,完成后,另外一个节点通过oifcfg getif确认是否已经同步完成修改,如果没有,再手工设置。(理论上修改一个,另一个会同步修改)
oifcfg getif
删除旧接口
oifcfg delif -global ens33/192.168.11.0
设置新接口
oifcfg setif -global ens37/10.10.10.0:public
oifcfg getif
节点一:
[root@host33rac1 ~]# oifcfg getif
ens36 10.10.10.0 global cluster_interconnect
ens37 10.10.10.0 global public
节点二
[root@host34rac2 ~]# oifcfg getif
ens36 10.10.10.0 global cluster_interconnect
ens37 10.10.10.0 global public
可以看到两个节点都已经修改
10、修改VIP
需要停止数据库、监听和VIP,如果按照之前停库、停监听、停集群的方式操作,数据库和监听不会随着集群自动起来,处于停止状态!
1)检查数据库、监听和VIP状态
crsctl stat res -t
2)停止vip
su - grid
srvctl stop vip -n host33rac1
srvctl stop vip -n host34rac2
3)检查VIP配置
srvctl config vip -n host33rac1
srvctl config vip -n host34rac2
[grid@host33rac1 ~]$ srvctl config vip -n host33rac1
VIP exists: /host33rac1-vip/10.10.10.135/192.168.11.0/255.255.255.0/ens33, hosting node host33rac1
[grid@host33rac1 ~]$ srvctl config vip -n host34rac2
VIP exists: /host34rac2-vip/10.10.10.136/192.168.11.0/255.255.255.0/ens33, hosting node host34rac2
4)修改VIP设置
su - root
srvctl modify nodeapps -n host33rac1 -A 10.10.10.135/255.255.255.0/ens37
srvctl modify nodeapps -n host34rac2 -A 10.10.10.136/255.255.255.0/ens37
另一种修改方法
srvctl modify nodeapps -n host33rac1 -A host33rac1-vip/255.255.255.0/ens37
srvctl modify nodeapps -n host34rac2 -A host34rac2-vip/255.255.255.0/ens37
备注:host33rac1-vip/host34rac2-vip 在/etc/hosts中有映射关系
5)再次检查
[root@host33rac1 ~]# srvctl config vip -n host33rac1
VIP exists: /host33rac1-vip/10.10.10.135/10.10.10.0/255.255.255.0/ens37, hosting node host33rac1
[root@host33rac1 ~]# srvctl config vip -n host34rac2
VIP exists: /host34rac2-vip/10.10.10.136/10.10.10.0/255.255.255.0/ens37, hosting node host34rac2
可以看到修改成功
6)启动vip
su - grid
srvctl start vip -n host33rac1
srvctl start vip -n host34rac2
7)检查
crsctl stat res -t
11、修改SCAN IP
1)检查配置
su - grid
[grid@host33rac1 ~]$ srvctl config scan
SCAN name: 192.168.11.77, Network: 1/10.10.10.0/255.255.255.0/ens37
SCAN VIP name: scan1, IP: /192.168.11.77/192.168.11.77
2)停止scan和scan_listener资源
srvctl status scan_listener
srvctl stop scan_listener
srvctl stop scan
srvctl status scan_listener
3)修改
su - root
srvctl modify scan -n 10.10.10.137
另一种修改方法
srvctl modify scan -n hostrac-scan
备注:hostrac-scan 在/etc/hosts中有映射关系
4)检查确认
srvctl config scan
备注:scan手工分配至1节点的方法如下
srvctl relocate scan -i 1 -n host33rac1
12、启动scan监听、listener监听、数据库
su - grid
srvctl start scan_listener
srvctl start listener
srvctl start database -d orcl
13、检查local_listener(两个节点都检查)
如果已经自动修改,直接跳过这一步骤,如果没有,则需要手工修改
su - oracle
sqlplus "/as sysdba"
show parameter local_listener
SQL> show parameter listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=10.10.10.136)(PORT=1521))
remote_listener string hostrac-scan:1521
备注:我的案例环境,已经自动完成修改,这一步骤跳过即可
手工修改方法如下:
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.11.75)(PORT=1521))))' scope=both sid='orcl1';
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.11.76)(PORT=1521))))' scope=both sid='orcl2';
14、检查tnsnames.ora文件
确认是否需要修改,如果使用的IP地址,需要修改,如果是主机名,那么不需要(/etc/hosts文件已经在前面修改)
cat $ORACLE_HOME/network/admin/tnsnames.ora|grep "192.168.11."
至此公有网络修改完成!
三、私有网络修改
1、备份集群信息
修改rac ip涉及到OCR信息,建议操作之前进行备份
crsctl query css votedisk
ocrconfig -showbackup
ocrconfig -manualbackup
ocrconfig -export /tmp/orc.txt
特别注意:
从Oracle 11.2.0.2 之后,private network 的配置除了记录在OCR中之外,还会记录在GPNP profile里,需要将该配置文件也备份,用grid用户两个节点执行备份,方法如下:
su - grid
cd $ORACLE_HOME/gpnp/`hostname`/profiles/peer/
cp -p profile.xml profile.xml.bak
ls -ltr profile.xml*
2、设置新的私网信息
oifcfg getif
oifcfg setif -global ens38/192.168.11.0:cluster_interconnect
oifcfg getif
[root@host33rac1 ~]# oifcfg getif
ens36 10.10.10.0 global cluster_interconnect
ens37 10.10.10.0 global public
ens38 192.168.11.0 global cluster_interconnect
3、停库和集群
停库
su - oracle
srvctl stop database -d orcl -o immediate
停集群(两节点执行)
su - root
crsctl stop crs -f
4、操作系统层面修改私有网卡IP(配置网卡IP)
1)这里根据实际情况修改网络,步骤省略
2)重启网卡
systemctl restart network
或者针对单独的网卡重启
ifdown ens33
ifup
检查
ifconfig -a
5、修改/etc/hosts
cat >/etc/hosts <<EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.11.133 host33rac1-priv
192.168.11.134 host34rac2-priv
#这里上面调整私有网络IP
10.10.10.133 host33rac1
10.10.10.134 host34rac2
10.10.10.135 host33rac1-vip
10.10.10.136 host34rac2-vip
10.10.10.137 hostrac-scan
EOF
6、启动集群(不启库)(两节点执行)
crsctl start crs
7、删除旧的私有网路配置
1)查询网络配置
oifcfg getif
[root@host33rac1 ~]# oifcfg getif
ens36 10.10.10.0 global cluster_interconnect
ens37 10.10.10.0 global public
ens38 192.168.11.0 global cluster_interconnect
2)删除旧的私有网络配置
oifcfg delif -global ens36/10.10.10.0
3)再次检查
[root@host33rac1 ~]# oifcfg getif
ens37 10.10.10.0 global public
ens38 192.168.11.0 global cluster_interconnect
8、检查集群状态,测试应用连接,一切正常
至此私有网络修改完成!