阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle 11g RAC 修改各类IP地址

112次阅读
没有评论

共计 9836 个字符,预计需要花费 25 分钟才能阅读完成。

Oracle 11g RAC 修改各类 IP 地址
首先,我们都知道 Oracle 11g RAC 中的 IP 主要有:Public IP、VIP、SCAN VIP、Private IP 这几种。

一般这类改 IP 地址或者网卡名称的需求主要场景有:

机房搬迁网络变更、系统上线由测试 IP 更改为生产 IP、系统层面双网卡绑定或者解绑等。

我这里实验环境的需求是:

之前在 Virtual Box 虚拟化环境建设的 Oracle 11g RAC,最初选择的公有网络网卡类型是 “仅主机(host-only) 适配器”模式的,这种模式不会受到外界网络影响。但是现在有 局域网络其他机器访问这个环境的需求 ,所以需要将公有网络网卡的类型修改为“桥接网卡” 模式,并修改对应的 IP 地址为局域网网段的。实际上 private IP 并没有必要去修改,但为了演示修改 private IP 的过程,也做了修改。

原 Oracle 11g RAC IP 信息如下:

#public ip
192.168.56.150  jyrac1
192.168.56.152  jyrac2
#private ip
10.10.10.11    jyrac1-priv
10.10.10.12    jyrac2-priv
#virtual ip
192.168.56.151  jyrac1-vip
192.168.56.153  jyrac2-vip
#scan ip
192.168.56.160  jyrac-scan

现在根据需求,最终需要修改为:

#public ip
192.168.1.50  jyrac1
192.168.1.52  jyrac2
#private ip
10.10.10.50    jyrac1-priv
10.10.10.52    jyrac2-priv
#virtual ip
192.168.1.51  jyrac1-vip
192.168.1.53  jyrac2-vip
#scan ip
192.168.1.60  jyrac-scan

主要实施步骤如下:

  • 1. 正常关库、监听和 CRS
  • 2. 修改 /etc/hosts 配置文件
  • 3.OS 层修改公有网卡地址
  • 4. 启动 crs
  • 5. 修改 Public IP,VIP,SCAN VIP
  • 6. 修改 Private IP
  • Reference

1. 正常关库、监听和 CRS

这里先正常 immediate 关闭数据库,然后关闭监听,最后关闭两个节点的 crs:

[grid@jyrac1 ~]$ srvctl stop database -d jyzhao -o immediate
[grid@jyrac1 ~]$ srvctl stop listener

[grid@jyrac1 ~]$ which crsctl
/opt/app/11.2.0/grid/bin/crsctl

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/crsctl stop crs
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/crsctl stop crs

注意:这样再次启动 crs 时,就不会自动启动监听和数据库了。

2. 修改 /etc/hosts 配置文件

根据需求,先备份原来的 /etc/hosts 文件为 /etc/hosts.bak

[root@jyrac1 ~]# cp /etc/hosts /etc/hosts.bak
[root@jyrac2 ~]# cp /etc/hosts /etc/hosts.bak

然后再 vi 修改 /etc/hosts 文件:
将 public ip、vip、scan vip 修改为如下值:

#public ip
192.168.1.50  jyrac1
192.168.1.52  jyrac2
#virtual ip
192.168.1.51  jyrac1-vip
192.168.1.53  jyrac2-vip
#scan ip
192.168.1.60  jyrac-scan

注意:其他内容不变。关于 private ip,等后面修改 private ip 的时候再一起改。

3.OS 层修改公有网卡地址

这部分正常实施应由 SA 来做,我这里是自己的实验环境,所以此步骤过程仅供参考:

3.1 确认之前的公网网卡信息(这里省略了无关网卡信息输出):

[root@jyrac1 ~]# ifconfig -a
eth2      Link encap:Ethernet  HWaddr 08:00:27:95:22:E3  
          inet addr:192.168.56.150  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe95:22e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3549 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3378 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:396404 (387.1 KiB)  TX bytes:824575 (805.2 KiB)

[root@jyrac2 etc]# ifconfig -a
eth2      Link encap:Ethernet  HWaddr 08:00:27:1A:5A:7A  
          inet addr:192.168.56.152  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe1a:5a7a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:292753 (285.8 KiB)  TX bytes:306602 (299.4 KiB)

3.2 修改虚拟环境的网卡连接方式
按照本次需求,需要在 virtual box 虚拟机那里将连接方式由“仅主机 (host-only) 适配器”修改为“桥接网卡”。

3.3 修改 Public IP 地址
由于已经无法连接,需要到 virt box 虚拟机管理界面进行主机的对应网卡 IP 地址修改,之后重新启动对应的网卡。
主要命令如下:

vi /etc/sysconfig/network-scripts/ifcfg-eth2
ifdown eth2
ifup eth2
ifconfig eth2
ping 192.168.1.50
ping 192.168.1.52

