oracle rac 网卡名,HPUNIX上RAC(11.2)中更改public 网卡名字-总结

  • Post author:
  • Post category:其他


本帖最后由 oracle_mao 于 2011-12-21 15:57 编辑

RAC中更改public网卡名字-总结

环境:

由于刚在机器部署的时候,网卡只有一块,在业务运行了一个多月后,打算做双网卡绑定,因此从准备到全部完成历时2周,第一周做准备工作,中间的周六在生产环境操作,随后的时候解决了一些遗留或者突发的问题

RAC:11.2

操作步骤:

1、双网卡绑定步骤:

备注:具体信息请google

2、在做完APA后,网卡名称就改变了,因为需要更换OCR里关于网卡名称的信息

备注:可参照metalink上283684.1文档操作

1)、当在OS上做完APA后,会将机器重启,而在重启以后会发现vip等信息是起不起来的

2)、当OS启动以后,查看crs状态(crsctl stat res -t)

3)、olsnodes -s   检查crs是不是活着的

4)、srvctl status nodeapps  看看vip, scanip是不是活着的

如果活着的就需要停止所有资源vip,scanip

srvctl stop vip -n  节点

srvctl stop scan

备注:一个节点上操作,2个节点上检查

5)、$ id

uid=1100(grid) gid=1010(oinstall) groups=1011(dba),1012(asmdba),1013(asmadmin),1014(asmoper),1015(oper)

—-查看网络配置

$oifcfg  getif  —-查看网络配置

lan3  172.168.106.0  global  cluster_interconnect

lan2  192.168.106.0  global  cluster_interconnect

lan10  10.30.48.0  global  public—这里现在叫lan10,在做完APA后叫lan900

—-删除lan10在ocr里的信息

$oifcfg  delif -global lan10

—设置

$oifcfg  setif -global lan900/10.30.48.0

4f06a01a81d5603cca001c0e92e5ebda.gif
ublic

6)、第5步在一个节点上操作即可,但需要在两个节点上检查

两个节点上检查

oifcfg  getif

检查vip的配置

srvctl config nodeapps

7)、使用root修改vip(2个节点都需要操作)

./srvctl modify nodeapps -n host_name -A 10.30.48.44/255.255.255.192/lan900

./srvctl modify nodeapps -n host_name -A 10.30.48.45/255.255.255.192/lan900

备注:-A后接的是VIP,因为VIP是绑定在public的网卡上的,这里主要是改VIP在CRS里的信息

8)、检查是不是vip已经修改了

srvctl config nodeapps

检查scan是不是也修改了

srvctl config vip

9)、重启OS

所遇问题及解决步骤

1、不小心输错IP后导致不能正确显示VIP名称

问题描述:

在执行srvctl modify时,-A后不小心输错了ip,在发现后,马上又执行了一次modify将正确的IP改过去,但是当执行srvctl config nodeapps时发现    :

NODE1#[/u01/grid/bin]./srvctl config nodeapps

VIP exists.:NODE1—下面的96.44应该NODE1-vip的,由于开始输入IP导致无法正常显示

VIP exists.: /NODE1-vip/10.30.48.45/255.255.255.192/lan900

VIP exists.:NODE2

VIP exists.: /10.30.48.43/10.30.48.43/255.255.255.192/lan900

GSD exists.

ONS daemon exists. Local port 6100, remote port 6200

eONS daemon exists. Multicast port 20126, multicast IP address 233.208.57.158, listening port 2016

解决办法:

IP显示不正确,应显示为NODE2-vip,随后我们找到了解决办法:

将vip从crs中remove出去,然后在add回来,步骤如下:

—将vip资源从CRS中remove出去

NODE1#[/u01/grid/bin]./srvctl remove vip -i NODE2-vip

Please confirm that you intend to remove the VIPs NODE2-vip (y/[n]) y

—将vip资源再添加到CRS中

NODE1#[/u01/grid/bin]./srvctl add nodeapps -n NODE2 -A NODE2-vip/255.255.255.192/lan900

—查看资源配置

NODE1#[/u01/grid/bin]./srvctl config nodeapps

VIP exists.:NODE1

VIP exists.: /NODE1-vip/10.30.48.42/255.255.255.192/lan900

VIP exists.:NODE2

VIP exists.: /NODE2-vip/10.30.48.43/255.255.255.192/lan900

GSD exists.

ONS daemon exists. Local port 6100, remote port 6200

eONS daemon exists. Multicast port 15732, multicast IP address 234.31.167.246, listening port 2016

—重启OS

NODE1#[/]shutdown -ry 0

2、VIP资源状态显示failed over

问题描述:

当由于IP不小心输入错误导致不能正常显示VIP名称后,通过remove资源的方式解决,但是在重启OS后这个VIP 的状态竟然是  FAILED OVER的,并且该节点的listener无法启动,导致instance不能正常连接

