环境描述:AIX+11gR2 RAC双节点
问题起因:两节点用于私网通信的网卡使用的是千兆网卡,现要换成万兆的网卡,因万兆网卡为一块卡一个port,而原先的千兆网卡是一块卡两个port,而且主机上的槽位有限,必须要把原来的千兆网卡拔下来,才能腾出位置给万兆的,所以不可避免的会导致在AIX里cfgmgr认出的万兆网卡名字会和原来不一样。
从OS层面看似是比较简单的一个动作:拔掉旧网卡->按上新网卡->OS认出新网卡并配上IP地址,但对于GI来讲改动可不小。我们知道在安装配置完GI后,网卡名称和子网ID这两样东西会被记录进OCR和GPnP profile,如果后面网卡名称或者子网ID发生了变化,那么必须要同步修改OCR里的内容,否则CRSD进程将无法正常启动。在我这个case里网卡名称会发生变化,因此我是按照如下步骤去实施的:
1、对GPnP profile做一个备份,两节点都要执行
su - grid
cp $Oracle_HOME/gpnp/jqp750303/profiles/peer/profile.xml $ORACLE_HOME/gpnp/jqp750303/profiles/peer/profile.xml.0310
2、备份当前GI里的网卡配置,只要在一个节点上运行一遍即可
su - grid
oifcfg getif <---注意必须要在GI处于运行状态时才能执行这条命令
en15 10.11.176.0 global public
en16 2.2.144.0 global cluster_interconnect <---接下来要替换的就是这块网卡
3、停GI->停机->拔出千兆网卡->按上万兆网卡->启动主机->认出万兆网卡
记住万兆网卡在OS上的名称:en17
4、停机->拔出万兆网卡->装回千兆网卡->启动主机->重新认出千兆网卡
这一步是为了还原到初始状态,以便启动GI
5、启动GI
crsctl start crs
6、将万兆网卡的信息加入到OCR
su - grid
oifcfg iflist <---列出当前OS环境下的网卡
en15 10.11.176.0
en16 2.2.144.0 <---en16是千兆卡的名称
oifcfg getif <---列出当前OCR里保存的网卡信息
en15 10.11.176.0 global public
en16 2.2.144.0 global cluster_interconnect
oifcfg setif -global en17/2.2.144.0:cluster_interconnect <---写入第3步中得到的万兆卡的名称,即便en17不存在该条命令也可以成功的
oifcfg getif <---查看修改效果,OCR里的私网网卡变成了两块了,虽然en17还没装上
en15 10.11.176.0 global public
en16 2.2.144.0 global cluster_interconnect
en17 2.2.144.0 global cluster_interconnect
7、停GI->停机->拔除千兆网卡->按上万兆网卡->启动主机
8、主机启动后确认网卡名称是否正确
oifcfg iflist
en15 10.11.176.0
en17 2.2.144.0 <---en17是万兆卡,en16消失了,这是从OS层面的信息
9、启动GI
crsctl start crs
oifcfg getif <---OCR里还是有两块私网网卡
en15 10.11.176.0 global public
en16 2.2.144.0 global cluster_interconnect
en17 2.2.144.0 global cluster_interconnect
10、最后删除原来的千兆网卡
oifcfg delif -global en16/2.2.144.0
oifcfg getif
en15 10.11.176.0 global public
en17 2.2.144.0 global cluster_interconnect
11、不放心的话再重启一下GI,能启成功就OK了
crsctl stop crs
crsctl start crs
在这个例子中需要说明一点,
第3步重启主机是为了看一下OS启动后万兆网卡会被认成哪个名字,为第6步做准备;
第4步重启主机为的是还原GI环境正常启动CRSD以便提前将万兆卡信息加入OCR;
第7步重启才是正式装上了万兆网卡;
因为我的环境里槽位不够用,所以才遭致了三次重启,如果够用,前两次的重启完全可以省掉