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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值