`
JavaLuSir
  • 浏览: 19507 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle12537

阅读更多
ORA-12537错误的解决
Author : rainnyzhong
Date: 2009-6-5
服务器配置:

DB VERSION:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi 专用服务器
OS: Linux ecv33.localdomain 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
OS RAM:8G
症状描述:

用SQLPLUS连接DB报:
ERROR:
ORA-12537: TNS:connection closed       

检查listener.log,看到很多如下错误:
05-JUN-2009 13:24:26 * (CONNECT_DATA=(SID=ORA33)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.17.16.234)(PORT=1487)) * establish * ORA33 * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
  TNS-12560: TNS:protocol adapter error
   TNS-00517: Lost contact
    Linux Error: 32: Broken pipe

检查sqlnet.log,报很多类似如下的错误:
***********************************************************************
Fatal NI connect error 12537, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.16.33)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ora33)(CID=(PROGRAM=sqlplus)(HOST=ecv33.localdomain)(USER=oracle))))

  VERSION INFORMATION:
       TNS for Linux: Version 10.2.0.1.0 - Production
       TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production
  Time: 05-JUN-2009 13:24:52
  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: 507
    TNS-00507: Connection closed
    nt secondary err code: 0
nt OS err code: 0
原因分析:

(1)检查实例参数:
n         PROCESSES:300
n         SESSIONS:350
(2)检查v$resource_limit

当实际的进程数达到200个左右时,就连不到ORACLE了。报ORA-12537错。当发生这种错误时,一般是由于PROCESS参数设得不够大所导致,但这个CASE有点例外,当实际进程数达到200时就不行了,这是为什么呢?
这是因为,还有一个原因会导致这个错误的发生:那就是OS的内存使用状况。当OS的内存使用率达到90%以上时,既使是还可以再建立100个进程,但此时由于OS再也分配不出更多的内存来给ORACLE的服务进程了,所以监听器就没办法给进来和客户端连接启动一个专用的ORACLE SERVER PROCESS(我们知道,在DEDICATED SERVER模式,一个客户端连接的建立,ORACLE就会启动一个专用的SERVER PROCESS来服务这个客户端连接)。我们来检查一下OS的内存状况:
[oracle@ecv33 admin]$ free
             total       used       free     shared    buffers     cached
Mem:       8160800    8142776      18024          0      10236    6809660
-/+ buffers/cache:    1322880    6837920
Swap:      8388600     104252    8284348

果然,OS的内存使用率已达99%了。
解决方法:

增加ORACLE服务器的物理内存
分享到:
评论

相关推荐

    oracle常见错误集(01653\12541\12537)和处理方法

    "Oracle 常见错误集(01653、12541、12537)和处理方法" Oracle 是一种广泛使用的关系型数据库管理系统,但是在实际使用中,我们经常会遇到各种错误,影响数据库的正常运行。本文将介绍三个常见的 Oracle 错误:Ora...

    odbc驱动包,解决navicate连接oracle数据库

    Oracle ODBC驱动程序是一个特定于Oracle数据库的接口,它允许Navicate通过ODBC数据源来连接并操作Oracle数据库,执行SQL查询、数据导入导出等任务。 描述中提到的“解决navicate连接oracle数据库的问题”,这通常...

    Oracle数据库常见问题诊断

    5. TNS-12537、TNS-12560、TNS-00507 Error 特征:LISTENER.ORA 文件中引用了一个无效的协议适配程序 原因:LISTENER.ORA 文件中 PROCOTOL 变量赋值不对。 措施:确保文件中赋值正确,一般用 TCP 协议,$ORACLE_...

    Oracle_ORA-12518故障_处理

    客户端可能会接收到ORA-12518或其他断开连接错误,如ORA-12537等。一旦在监听器日志中发现了TNS-12518错误,可以按照以下步骤进行处理: 1. **查看监听器日志**:首先检查监听器日志文件,确认错误的具体信息。这有...

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

Global site tag (gtag.js) - Google Analytics