ORA-12537错误的解决
来源:互联网 发布:java报表是什么 编辑:程序博客网 时间:2024/05/17 02:29
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服务器的物理内存。
- ORA-12537错误的解决
- ORA-04080 错误的解决
- ORA-06552错误的解决
- ORA-12638错误的解决
- ORA-12514: 错误的解决
- ORA-30036 的错误解决
- 一次ora-12560错误的解决过程!
- 11g的ORA-00845错误解决
- ORA-01940错误的解决过程
- 一则ORA-12500错误的解决案例
- ORA-600(17069)错误的解决过程
- ORA-00257的错误代号及解决
- Oracle Stream ORA-01403 错误的解决
- [转]ORA-12638错误的解决
- Streams复制的ORA-01341错误解决
- ORA-04031错误的解决思路
- ORA-01589错误的解决过程
- ORA-08103错误的解决过程
- 控件安装完,资源文件路径问题
- 【Hibernate】级联操作 cascade 选项
- ORA-01779
- 乱码问题的解决,j2se的
- CVS 使用实例
- ORA-12537错误的解决
- flash中做获取鼠标点击的事件
- .Net开发中的多线程编程
- CSS实现未知内容高度的垂直水平居中(改良版)
- 表索引字段嵌套函数引起的性能问题
- apache配置访问exe文件
- Launcher(主屏/待机) App的BUG: 没有初始化定义CellLayout中屏幕方向的布尔值参数
- Create Zip file in MemoryStream
- 认识Selenium---简单介绍