暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在Oracle中,如果需要修改网卡、子网、网段等信息,那么应该如何操作?

DB宝 2020-01-13
1898


题目部分

在Oracle中,如果需要修改网卡、子网、网段等信息,那么应该如何操作?


     

答案部分


Oracle 11g RAC中的IP主要有:Public IPVIPSCAN VIPPrivate IP这几种。一般这类改IP地址或者网卡名称的需求主要场景有:机房搬迁网络变更、系统上线由测试IP更改为生产IP、系统层面双网卡绑定或者解绑等。

如果修改涉及到了不同的子网(网络掩码)或者网卡,需要将OCR中已经存在的网卡信息删除并重新添加新的信息。在以下的示例中子网从172.16.10.X修改为172.16.20.X,需要执行两个步骤–首先‘delif’,接下来‘setif’;然后,在操作系统层面进行修改。除非OS层面的修改需要重新启动节点,否则不需要重启Oracle集群管理软件。修改可以使用滚动的方式完成。

在这种情况下,一旦公网信息被修改,则与其相关的VIPSCAN VIP也必须修改。

在修改IP地址之前需要先对OCRGPNP文件进行备份,然后在OS层面添加修改后的网卡适配器以及配置好相关的IP地址,最后再做相关的修改操作。

(一)备份OCRGPNP profile文件

在修改RACIP地址之前,我们需要先备份一下OCR文件,因为IP地址信息是记录在OCR中的,同时还要注意一点,从Oracle 11.2.0.2之后,private network的配置除了记录在OCR中之外,还会记录在GPNP profile里。如果private network不可用或者配置不正确,就会导致CRSD进程不能启动。

因此在操作之前,必须先手工备份GPNP profileOCR

grid用户执行:

节点1,节点2都要执行

1[grid@rac1 peer]$ cd $ORACLE_HOME/gpnp/rac1/profiles/peer/
2[grid@rac1 peer]$ cp -p profile.xml profile.xml.bak

执行手工OCR的备份

cd grid_home

1[root@rac1 ~]# cd /u01/app/11.2.0/grid/bin/
2[root@rac1 bin]# ./ocrconfig -manualbackup
3rac1     2018/05/15 09:35:04     /u01/app/11.2.0/grid/cdata/rac-cluster/backup_20180515_093504.ocr

查看OCR的手工备份

节点1执行即可:

1[root@rac1 bin]# ./ocrconfig -showbackup manual
2rac1     2018/05/15 09:35:04     /u01/app/11.2.0/grid/cdata/rac-cluster/backup_20180515_093504.ocr

如果操作出现问题,那么可以通过OCR备份进行恢复。

(二)修改公网IP

Oracle集群中的网络信息(接口,子网及每个网卡的角色)都可以被oifcfg命令管理,但是没有网卡的IP地址除外,oifcfgOracle Interface Configuration Tool)命令不能修改IP地址信息。

在以下示例中,eth0eth1是需要修改的网卡,而eth2eth3是修改后的网卡:

1. 停止数据库:

1srvctl stop database -d lhrrac1

2. 获取网段:

1oifcfg iflist
2oifcfg getif -global

例如:

 1[root@raclhr-11gR2-N1 ~]# oifcfg iflist
2eth0  192.168.59.0
3eth1  192.168.2.0
4eth1  169.254.0.0
5eth2  192.168.159.0
6eth3  192.168.102.0
7virbr0  192.168.122.0
8[root@raclhr-11gR2-N1 ~]# oifcfg getif -global
9eth0  192.168.59.0  global  public
10eth1  192.168.2.0  global  cluster_interconnect
11[root@raclhr-11gR2-N1 ~]

3. 节点1和节点2分别运行:

1oifcfg delif -global eth0/192.168.59.0
2oifcfg setif -global eth2/192.168.159.0:public

修改后校验:

1oifcfg getif -global

例如:

