又出现一次,归纳了一下处理方法如下(主要是VIP处理ok了, 监听服务单独就可以开启了):
节点2 因为网络断开一会,导致了vip漂移到节点1 。 监听服务呈现offline 状态 。
ecsrac02$crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.ecsdb.db application ONLINE ONLINE ecsrac01
ora....b1.inst application ONLINE ONLINE ecsrac01
ora....b2.inst application ONLINE ONLINE ecsrac02
ora....01.lsnr application ONLINE ONLINE ecsrac01
ora....c01.gsd application ONLINE ONLINE ecsrac01
ora....c01.ons application ONLINE ONLINE ecsrac01
ora....c01.vip application ONLINE ONLINE ecsrac01
ora....02.lsnr application OFFLINE OFFLINE
ora....c02.gsd application ONLINE ONLINE ecsrac02
ora....c02.ons application ONLINE ONLINE ecsrac02
ora....c02.vip application ONLINE ONLINE ecsrac01
查看服务名称:
ecsrac02$crs_stat
NAME=ora.ecsdb.db
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
NAME=ora.ecsdb.ecsdb1.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
NAME=ora.ecsdb.ecsdb2.inst
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac02
NAME=ora.ecsrac01.LISTENER_ECSRAC01.lsnr
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
NAME=ora.ecsrac01.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
NAME=ora.ecsrac01.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
NAME=ora.ecsrac01.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
NAME=ora.ecsrac02.LISTENER_ECSRAC02.lsnr
TYPE=application
TARGET=OFFLINE
STATE=OFFLINE
NAME=ora.ecsrac02.gsd
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac02
NAME=ora.ecsrac02.ons
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac02
NAME=ora.ecsrac02.vip
TYPE=application
TARGET=ONLINE
STATE=ONLINE on ecsrac01
试图单独开启监听服务 (因为vip的漂移,不会成功) :
ecsrac02$crs_start ora.ecsrac02.LISTENER_ECSRAC02.lsnr
ecsrac01 : CRS-1019: Resource ora.ecsrac02.LISTENER_ECSRAC02.lsnr (application) cannot run on ecsrac01
ecsrac02 : CRS-1018: Resource ora.ecsrac02.vip (application) is already running on ecsrac01
CRS-0223: Resource 'ora.ecsrac02.LISTENER_ECSRAC02.lsnr' has placement error.
我们可以看到报错中有一个 ecsrac02 : CRS-1018: Resource ora.ecsrac02.vip (application) is already running
on ecsrac01 错误, 表示节点2的VIP已经漂移到了节点1 ( 这里节点1机器名称为 ecsrac01 ) 。因为VIP的漂移导致节
点2的监听不能在节点1上运行 (节点2本身的监听是正常的,但是只显示一个实例,可以通过lsnrctl stat 查看 ) 。 所以需
要监听正常, 首先需要节点2的VIP 重新运行到节点2上 。 从 ora....c02.vip application ONLINE ONLINE ecsrac01 上可以看到节点2 VIP 是运行在 ecsrac01 节点1机器上 。
我们在处理监听之前,先处理VIP . 查看节点2 VIP 对应的服务名称 (通过 crs_stat -v 查看 )
ecsrac02$crs_stop ora.ecsrac02.vip
Attempting to stop `ora.ecsrac02.vip` on member `ecsrac01`
Stop of `ora.ecsrac02.vip` on member `ecsrac01` succeeded.
ecsrac02$crs_start ora.ecsrac02.vip
Attempting to start `ora.ecsrac02.vip` on member `ecsrac02` --- 重新运行到节点2上,前提是网络恢复正常 。
Start of `ora.ecsrac02.vip` on member `ecsrac02` succeeded.
ecsrac02$crs_start ora.ecsrac02.LISTENER_ECSRAC02.lsnr
Attempting to start `ora.ecsrac02.LISTENER_ECSRAC02.lsnr` on member `ecsrac02`
Start of `ora.ecsrac02.LISTENER_ECSRAC02.lsnr` on member `ecsrac02` succeeded.
ecsrac02$
查看状态:
ecsrac02$crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.ecsdb.db application ONLINE ONLINE ecsrac01
ora....b1.inst application ONLINE ONLINE ecsrac01
ora....b2.inst application ONLINE ONLINE ecsrac02
ora....01.lsnr application ONLINE ONLINE ecsrac01
ora....c01.gsd application ONLINE ONLINE ecsrac01
ora....c01.ons application ONLINE ONLINE ecsrac01
ora....c01.vip application ONLINE ONLINE ecsrac01
ora....02.lsnr application ONLINE ONLINE ecsrac02
ora....c02.gsd application ONLINE ONLINE ecsrac02
ora....c02.ons application ONLINE ONLINE ecsrac02
ora....c02.vip application ONLINE ONLINE ecsrac02
---------------------------
测试了一下下面的方式,好像没有效果 。
手工将VIP飘回来:
1, 先将vip漂回来
crs_relocate ora.node1.vip -c node1
2, 再启动asm和实例
srvctl start asm -h
srvctl start instance -h
执行 crs_relocate 倒是可以,不过等了很久ifconfig -a 还是没有看到虚拟IP 出现 ,节点2的实例本来是开启状态,按照第二步需要关闭然后再开启 ?