ITPub博客

首页 > 数据库 > Oracle > Fatal NI connect error 12170的处理

Fatal NI connect error 12170的处理

原创 Oracle 作者:wx13062302674 时间:2024-12-12 12:15:58 0 删除 编辑

Fatal NI connect error 12170的处理


1、背景

原服务器windows 2016 运行了oracle数据库多年,近期迁移到linux环境下后,业务大量的反馈,过一段时间自动掉线、plsql查询也是只要空闲了过一会再去执行查询就需要重新登录。

原环境:windows,oracle 11.2.0.4 ,业务使用的是真实的网卡地址192.168.0.2

新环境:linux,oracle 11.2.0.4 ,业务使用的是192.168.0.2,但是真实地址是0.177

2、排查过程

通过查看后台,发现大量的掉线:



3、处理流程

按照以往的运维经验来看,这个 大概率 是防火墙的长连接没有打开导致。但用户坚持说以前都没有问题,就是换了服务器后开始出现的。这里我就怀疑可能是ip地址存在多个,vip在0.177上挂载,可能还得开0.7到其它网段的双向tcp长连接才行,但由于网络厂商配合程度不高,只有试着调整监听日志和操作系统的网络参数解决。

查询mos:

-- Alert Log Errors: 12170 TNS-12535/TNS-00505: Operation Timed Out (Doc ID 1628949.1)


sqlnet.ora文件,增加两行
SQLNET.EXPIRE_TIME=
3
SQLNET.INBOUND_CONNECT_TIMEOUT=
0##最开始我设置得10分钟,但设置后过一会还是会断开,然后设置到了3分钟,问题得到了解决。
listener.ora文件: 
INBOUND_CONNECT_TIMEOUT_LISTENER=
0



lsnrctl stop lsnrctl start


--设置linux服务器参数应该也能解决,我这里就没继续设置了。# tcp keepalivenet.ipv4.tcp_keepalive_time = 60    # 探活周期1分钟net.ipv4.tcp_keepalive_intvl = 20    # 探测没有确认时,重新发送探测的频度。默认75s -> 20snet.ipv4.tcp_keepalive_probes = 3    # 3 * 20 = 1分钟超时断开


4、总结

**特别注意的是,设置完成后,如果应用存在重连功能的,没有作用。另外之前建立的链接还是会超时,只对新的会话生效。

**为了干脆的解决问题,空闲时段我将会话全部提出,今日再次观察,运行正常,不再有掉线的发生。



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27147296/viewspace-3056490/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: pg等保设置实操
请登录后发表评论 登录
全部评论
拥有oracle ocp,mysql ocp,pg ace,精通oracle底层恢复,精通pg,如文件勒索、触发器勒索恢复,asm磁盘组各种故障处理,在各行业中帮助用户恢复了大量的数据。公众号:数据库技术加油站,欢迎关注!

注册时间:2018-08-30

  • 博文量
    44
  • 访问量
    58093