• ORA-00020: maximum number of processes (xxxx) exceeded 报错解决方法


    转自:http://blog.51cto.com/lee90/1788124

    今天java开发在连接线上的oracle大量导数据,一会提示连接不上数据库了。我本地用sqldeveloper也连接不上。

    登录到服务器,重启oracle,本地还是不能连接。

    xshell里面登录oracle

    # su - oracle

    # sqlplus / as sysdba    连接Oracle

    提示要输入用户名和密码。

    并报错ORA-00020: maximumnumber of processes (300) exceeded

    根据报错信息是由于processes进程数达到了最大值。

    常规方法无法登录,我们连接时候要加上-prelim参数

    # sqlplus -prelim/ as sysdba 这样终于登录进Oracle的SQL界面

    【参考http://blog.sina.com.cn/s/blog_ad6555610101ar4t.html 、 http://blog.sina.com.cn/s/blog_ad6555610101ar46.html】

    SQL> set linesize 500;

    SQL> show parameter processes;

    wKiom1dc1jKw2j-3AAA3OXOp6Hs241.png

    可以看到默认的processes设置的是300. 太小了,稍后我们得改一改。

    系统生产系统,不能重启数据库,好在系统过了一会儿恢复正常了。主要是因为大量数据库的插入修改操作造成的。

    解决方案:

    在系统空闲时,修改系统processes参数为1000,重启数据库。【processes参数是静态参数,修改后需要启动数据库。】

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

    SQL> SHUTDOWN IMMEDIATE;

    SQL> STARTUP;

    SQL> show parameter processes;

    wKioL1dc10HBvNdZAAA0NuXXhyo213.png

    可以看到现在processes 参数被改成1000了。

    我们再执行

    SQL> show parameter spfile;  看下spfileora11g.ora文件的路径

    wKiom1dc1jPRSvX9AAAlOp8ivN4838.png

    然后退出oracle控制台,到shell终端界面。

    # cp /data/oracle/product/11.2.0/db_1/dbs/spfileora11g.ora/tmp

    # vim /tmp/spfileora11g.ora  【这是个二进制文件,打开会显示部分乱码,但是我们能看到processes=1000,说明已经写入配置文件了】

    wKioL1dc10HRjV68AAAPw1__Jlg165.png

  • 相关阅读:
    中间件的应用
    报表和日志
    Cookie和Session
    表单的应用
    静态资源和Ajax请求
    导入导出EXEC
    DATEDIFF() 函数返回两个日期之间的时间
    解决echarts柱形图X轴标题显示不全的问题
    Sqlserver 游标 慢
    sql语句根据日期查询,本周,本月,本年,今日相关统计
  • 原文地址:https://www.cnblogs.com/sharpest/p/10159949.html
Copyright © 2020-2023  润新知