共计 1060 个字符,预计需要花费 3 分钟才能阅读完成。
行业资讯
数据库
ORA-00020: maximum number of processes (xxxx) exceeded 报错解决方法
自动写代码机器人,免费开通
今天 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;
可以看到默认的 processes 设置的是 300. 太小了,稍后我们得改一改。
系统生产系统,不能重启数据库,好在系统过了一会儿恢复正常了。主要是因为大量数据库的插入修改操作造成的。
解决方案:
在系统空闲时,修改系统 processes 参数为 1000,重启数据库。【processes 参数是静态参数,修改后需要启动数据库。】
SQL alter system set processes=1000 scope=spfile;
SQL SHUTDOWN IMMEDIATE;
SQL STARTUP;
SQL show parameter processes;
可以看到现在 processes 参数被改成 1000 了。
我们再执行
SQL show parameter spfile; 看下 spfileora11g.ora 文件的路径
然后退出 oracle 控制台,到 shell 终端界面。
# cp /data/oracle/product/11.2.0/db_1/dbs/spfileora11g.ora/tmp
# vim /tmp/spfileora11g.ora 【这是个二进制文件,打开会显示部分乱码,但是我们能看到 processes=1000,说明已经写入配置文件了】
向 AI 问一下细节丸趣 TV 网 – 提供最优质的资源集合!