以节点 1 为例,修改后的网卡信息:

[root@jyrac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.50
NETMASK=255.255.255.0

[root@jyrac1 ~]# ifconfig eth2
eth2      Link encap:Ethernet  HWaddr 08:00:27:95:22:E3  
          inet addr:192.168.1.50  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe95:22e3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3998 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3594 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:440406 (430.0 KiB)  TX bytes:861230 (841.0 KiB)

最终使用局域网其他机器配置 CRT 连接到新修改的 IP 地址,结果可以正常连接,确认到此主机的 Public IP 地址在主机层面已经修改完毕。

4. 启动 crs

crsctl start crs

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/crsctl start crs
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/crsctl start crs

注意:这里如果是按照我上面关闭 crs 的操作,正常数据库和监听是没有启动的,对应 target 和 state 都应该是 offline:

ora.LISTENER.lsnr
               OFFLINE OFFLINE      jyrac1                                       
               OFFLINE OFFLINE      jyrac2       
ora.jyzhao.db
      1        OFFLINE OFFLINE                               Instance Shutdown   
      2        OFFLINE OFFLINE                               Instance Shutdown   

5. 修改 Public IP,VIP,SCAN VIP

5.1 修改 Public IP

-- 查看当前设定:[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/oifcfg getif
eth2  192.168.56.0  global  public
eth3  10.10.10.0  global  cluster_interconnect

-- 删除旧值并设定新值
[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/oifcfg delif -global eth2
[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/oifcfg setif -global eth2/192.168.1.0:public

-- 查看验证修改成功:[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/oifcfg getif
eth3  10.10.10.0  global  cluster_interconnect
eth2  192.168.1.0  global  public
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/oifcfg getif
eth3  10.10.10.0  global  cluster_interconnect
eth2  192.168.1.0  global  public

5.2 修改 VIP
需要停止数据库、监听和 VIP,如果按照之前操作,目前数据库和监听已经是停止状态。

[grid@jyrac1 ~]$ srvctl stop vip -n jyrac1
[grid@jyrac1 ~]$ srvctl stop vip -n jyrac2

查看 VIP 当前设置:

[grid@jyrac1 ~]$ olsnodes -s
jyrac1  Active
jyrac2  Active
[grid@jyrac1 ~]$ srvctl config vip -n jyrac1
VIP exists: /jyrac1-vip/192.168.1.51/192.168.56.0/255.255.255.0/eth2, hosting node jyrac1
[grid@jyrac1 ~]$ srvctl config vip -n jyrac2
VIP exists: /jyrac2-vip/192.168.1.53/192.168.56.0/255.255.255.0/eth2, hosting node jyrac2

修改 VIP 设置:

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/srvctl modify nodeapps -n jyrac1 -A 192.168.1.51/255.255.255.0/eth2
[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/srvctl modify nodeapps -n jyrac2 -A 192.168.1.53/255.255.255.0/eth2

再次验证 VIP 修改完成:

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/srvctl config vip -n jyrac1
VIP exists: /jyrac1-vip/192.168.1.51/192.168.1.0/255.255.255.0/eth2, hosting node jyrac1
[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/srvctl config vip -n jyrac2
VIP exists: /jyrac2-vip/192.168.1.53/192.168.1.0/255.255.255.0/eth2, hosting node jyrac2

启动 vip

[grid@jyrac1 ~]$ srvctl start vip -n jyrac1
[grid@jyrac1 ~]$ srvctl start vip -n jyrac2

启动监听:

[grid@jyrac1 ~]$ srvctl start listener

启动数据库:

[grid@jyrac1 ~]$ srvctl start database -d jyzhao

确认 local_listener 信息:
检查 local_listener 信息,如果不正确需要修改,我这里查询是正确的。

-- 两个节点分别确认:
show parameter local_listener
-- 修改:
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.51)(PORT=1521))' sid='jyzhao1';
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.53)(PORT=1521))' sid='jyzhao2';

5.3 修改 SCAN VIP
查看 SCAN VIP 当前设置:

[grid@jyrac1 ~]$ srvctl config scan
SCAN name: jyrac-scan, Network: 1/192.168.1.0/255.255.255.0/eth2
SCAN VIP name: scan1, IP: /jyrac-scan/192.168.56.160

停止 scan_listener 和 scan 资源

[grid@jyrac1 ~]$ srvctl stop scan_listener
[grid@jyrac1 ~]$ srvctl stop scan
-- 确认已停止
[grid@jyrac1 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is not running
[grid@jyrac1 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is not running

使用 root 用户修改 SCAN VIP

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/srvctl modify scan -n jyrac-scan
注意:root 用户执行修改,且确认 /etc/hosts 映射关系已修改为新的scan VIP。

修改并启动资源

[grid@jyrac1 ~]$ srvctl modify scan_listener -u
[grid@jyrac1 ~]$ srvctl start scan_listener
注意:执行后确认 scan_listener 和 scan 都已经启动。

确认修改成功

[grid@jyrac1 ~]$ srvctl config scan
SCAN name: jyrac-scan, Network: 1/192.168.1.0/255.255.255.0/eth2
SCAN VIP name: scan1, IP: /jyrac-scan/192.168.1.60

[grid@jyrac1 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521

查看整个集群状态正常:

[grid@jyrac1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA1.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                                                        
ora.FRA1.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.LISTENER.lsnr
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.OCR1.dg
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.asm
               ONLINE  ONLINE       jyrac1                   Started             
               ONLINE  ONLINE       jyrac2                   Started             
ora.gsd
               OFFLINE OFFLINE      jyrac1                                       
               OFFLINE OFFLINE      jyrac2                                       
ora.net1.network
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.ons
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
ora.registry.acfs
               ONLINE  ONLINE       jyrac1                                       
               ONLINE  ONLINE       jyrac2                                       
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       jyrac1                                       
ora.cvu
      1        ONLINE  ONLINE       jyrac2                                       
ora.jyrac1.vip
      1        ONLINE  ONLINE       jyrac1                                       
ora.jyrac2.vip
      1        ONLINE  ONLINE       jyrac2                                       
ora.jyzhao.db
      1        ONLINE  ONLINE       jyrac1                   Open                
      2        ONLINE  ONLINE       jyrac2                   Open                
ora.oc4j
      1        ONLINE  ONLINE       jyrac1                                       
ora.scan1.vip
      1        ONLINE  ONLINE       jyrac1         

至此,修改 Oracle 11g RAC 的 public IP、VIP、SCAN VIP 就算完成了。

6. 修改 Private IP

因为很少会遇到修改 Private IP 的需求,所以将其独立成一节。

 

6.1 备份并确认 CRS 集群正常
从 Oracle 11.2 GI 开始,私有网络配置不仅仅存在 ocr 中,还存在 gpnp profile 中,所以首先需要备份 profile.xml
–MOS 上的说明:
Please take a backup of profile.xml on all cluster nodes before proceeding, as grid user:
$ cd $GRID_HOME/gpnp/

-- 节点 1 备份:[grid@jyrac1 ~]$ cd /opt/app/11.2.0/grid/gpnp/jyrac1/profiles/peer/
[grid@jyrac1 peer]$ cp -p profile.xml profile.xml.bk
-- 节点 2 备份:[grid@jyrac2 ~]$ cd /opt/app/11.2.0/grid/gpnp/jyrac2/profiles/peer/
[grid@jyrac2 peer]$ cp -p profile.xml profile.xml.bk

确认 CRS 集群在各节点启动:

[grid@jyrac1 ~]$ olsnodes -s
jyrac1  Active
jyrac2  Active

6.2 设定新的私网信息
oifcfg getif
oifcfg setif -global

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/oifcfg getif
eth3  10.10.10.0  global  cluster_interconnect
eth2  192.168.1.0  global  public

这里私网网段没有变化,不用修改。

6.3 root 用户在所有节点关闭并禁用集群
crsctl stop crs
crsctl disable crs

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/crsctl stop crs
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/crsctl stop crs

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/crsctl disable crs
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/crsctl disable crs

6.4 OS 层修改私有网卡地址
ifconfig -a
ping

修改私有网卡 IP 并重启:

[root@jyrac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth3
[root@jyrac1 ~]# ifdown eth3
[root@jyrac1 ~]# ifup eth3

vi /etc/hosts 修改 private ip 部分为:

#private ip
10.10.10.50    jyrac1-priv
10.10.10.52    jyrac2-priv

6.5 root 用户在所有节点启用并启动集群
crsctl enable crs
crsctl start crs

root 用户在所有节点启用并启动集群:

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/crsctl enable crs
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/crsctl enable crs

[root@jyrac1 ~]# /opt/app/11.2.0/grid/bin/crsctl start crs
[root@jyrac2 ~]# /opt/app/11.2.0/grid/bin/crsctl start crs

6.6 删除旧值
$ oifcfg delif -global

检查集群状态,测试应用连接,一切正常。

至此,所有工作已经完成,不但完整学习了 Oracle 11g RAC 各种 IP 的修改,而且局域网其他机器也可以愉快的访问到这个测试环境进行测试了,提高了我的工作效率,真是一举两得 ^_^。

Reference

  • How to Modify Public Network Information including VIP in Oracle Clusterware (Doc ID 276434.1)
  • How to Modify Private Network Information in Oracle Clusterware (文档 ID 283684.1)
  • How to Modify SCAN Setting or SCAN Listener Port after Installation (文档 ID 972500.1)
  • How to update the IP address of the SCAN VIP resources (ora.scan{n}.vip) (文档 ID 952903.1)

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146103.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计9836字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中