1[root@raclhr-11gR2-N1 ~]# oifcfg getif -global
2eth1  192.168.2.0  global  cluster_interconnect
3eth2  192.168.159.0  global  public

修改成功。

(三)设置VIP

一般而言,只有10.2.0.3之前的版本需要完全的停机。从10.2.0.3开始,ASM和数据库实例对VIP资源的依赖关系已经被删除,所以修改VIP不需要停止ASM和数据库实例,只有当修改VIP时产生的客户端连接会受影响。如果修改只涉及到特定的节点,那么只有连接到对应节点的客户端链接在修改时会受影响。

首先,请确保公网信息被修改。如果在OS层面的网络修改后发生了节点或者集群管理软件重启,VIP将不会被启动,那么需要修改VIP和相关属性后才能启动VIP

1. 获取当前设置

1srvctl config nodeapps -a

例如:

1[root@raclhr-11gR2-N1 ~]# srvctl config nodeapps -a
2Network exists: 1/192.168.59.0/255.255.255.0/eth0, type static
3VIP exists: /raclhr-11gR2-N1-vip/192.168.59.172/192.168.59.0/255.255.255.0/eth0, hosting node raclhr-11gr2-n1
4VIP exists: /raclhr-11gR2-N2-vip/192.168.59.173/192.168.59.0/255.255.255.0/eth0, hosting node raclhr-11gr2-n2

2.验证VIP状态

1$ crsctl stat res -t

以上命令应该显示VIPs状态为ONLINE

1$ ifconfig -a

需要注意的是,HP平台请使用netstatinWindows平台请使用ipconfig all

3.停止nodeapps资源(如果有必要的话,停止存在依赖关系的ASM和数据库资源):

对于版本11gR2,使用Grid Infrastructure的拥有者执行下面的命令:

1srvctl stop vip -n raclhr-11gR2-N1 -f
2srvctl stop vip -n raclhr-11gR2-N2 -f

注意,对于版本11gR2,需要使用-f选项停止listener资源,否则会报以下错误:

1PRCR-1014 : Failed to stop resource ora.racnode1.vip
2PRCR-1065 : Failed to stop resource ora.racnode1.vip
3CRS-2529: Unable to act on 'ora.racnode1.vip' because that would require stopping or relocating 'ora.LISTENER.lsnr', but the force option was not specified
4...

4.验证VIP现在处于OFFLINE状态,并且VIP不再绑定到公网网卡

需要注意的是,HP平台请使用netstatinWindows平台请使用ipconfig all

1$ crs_stat -t (对于版本 11gR2,使用命令 $ crsctl stat res –t)
2$ ifconfig -a

5.确定新的VIP地址/子网/网络掩码或者VIP对应的主机名,在OS层面修改网络配置信息,确认新的VIP地址应经注册到DNS或者确认/etc/hosts文件(Unix/Linux平台),\WINDOWS\System32\drivers\etc\hosts文件(Windows平台)已经被修改。如果网卡信息被修改,确认在修改之前新的网卡在服务器上已经可用。

6.使用root用户修改VIP资源:

节点1上执行:

1srvctl modify nodeapps -n raclhr-11gR2-N1 -A 192.168.159.72/255.255.255.0/eth2 
2srvctl modify nodeapps -n raclhr-11gR2-N2 -A 192.168.159.73/255.255.255.0/eth2
3srvctl config nodeapps -a

7.启动nodeapps和其它资源

对于版本11gR2,使用Grid Infrastructure的拥有者执行下面的命令:

1srvctl start vip -n raclhr-11gR2-N1
2srvctl start vip -n raclhr-11gR2-N2

注意:如果网络的属性做了修改,比如netmask等做了修改,需要重新启动nodeapps

如果启动VIP报如下的错误:

 1[root@raclhr-11gR2-N1 ~]# srvctl start vip -n raclhr-11gR2-N1
