Oracle双机集群连接超时-12170

一、背景

     问题描述: 接朋友求助,有部署的已经运行的oracle集群,通过PL/SQL连接不上。报错如下:

ORACLE连接超时简单有效的解决办法

背景介绍:集群采用RAC架构,两台服务器部署A和B。版本是11g。操作系统是HP-Unix。

技术人员对系统Oracle账号的密码,进行修改,并对机器重启后无法访问地址。

二、问题排查

     1. 首先看服务是否都正常

          a. 先看单节点服务是否正常: srvctl 这个命令

          srvctl status database -d 数据库名 test    这个命令可以看到集群中的数据库test的节点状态。 如果有offline ,或其他异常状态。请修正。

         srvctl status instance -d test  -i 实例名  这个命令查看集群中单节点的实例状态,如果发现实例运行异常的,也是要进行修复。

        经过排查都没有问题。

 附上相关其他命令:

查询所有实例的状态

srvctl status database -d racdb

查询单节点实例的状态

srvctl status instance -d racdb -i racdb1 

关闭所有节点的实例

srvctl stop database -d racdb 

关闭单节点的实例

srvctl stop instance -d racdb -i racdb2 

查看数据库配置

srvctl config database -d racdb

使用srvctl资源控制命令:

srvctl config network 

srvctl config vip 

srvctl status vip 

srvctl config scan

srvctl status scan

srvctl config listener

srvctl status listener

srvctl start/stop listener

srvctl config scan_listener

srvctl status scan_listener

srvctl config asm 

srvctl status asm

srvctl status diskgroup -g data

srvctl remove database -d orcl   

srvctl config nodeapps -a  查看集群VIP

oifcfg getif    查看集群网卡

oifcfg delif    删除集群网卡

oifcfg setif    重新配置集群网卡
 

        b.集群资源管理的命令crsctl 

     一般情况,使用命令crsctl status res -t  查看集群中所有资源状态。

附上其他相关命令:

守护进程状态:

crsctl status res -t -init 

启动/关闭 集群服务:

crsctl start/stop crs

独占模式启动集群:

crsctl start crs -excl -nocrs

检查集群服务状态:

crsctl check crs 

集群自启动:

crsctl enable/disable crs

关闭启动指定资源:

crsctl start/stop res res_name //有的无法单独关闭,因为存在资源依赖关系

查看资源属性:

crsctl status res res_name -f

修改资源属性 :

crsctl modify resource res_name -attr 

从12c开始crsctl start/stop resource 与 crsctl modify resource 不再支持

但是可以添加-unsupported使用

crsctl modify resource res_name -attr  <> -unsupported 

crsctl start/stop res res_name -unsupported 

crsctl start custer 可以对集群的所有节点资源进行操作。(前提是目标节点OHASD进程必须已经启动)

crsctl start crs   对当前节点的资源进行操作,包含OHAS。

   c. 检查服务器oracle监听是否启动:lsnrctl status 也是正常。

      2. 检查网络

Oracle集群为了防止ip漂移的问题,一般都采用Virtual IP +ScanIP的方式部署。

对两个节点的scan状态和配置进行检查。 没有发现任何问题。

srvctl status scan     

ip与虚拟IP之间的对应关系如下:

节点名ip地址virtual IP
A节点192.168.11.117192.168.11.111
B节点192.168.11.118192.168.11.112
scanIp192.168.11.119

PL/SQL通过192.168.11.119 :1521进行连接到集群的。也就是192.168.11.119就是集群对外的地址。 

a. 现在发现单独连接192.168.11.117  和  192.168.11.118都是没有问题的。

b. 采用slqplus 从117 ,118连接到119也是没有问题。

c.从主机C  ping连接到117,118 ,119正常。

d.从主机C telenet 连接到119:1521 无响应,看起来就是超时。

e. 从主机C sqlplus 连接到119:1521 超时连接不上。

f. 从主机C PL/SQL连接到119.1521超时连接不上。

g. 从主机C ping 111,112不通!!!

三、结论

    最终发现是网络问题: g.  从主机C ping 111,112不通。  

起初以为,C--->119    119会自动路由转发至111,112 。所以111,112通不通无所谓,119通就行。

后来怀疑Scan这个东西并不是采用转发的方式,还是需要C与111,112建立连接。立即要求网络部门排查ip情况。 确实发现出故障的时间段,有两个ip被禁用了,111,112!!!

丢,网络安全演练,来源不明ip被禁用!!!

希望给大家提供一点思路: 记得保持scanip +所有 virtualIp可以被主机C访问!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值