解决步骤:

—查看资源情况

NODE2#[/u01/grid/bin]./crsctl stat res -t

——————————————————————————–

NAME           TARGET  STATE        SERVER                   STATE_DETAILS

——————————————————————————–

Local Resources

——————————————————————————–

ora.DATA_ORCL.dg

OFFLINE OFFLINE      NODE1

OFFLINE OFFLINE      NODE2

ora.LISTENER.lsnr

ONLINE  ONLINE       NODE1

ONLINE  OFFLINE      NODE2    —-可以看到这里的监听是offline状态的

ora.OCR_ORCL.dg

ONLINE  ONLINE       NODE1

ONLINE  ONLINE       NODE2

ora.REDO_ORCL.dg

OFFLINE OFFLINE      NODE1

OFFLINE OFFLINE      NODE2

ora.asm

ONLINE  ONLINE       NODE1                 Started

ONLINE  ONLINE       NODE2                 Started

ora.eons

ONLINE  ONLINE       NODE1

ONLINE  ONLINE       NODE2

ora.gsd

OFFLINE OFFLINE      NODE1

OFFLINE OFFLINE      NODE2

ora.net1.network

ONLINE  ONLINE       NODE1

ONLINE  ONLINE       NODE2

ora.ons

ONLINE  ONLINE       NODE1

ONLINE  ONLINE       NODE2

——————————————————————————–

Cluster Resources

——————————————————————————–

ora.LISTENER_SCAN1.lsnr

1        ONLINE  ONLINE       NODE1

ora.LISTENER_SCAN2.lsnr

1        ONLINE  ONLINE       NODE1

ora.LISTENER_SCAN3.lsnr

1        ONLINE  ONLINE       NODE1

ora.NODE1.vip

1        ONLINE  ONLINE       NODE1

ora.NODE2.vip

1        ONLINE  INTERMEDIATE NODE2                 FAILED OVER        —问题主要在这里

ora.oc4j

1        OFFLINE OFFLINE

ora.scan1.vip

1        ONLINE  ONLINE       NODE1

ora.scan2.vip

1        ONLINE  ONLINE       NODE1

ora.scan3.vip

1        ONLINE  ONLINE       NODE1

查看nodeapps状态

NODE2#[/u01/grid/bin]./srvctl status nodeapps

VIP NODE1-vip is enabled

VIP NODE1-vip is running on node: NODE1

VIP 10.30.48.43 is enabled—这里还显示是正常的

VIP 10.30.48.43 is running on node: NODE2

Network is enabled

Network is running on node: NODE1

Network is running on node: NODE2

GSD is disabled

GSD is not running on node: NODE1

GSD is not running on node: NODE2

ONS is enabled

ONS daemon is running on node: NODE1

ONS daemon is running on node: NODE2

eONS is enabled

eONS daemon is running on node: NODE1

eONS daemon is running on node: NODE2

尝试解决(试过的方法):

方法一:直接启动listener,报错说VIP已经启动

NODE2#[/u01/grid/bin]./srvctl start listener -n NODE2

CRS-2664: Resource ‘ora.NODE2.vip’ is already running on ‘NODE2’

方法二:将vip在节点NODE2上stop,然后启动listener,报错说failed start ora.NODE2.vip

NODE2#[/u01/grid/bin]./srvctl stop vip -i NODE2-vip

NODE2#[/u01/grid/bin]./srvctl start listener -n NODE2

备注:虽说failed start ora.NODE2.vip吧,但是查看crs状态发现vip还启动了,只是状态还是failedover的,于是找了在另一个好的节点(NODE1)上测试在vip资源online的情况下单独启动listener是可以的,因此判断问题还是出在vip这里,和listener没关系,必须想办法将vip资源启动到online状态

方法三:将坏节点NODE2的cluster重启,问题依旧

NODE2#[/u01/grid/bin]./crsctl stop cluster -n NODE2

NODE2#[/u01/grid/bin]./crsctl start cluster -n NODE2

方法四:重启NODE2的OS,问题依旧

备注:在重启NODE2的时候发现vip确实由NODE2飘到NODE1节点上了,可是状态依旧是failedover的

方法五:将2个节点都重启,问题依旧

方法六:将vip资源从crs中移除,再添加,不过命令多了一个-k参数。问题依旧

NODE1#[/u01/grid/bin]./srvctl remove vip -i NODE2-vip

NODE1#[/u01/grid/bin]./srvctl add nodeapps -n NODE2 -k 1 -A NODE2-vip/255.255.255.192/lan900

备注:还尝试过类似的其他的很多方法,但是都没解决

经历了3天的不断尝试,终于找到办法:

发现苗头:

查看坏节点VIP的资源依赖:

NODE2#[/u01/grid/bin]./crsctl stat res ora.NODE2.vip -p