2PRCR-1079 : Failed to start resource ora.raclhr-11gr2-n1.vip
3CRS-5017: The resource action "ora.raclhr-11gr2-n1.vip start" encountered the following error
4CRS-5009: The VIP address 192.168.159.72 does not belong to the subnet 192.168.59.0
5For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/raclhr-11gr2-n1/agent/crsd/orarootagent_root/orarootagent_root.log".
6
7CRS-2674Start of 'ora.raclhr-11gr2-n1.vip' on 'raclhr-11gr2-n1' failed
8CRS-5017: The resource action "ora.raclhr-11gr2-n1.vip start" encountered the following error
9CRS-5009: The VIP address 192.168.159.72 does not belong to the subnet 192.168.59.0
10For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/raclhr-11gr2-n2/agent/crsd/orarootagent_root/orarootagent_root.log".
11
12CRS-2674Start of 'ora.raclhr-11gr2-n1.vip' on 'raclhr-11gr2-n2' failed
13CRS-2632: There are no more servers to try to place resource 'ora.raclhr-11gr2-n1.vip' on that would satisfy its placement policy

解决:重启网卡:

1service network restart

8.验证新的VIP状态为ONLINE并且已经绑定到集群公网网卡

1$ crs_stat -t (对于版本 11gR2,使用命令 $ crsctl stat res –t)
2$ ifconfig -a

HP平台请使用netstatinWindows平台请使用ipconfig all

9.如果需要,修改listener.ora,tnsnames.oraLOCAL_LISTENER/REMOTE_LISTENER参数反应VIP的改变。

注意:ASMDB实例的LOCAL_LISTENER参数,是GI自动设置的。VIP的改变,LOCAL_LISTENER会自动识别,并生效。但是由于Bug 22824602,一些特定情况下。LOCAL_LISTENER参数没有反应VIP的改变。workaround解决方法是重启受影响的节点的集群软件。

(四)修改SCAN IP

在集群正常运行的情况下,首先修改所有节点/etc/hosts文件后,再执行如下命令,其中raclhr-scan是修改后的SCAN主机名:

1srvctl config scan
2srvctl stop scan_listener 
3srvctl stop scan
4srvctl modify scan -n raclhr-scan
5srvctl config scan
6srvctl start scan 
7srvctl start scan_listener

如果SCAN IP的个数改变了,那么还需要执行如下命令进行更新:

1srvctl modify scan_listener -u

需要注意的是,以上步骤也适用于修改SCANIP地址或增加SCAN IP的个数。

修改SCAN的端口号的命令如下所示:

1srvctl modify scan_listener -p 1522

(五)修改私网IP

当子网掩码被更改,但是子网标识没有改变时,如:子网掩码从255.255.0.0更改至255.255.255.0,私网ip192.168.0.x,子网标识保持不变192.168.0.0,网卡名字没有改变.关闭所有需要更改的主机oracle clusterware,在操作系统层修改私有网络IP地址(如:操作系统网络配置等等)。并重启集群中所有节点,请注意,这种更改是不能采用轮转方式(rolling manaer)完成的。

当子网掩码被改变,附属的子网标识也经常会被改变,oracleOCR中只存储网卡名字及子网标识的信息,而不存储子网掩码。可以使用oifcfg命令完成这样的变更,oifcfg命令只需在集群中的一个节点执行,而不是所有节点。

针对于11.2的结构,私有网络配置信息不但保存在OCR中,而且还保存在gpnp属性文件中。如果私有网络不可用或定义错误,则CRSD进程将无法启动,任何随后对于OCR的改变都是不可能完成的,因此需要注意当对私有网络的配置信息进行修改,正确的改变顺序是非常重要的。同时请注意,手动修改gpnp属性文件是不支持的。

在对集群中所有节点操作之前,请先备份profile.xml配置文件。作为grid用户执行:

1$ cd $GRID_HOME/gpnp/<hostname>/profiles/peer/
2$ cp -p profile.xml profile.xml.bk

