ORA-12519 错误 进程错误

系统正常运行一个月后,上线第一天出现了下列错误,想了很久没有思路。后来排查出数据库监听异常,发现是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文档要求,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参数  关闭当前运行数据库后正常启动。

修改完毕之后,在进行压力测试的时候,问题解决。也可参考其他解决方法。

--------------------------------------分割线 --------------------------------------

--------------------------------------分割线 --------------------------------------

相关推荐