某个客户数据库在巡检的时候发现alert日志里不定期会出现ORA-609错误,大致内容如下:

***********************************************************************

Fatal NI connect error 12537, connecting to:

(LOCAL=NO)

VERSION INFORMATION:

TNS for HPUX: Version 11.2.0.3.0 - Production

Oracle Bequeath NT Protocol Adapter for HPUX: Version 11.2.0.3.0 - Production

TCP/IP NT Protocol Adapter for HPUX: Version 11.2.0.3.0 - Production

Time: 19-OCT-2014 20:24:16

Tracing not turned on.

Tns error struct:

ns main err code: 12537

TNS-12537: TNS:connection closed

ns secondary err code: 12560

nt main err code: 0

nt secondary err code: 0

nt OS err code: 0

opiodr aborting process unknown ospid (2734) as a result of ORA-609

Sun Oct 19 21:27:24 2014

***********************************************************************

由于ORA-609的缘故,ospid(xxxx)进程被aborting了,同时还伴随着TNS-12537的错误,连接关闭

去MOS搜了一圈,正好有篇文档是针对这个错误的,下面是描述:

适用于:

Oracle Net Services - Version 11.2.0.1 to 11.2.0.3 [Release 11.2]

Information in this document applies to any platform.

症状:

alert日志出现以上类似的内容(略)

变化:

Changes in database server load, client connect descriptor, changes in network infrastructure (firewall configuration).

原因:

首先,这个“opiodr aborting process unknown ospid (2734) as a result of ORA-609”消息仅仅是说明了由于ORA-609,使Oracle数据库专用进程被关闭了

来看一段描述:

ORA-609 means  "could not attach to incoming connection" so the database process was 'aborted' (closed) because it couldn't attach to the incoming connection passed to it by the listener.

ORA-609意味着不能通过监听把它附加到即将到来的连接上,因此服务器进程被终止(关闭)

The reason for this is found in the sqlnet error stack, in our case is:

TNS-12537: TNS:connection closed.

Basically the dedicated process didn't have a client connection anymore to work with.

客户端连接有6个步骤:

Client initiates a connection to the database so it connects to the listener

Listener starts (fork) a dedicated database process that will receive this connection (session)

After this dedicated process is started, the listener passes the connection from the client to this process

The server process takes the connection from the listener to continue the handshake with the client

Server process and client exchange information required for establishing a session (ASO, Two Task Common, User logon)

Session is opened

In the case of the above error the connection from the client was closed somewhere between 3. and 4. So when the dedicated process tries to communicate with the client it finds that connection closed.

鉴于以上的错误,在第3步与第4步之间时,客户端连接就关闭了,此时当专有进程尝试与客户端连接时,发现连接已经关闭了

To determine the client which hit this problem we can try to match the timestamp of the error from alert log with an entry in listener.log, but this might be difficult in case of a loaded listener with many incoming connections per second.

Server sqlnet trace will not provide any information about the client.

去确定碰到问题的client,我们可以尝试去匹配alert日志中错误发生的时间戳并且在监听日志中也有相应的条目,但当加载的监听每秒有许多连接的时候是非常困难去判断的,服务器sqlnet的trace不会提供任何该客户端的信息

We can enable sqlnet server trace to catch the error (the match is done based on the ospid found in sqlnet server trace file name and the line with ORA-609 error):

还可以启用sqlnet server的trace中抓取到ORA-609错误,匹配成功基于sqlnet server trace文件名和ORA-609错误信息中的ospid

nscon: doing connect handshake...

nscon: recving a packet

nsprecv: entry

nsprecv: reading from transport...

nttrd: entry

nttrd: exit

ntt2err: entry

ntt2err: Read unexpected EOF ERROR on 15    <<<<<<< error

ntt2err: exit

nsprecv: error exit

nserror: entry

nserror: nsres: id=0, op=68, ns=12537, ns2=12560; nt[0]=507, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0

nscon: error exit

nsdo: nsctxrnk=0

nsdo: error exit

nsinh_hoff: error recving request

可能引起问原因:

Several possible situations can cause this to happen:

client changed its mind and closed the connection immediately after initiating it

client crashed

firewall kills the connection

some oracle timeout set on client

解决方案:

Because the entry from listener.log contains only CONNECT_DATA and CID related information we need to check the client configuration for any sqlnet  timeouts:

possible timeouts in sqlnet.ora in client oracle home:

sqlnet.outbound_connect_time

sqlnet.recv_timeout

sqlnet.send_timeout

tcp_connect_timeout

检查客户端目录中sqlnet.ora的超时设置,通常是这个引起的

possible timeout in client connect descriptor (hardcoded in client application or in client tnsnames.ora):

connect_timeout

检查客户端应用或客户单tnsnames.ora中的超时参数

