Oracle 10.2.0.4 RAC, ASM , 两个节点
今天上午收到一个朋友的电话, 说RAC库的两个实例上的监听状态都是offline的, 但是对应的target是online , 需要帮忙登过去看看。 期间他们又重新启动了两节点, 一个监听又可以启动了, 另外一个还是offline 的。 vip 都在自己本机上,没有发生漂移, 应该不是网络问题 。
按照以往的经验, 我使用如下命令企图启动节点2上的监听:
crs_start ora.ecsrac02.LISTENER_ECSRAC02.lsnr 结果失败 。
开启时报错信息是: vip1, vip2 已经分别运行在节点1, 2 上 。
怀疑是不是监听文件被修改了, 但是朋友那边的DBA 是新来的, 库是前任DBA建立的, 他不清楚是否有更改过 ,说好象没有动过, 我也没有仔细看, 试图通过 crs_stop -all , 然后 crs_start -all 处理, 结果还是报错, 两个监听都offline 了 。
根据报错信息, 查看节点1 的 listener.log 文件, 发现log中的报错: missing listener name , LISTENER_ECSRAC01 , 然后去查看listener.ora 文件, 果然, 发现监听文件名称好象是被某人更改为了LISTENER 及 SID_LIST_LISTENER , 而不是类似下面的 LISTENER_ECSRAC01 及 SID_LIST_LISTENER_ECSRAC01 。 修改两个节点的监听文件后, crs_stop -all ,然后 crs_start -all , 开启服务全部OK , 监听都online 了 。 期间还检查了 /etc/hosts , 发现他们没有加入 127.0.0.1 localhost 在 /etc/hosts 中, 我们也加入了, 不过应该和这个没有关系 。
问题虽然解决了, 但是感觉自己走了一点弯路, 我们在测试stop 然后start 之后, 报错的话, 第一时间就应该找log , log会给我们非常直观的解决方法 。
SID_LIST_LISTENER_ECSRAC01 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/product/oracle)
(PROGRAM = extproc)
)
)
LISTENER_ECSRAC01 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mxvip01)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.67.171)(PORT = 1521)(IP = FIRST))
)
)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-700429/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-700429/