Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1582802
  • 博文数量: 157
  • 博客积分: 1776
  • 博客等级: 上尉
  • 技术积分: 1786
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-19 10:49
文章分类

全部博文(157)

文章存档

2018年(1)

2017年(12)

2015年(6)

2014年(17)

2013年(51)

2012年(65)

2011年(5)

分类: Oracle

2012-05-28 14:46:28

以下摘抄自 临风笛 的图书馆,原文链接地址为

系统正常运行一个月后,上线第一天出现了下列错误,想了很久没有思路。

java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))

后来排查出数据库监听异常,发现是ORA-12519拒绝错误。后来发现是数据的连接池达到的极致。

具体解决方案如下:

 --首先检查process和session的使用情况,在sqlplus里面查看。

SQL> show parameter processes

NAME                         TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     6
gcs_server_processes                 integer     0
job_queue_processes                  integer     0
log_archive_max_processes            integer     2
processes                    integer     150
 

 

SQL> select count(*) from v$process;

  COUNT(*)
----------
       147
 

 

--明显process已经几乎达到了顶峰。

 

 

SQL> show parameter session

NAME                         TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
logmnr_max_persistent_sessions       integer     1
session_cached_cursors               integer     20
session_max_open_files               integer     10
sessions                     integer     160

shared_server_sessions               integer
SQL> 
 

 

SQL> select count(*) from v$session;

  COUNT(*)
----------
        153

--同样几乎达到顶峰。

 

--修改oracle的process和session值,加大他们最大连接数。

--oracle文档要求,SESSIONSTRANSACTIONS的初始化参数应该源于PROCESSES参数,根据默认设置SESSIONS = PROCESSES * 1.1 + 5

 

SQL> alter system set processes=300 scope=spfile;

System altered.

SQL> alter system set sessions=335 scope=spfile;

System altered.

 

--重启数据库后参数修改完成

SQL> shutdown      --如果长时间没反应可能是连接请求没又关闭,也可以使用  abort参数直接关闭

SQL> startup         --可以用 force参数   关闭当前运行数据库后正常启动。

 

 修改完毕之后,在进行压力测试的时候,问题解决。

阅读(1174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~