NAME=ora.NODE2.vip

TYPE=ora.cluster_vip_net1.type

ACL=owner:root:rwx,pgrp:sys:r-x,other::r–,group

5b24fae4cde99750994428c024162093.gif
install:r-x,user:grid:r-x

ACTION_FAILURE_TEMPLATE=

ACTION_SCRIPT=

ACTIVE_PLACEMENT=1

AGENT_FILENAME=%CRS_HOME%/bin/orarootagent%CRS_EXE_SUFFIX%

AUTO_START=restore

CARDINALITY=1

CHECK_INTERVAL=1

DEFAULT_TEMPLATE=PROPERTY(RESOURCE_CLASS=vip)

DEGREE=1

DESCRIPTION=Oracle VIP resource

ENABLED=1

FAILOVER_DELAY=0

FAILURE_INTERVAL=0

FAILURE_THRESHOLD=0

HOSTING_MEMBERS=node2

LOAD=1

LOGGING_LEVEL=1

NLS_LANG=

NOT_RESTARTING_TEMPLATE=

OFFLINE_CHECK_INTERVAL=0

PLACEMENT=favored

PROFILE_CHANGE_TEMPLATE=

RESTART_ATTEMPTS=0

SCRIPT_TIMEOUT=60

SERVER_POOLS=*

START_DEPENDENCIES=hard(ora.net1.network) pullup(ora.net1.network)

START_TIMEOUT=0

STATE_CHANGE_TEMPLATE=

STOP_DEPENDENCIES=hard(ora.net1.network)

STOP_TIMEOUT=0

UPTIME_THRESHOLD=1h

USR_ORA_ENV=

USR_ORA_VIP=NODE2-vip

VERSION=11.2.0.1.0

查看好节点上的VIP资源依赖:

$ crsctl stat res ora.NODE1.vip -p

NAME=ora.NODE1.vip

TYPE=ora.cluster_vip_net1.type

ACL=owner:root:rwx,pgrp:sys:r-x,other::r–,group

5b24fae4cde99750994428c024162093.gif
install:r-x,user:grid:r-x

ACTION_FAILURE_TEMPLATE=

ACTION_SCRIPT=

ACTIVE_PLACEMENT=1

AGENT_FILENAME=%CRS_HOME%/bin/orarootagent%CRS_EXE_SUFFIX%

AUTO_START=restore

CARDINALITY=1

CHECK_INTERVAL=1

DEFAULT_TEMPLATE=PROPERTY(RESOURCE_CLASS=vip)

DEGREE=1

DESCRIPTION=Oracle VIP resource

ENABLED=1

FAILOVER_DELAY=0

FAILURE_INTERVAL=0

FAILURE_THRESHOLD=0

HOSTING_MEMBERS=NODE1

LOAD=1

LOGGING_LEVEL=1

NLS_LANG=

NOT_RESTARTING_TEMPLATE=

OFFLINE_CHECK_INTERVAL=0

PLACEMENT=favored

PROFILE_CHANGE_TEMPLATE=

RESTART_ATTEMPTS=0

SCRIPT_TIMEOUT=60

SERVER_POOLS=*

START_DEPENDENCIES=hard(ora.net1.network) pullup(ora.net1.network)

START_TIMEOUT=0

STATE_CHANGE_TEMPLATE=

STOP_DEPENDENCIES=hard(ora.net1.network)

STOP_TIMEOUT=0

UPTIME_THRESHOLD=1h

USR_ORA_ENV=

USR_ORA_VIP=NODE1-vip

VERSION=11.2.0.1.0

从以上来看,发现一个小小的问题—大小写,马上登录其他的测试环境(模拟了2套failover的测试环境)查看发现也是这样的情况,坏节点的是大写,好节点的是小写,并且又查看了正常的rac环境,发现都是小写的,再检查srvctl add vip -h查看-n后面并没说要小写的主机名,所以开始打算这里接小写的主机名试试

步骤如下:

1、srvctl stop vip -n 坏节点

2、srvctl stop nodeapps -n 坏节点

3、srvctl remove vip -i NODE2-vip

4、srvctl add vip  -n node2 -k 1 -A NODE2-vip/255.255.255.192/lan900

5、srvctl start nodeapps -n node2

6、crsctl stat res -t

发现vip启动了,并且listener也启动了(这里忘记取listener的状态了~~)

ora.NODE1.vip

1        ONLINE  ONLINE       NODE1

ora.NODE2.vip

1        ONLINE  ONLINE       NODE2

ora.oc4j

1        OFFLINE OFFLINE

ora.scan1.vip

1        ONLINE  ONLINE       NODE1

ora.scan2.vip

1        ONLINE  ONLINE       NODE1

ora.scan3.vip

1        ONLINE  ONLINE       NODE1