某个客户数据库在巡检的时候发现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 listenerListener 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 processThe server process takes the connection from the listener to continue the handshake with the clientServer 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中的超时参数
————————————————
版权声明:本文为CSDN博主「aaron8219」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aaron8219/article/details/41447625

ORA-609 错误分析及解决方法 (转载)的更多相关文章

  1. “error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)

    解决方案: “error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载) 遇到的问题: 在.h头文件中采用namespace 命名空间报错 test.h namespace LMR ...

  2. MySQL常见错误分析与解决方法总结

    MySQL常见错误分析与解决方法总结 一.Can't connect to MySQL server on 'localhost' (10061)翻译:不能连接到 localhost 上的mysql分 ...

  3. 为何存在requests库,pycharm依然报错解决方法 --转载

    原文地址:https://www.jianshu.com/p/e28a72ba7809 今天在使用pycharm的时候,用到了第三档库requests,提示有错误,报错显示 No module nam ...

  4. centos 5的yum源无法使用的解决方法( 转载)

    由于centos 5 已经停更.于是导致yum源也不能用了. 例如安装screen的时候提示 Determining fastest mirrors* base: denver.gaminghost. ...

  5. UILabel顶部对齐解决方法(转载)

    问题 我有一个UILabel高度最多能显示两行,如果里面内容只有一行,它是垂直居中的.怎么能让它顶端对齐呢?   回答 答案1:用sizeToFit改变UILabel的高度 nevan king,19 ...

  6. java.lang.OutOfMemoryError: PermGen space及其解决方法(转载)

    java.lang.OutOfMemoryError: PermGen space及其解决方法 分类: java2007-09-11 12:34 162242人阅读 评论(51) 收藏 举报 gene ...

  7. eclipse一直卡住,出现 “android sdk content loader 0%” 卡住的错误分析及解决方法

    分析:这种问题之前没有遇到过,也不知道什么原因,直接去网上查询,打开www.stackoverflow.com,输入要查询问题的关键词,我们输入 “android sdk content loader ...

  8. Firefox火狐Flash插件卡死问题完美解决方法(转载)

    http://www.ihacksoft.com/firefox-flash-protectedmode.html 其实这个问题以前就出现过,而最近该问题又出现在最新的 Windows 8.1 系统中 ...

  9. R6010 -abort() has been called错误分析及其解决方法

    近期使用vs2010编程出现下面问题.在网上收集了大家的意见之后,整理了一下 导致出现这种原因有: 1.非法指针訪问和内存泄漏 2.大家再查查吧.一定是指针出现故障了.设置的指针范围跟你执行的不正确 ...

  10. C#调用matlab出错r6034错误解决方法[转载]

    在c#调用MATLAB时,在运行第一次会出现r6034错误. 解决方法如下: 1.在MCR安装目录下D:\Program Files\MATLAB\MATLAB Compiler Runtime\v7 ...

随机推荐

  1. linux安装go开发环境

    1下载go wget https://studygolang.com/dl/golang/go1.12.7.linux-amd64.tar.gz执行此命令会将go1.12.7.linux-amd64. ...

  2. javascript 代码实例

    数组去重 function unique(arr){ if(!Array.isArray(arr)){ console.log('type error!'); return; } arr = arr. ...

  3. 【LEETCODE】55、数组分类,适中级别,题目:79、611、950

    第950题,这题我是真的没想到居然会说使用队列去做,大神的答案,拿过来瞻仰一下 package y2019.Algorithm.array; import java.util.HashMap; imp ...

  4. vim实用操作指南

    一.查看文件编码 :set fileencoding :set fileencoding=utf-8 通过该命令可直接将文件修改为UTF-8编码 强制以指定编码打开,vim中 :e ++enc=utf ...

  5. LOJ2026 JLOI/SHOI2016 成绩比较 组合、容斥

    传送门 感觉自己越来越愚钝了qwq 先考虑从\(n-1\)个人里安排恰好\(k\)个人被碾压,然后再考虑如何分配分数,两者乘起来得到答案. 对于第一部分,可以考虑容斥:设\(f_i\)表示\(i\)个 ...

  6. golang ---CPU信息

    package main import ( "fmt" "github.com/StackExchange/wmi" ) type gpuInfo struct ...

  7. Centos 7 替换镜像源

    1 备份原始源 [root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.b ...

  8. 论文笔记 XGBoost: A Scalable Tree Boosting System

    XGBoost是boosting算法的其中一种.Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器,其更关注与降低基模型的偏差.XGBoost是一种提升树模型(Gradient bo ...

  9. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查

    背景 最近在整合pyspark与hive,新安装spark-2.3.3以客户端的方式访问hive数据,运行方式使用spark on yarn,但是在配置spark读取hive数据的时候,这里直接把hi ...

  10. 删除注册在Eureka的服务(无效,多余)

    例子:http://140.143.67.146:8000/eureka/eureka/apps/ZKR-PRODUCT/172.21.0.10:zkr-product:6868 Request Me ...