1.确保集群中的所有节点都已启动并正常运行

2.使用grid用户:

获取下面信息:

1$ cd $GRID_HOME/gpnp/<hostname>/profiles/peer/
2$ cp -p profile.xml profile.xml.bk

注意以下几点:

① 如果网卡不可用,需要使用global选项来完成,而不能使用–node选项,它将导致节点被驱逐。

② 如果网卡在服务器上可用,则可以使用下面命令识别子网地址:

1$oifcfg iflist

它列出了网卡及子网地址,即使oracle集群没有启动,此命令也可以被执行。请注意,子网掩码有可能不是x.y.z.0的格式,它可以是x.y.z.24x.y.z.64x.y.z.128等格式。如:

1$oifcfg iflist
2lan1 18.1.2.0
3lan2 10.2.3.64<<这是一个私有网络子网地址附属的私有网络ip地址为10.2.3.86

③ 如果需要添加第二个私有网络,而不是替换现有的私有网络,则需要保证两个网卡的MTU值相同,否则实例将无法启动并报如下错误信息:

1ORA-27504:IPC error creating OSD context
2ORA-27300:OS system dependent operation:if MTU failed with status:0
3ORA-27301:OS failure message:Error 0
4ORA-27302:failure occurred at:skgxpcini2
5ORA-27303:additional information:requested interface lan1:801 has a different MTU(1500)than lan3:801(9000),which is not supported.Check output from ifconfig command

④ 对于11gR2或更高版本,不建议在ASMdatabasespfilepfile中设置cluster interconnects参数。无论什么原因如果设置了该参数,则需要在集群关闭之前需将新的私网ip地址设置在spfilepfile中,否则它会由于私网信息不匹配而导致重启失败。

例如:

1[root@raclhr-11gR2-N1 ~]# oifcfg setif -global eth3/192.168.102.0:cluster_interconnect
2[root@raclhr-11gR2-N1 ~]# oifcfg getif
3eth1  192.168.2.0  global  cluster_interconnect
4eth2  192.168.159.0  global  public
5eth3  192.168.102.0  global  cluster_interconnect
6[root@raclhr-11gR2-N1 ~]

3.使用root用户关闭集群中所有的节点并禁用集群:

1#crsctl stop crs
2#crsctl disable crs

4.使网络配置信息都已在OS层更改完成,确保更改完成后新的接口在所有的节点都可用有效:

1vi /etc/hosts #可以修改私网的主机名
2ifconfig -a
3ping <private hostname>

5.使用root用户激活oracle集群并重新启动集群中的所有节点:

1crsctl enable crs
2crsctl start crs

6.如果需要去除旧接口卡信息:

1oifcfg getif
2oifcfg delif-global eth1/192.168.2.0

例如:

1[root@raclhr-11gR2-N1 admin]# oifcfg getif
2eth1  192.168.2.0  global  cluster_interconnect
3eth2  192.168.159.0  global  public
4eth3  192.168.102.0  global  cluster_interconnect
5[root@raclhr-11gR2-N1 admin]# oifcfg delif -global eth1/192.168.2.0
6[root@raclhr-11gR2-N1 admin]# oifcfg getif
7eth2  192.168.159.0  global  public
8eth3  192.168.102.0  global  cluster_interconnect

7.OS层删除旧网卡。

 

& 说明:

有关RAC中修改IP地址的更多内容可以参考:https://ke.qq.com/course/316312?tuin=26507979http://blog.itpub.net/26736162/viewspace-2157362/http://blog.itpub.net/26736162/viewspace-2157364/http://blog.itpub.net/26736162/viewspace-2157372/


本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗



---------------优质麦课------------

详细内容可以添加麦老师微信或QQ私聊。



About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:618766405

 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

DBA宝典

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。


最后修改时间:2020-06-12 14:05:48
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论