zoukankan      html  css  js  c++  java
  • ORA12519错误解决方案

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

    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参数   关闭当前运行数据库后正常启动。

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

  • 相关阅读:
    使用代理加快SDK Manager的下载速度
    ADT-Bundle运行的错误的排错
    转:Android开发之JNI入门-NDK从入门到精通
    Android NDK的总总误解
    mysql 数据库 一些常用语句 查内存 索引内存
    递归方法 练习编写
    ES 搜索概述
    PHP 数字类型 加 减 乘 除运算 bc函数
    php 控制反转 和 依赖注入
    Thinkphp 3 和 Thinkphp5 区别
  • 原文地址:https://www.cnblogs.com/dba_xiaoqi/p/1866459.html
Copyright © 2011-2022 走看看