oracle报609,ORA-609 错误分析及解决方法相关推荐

  1. PLSQL连接Oracle数据库时报ORA 12154错误的解决方法

    pl/sql连接Oracle时遇到的问题: 解决办法:安装后将Oracle安装目录下的文件夹network(包括其中的子文件,其中主要是tnsnames.ora) 在pl/sql菜单–"工具 ...

  2. 关于navicat连接oracle 报 ORA-12737 set CHS16GBK错误的解决方法

    昨天下载安装了navicat 9.0 Premium(高级英文版),连接mysql正常,看到他同时支持sqlserver.oracle.sqlite和postgresql,也想来连接一下oracle, ...

  3. oracle错误号大全(查询ora错误号以及解决方法技巧)

    oracle 查询ora错误号以及解决方法技巧 racle 错误号以及解决方法技巧 经常有朋友问我ORACLE 类似ora-00109 错误的信息,其实我们的ORACLE系统本身已经为我们详细的说明了 ...

  4. oracle pls 00905,【案例】Oracle报错PLS-00714 PLS-00951原因和解决办法笔记

    [案例]Oracle报错PLS-00714 PLS-00951原因和解决办法笔记 时间:2016-11-14 11:07   来源:Oracle研究中心   作者:代某人   点击: 次 天萃荷净 P ...

  5. oracle登录 报ora00604,oracle表空间不足,ORA-00604的解决方法

    参考文章: http://blog.chinaunix.net/uid-26446098-id-3344813.html 错误信息如下: 从错误的角度可以推出:应该是表空间不足 根据查看表空间的使用情 ...

  6. oracle 12 无法启动,Oracle 12.2监听无法启动解决方法

    在自己的虚拟机的做实验,突然发现使用PL/SQL Developer无法连接到数据库,报错ORA-12514,说是监听没有启动. 先介绍虚拟机一下环境:redhat7.2+GI 12.2.0.1+Or ...

  7. oracle服务没有了 原因,一例oracle服务无法启动的原因及解决方法

    摘要 腾兴网为您分享:一例oracle服务无法启动的原因及解决方法,智慧农业,月星家居,余额宝,万达普惠等软件知识,以及企鹅精灵,滴滴专车司机版,c4d导入3dmax,阿纯优品,小飞兔,我没有表情包, ...

  8. mysql数据库报Access denied for user 的解决方法

    mysql数据库报Access denied for user 的解决方法 参考文章: (1)mysql数据库报Access denied for user 的解决方法 (2)https://www. ...

  9. Nginx PHP 报504 Gateway time-out错误的解决方法

    Nginx PHP 报504 Gateway time-out错误的解决方法 参考文章: (1)Nginx PHP 报504 Gateway time-out错误的解决方法 (2)https://ww ...

  10. python https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法

    python爬虫,使用requests库发送https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法: imp ...

最新文章

  1. 【学习笔记】《概率与期望全家桶》(ACM / OI)概率与期望 / 概率论知识小结
  2. 网易盖楼回复的简易实现
  3. 机器学习知识点(十八)密度聚类DBSCAN算法Java实现
  4. windows 安装tensorflow2.0
  5. Qt 的udpSocket通信
  6. 语音识别在智能交通中的几种应用分析
  7. json 例子_json-简单的例子
  8. Linux进程的管理与调度(六) -- Linux下1号进程的前世(kernel_init)今生(init进程)
  9. Operation和OperationQueue实战:异步下载图片并给图片加滤镜
  10. Macbook M1电脑安装svn及使用
  11. 计算机导论dos实验报告,计算机导论实验报告-DOS常用命令的使用.doc
  12. RK3399与MIPI DSI之间在DRM架构下的联结关系
  13. 中国生物降解塑料行业市场运营态势及发展趋势研究报告2022~2028年
  14. 紫砂壶的起源 计算机操作题,紫砂壶的起源与历史发展
  15. 手撕内存拷贝函数 memmove、memcpy
  16. nuxt 设置路由的meta属性,nuxt 怎么设置路由的meta,nuxt 怎么设置router的meta
  17. gitlab rpm包安装方法
  18. android v4l2 4路视频,美菲特4路HDMI视频采集卡
  19. 深低温冷冻保存干细胞要注意哪些
  20. (图形学相关数学知识)-2.对基本概念的理解(一)

热门文章

  1. JAVA中的MDC类_CMake - 用/ MT而不是/ MD编译
  2. axis1.4 wsdl2java_axis2(1.4及以上版本) wsdl2java 使用方式 | 学步园
  3. php定位符,浅析PHP正则表达式定位字符
  4. 更喜欢使用Stream到byte[]
  5. 消费和部署ASP.NET WebApi服务–陷阱
  6. odoo10参考系列--模块清单文件
  7. android butterknife 自定义view,ButterKnife用法详解.md
  8. 编写java判断闰年_编写java程序判断闰年。
  9. markdown 缩进_markdown 常用语法集合
  10. 正弦定理和余弦定理_高三 | 数学必修五正弦定理和余弦定理应用举例考点梳理...