日期:2014-05-16 浏览次数:20394 次
最近项目经常报ORA-12519错误,网上查了发现是ORACEL的最大连接数限制
--------------------------------------------------
系统正常运行一个月后,上线第一天出现了下列错误,想了很久没有思路。
java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))
后来排查出数据库监听异常,发现是ORA-12519拒绝错误。后来发现是数据的连接池达到的极致。
具体解决方案如下:
<!-- google_ad_client = "pub-6528035073399554"; /* 728x90, 创建于 10-10-29 */ google_ad_slot = "1975102010"; google_ad_width = 728; google_ad_height = 90; //-->?--首先检查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???? 160shared_server_sessions?????????????? integer
SQL>?
SQL> select count(*) from v$session;
? COUNT(*)
----------
??????? 153--同样几乎达到顶峰。
?
--修改oracle的process和session值,加大他们最大连接数。
--oracle文档要求,SESSIONS和TRANSACTIONS的初始化参数应该源于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参数?? 关闭当前运行数据库后正常启动。
?