ORA-00020: maximum number of processes (xxxx) exceeded 报错解决方法
(1)ORA-00020: maximum number of processes (xxxx) exceeded
【问题简述】由于processes进程数达到了最大值。
一般解决办法,关闭tomcat,关闭ORACLE重启数据库,从而达到清理数据库连接过多、进程数过多的问题,但这一操作最大的问题就是会在关闭数据库及tomcat过程当中造成数据丢失
【问题表现】数据无法正常写入数据库,PLSQL客户端无法正常登陆,无法通过服务器正常连接ORACLE数据库
【解决办法】# su - oracle # sqlplus / as sysdba 连接Oracle ,但提示要输入用户名和密码。
并报错ORA-00020: maximumnumber of processes (300) exceeded
常规方法无法登录,网上给出的方案,在连接时候,加上-prelim参数
# sqlplus -prelim/ as sysdba (通过这种方式可以正常进入数据库,并设置最大连接数和重启数据库)
但很多时候会遇到另外一个报错,ORA-09817: Write to audit file failed
我的理解是,数据库目前可以使用的空间不足,无法正常通过登录数据库对其进行操作,所以在通过上述方式连接数库之前,需要对数据库的空间进行清理,直接清理trace文件即可,主要是用于跟踪数据库的报错信息,一般没有太大用处,但是会占用空间,我的路径是在 /usr/u01/app/diag/rdbms/orcl/orcl/trace ,可供参考。
进去到trace文件夹的上一层,删除一些trace文件,让出空间。 删除30天以前的trace文件:find trace -ctime +30 |xargs rm -f (我反正没有成功,说是找不到trace文件,“*.trace”也不行),执行完上述不走之后,即可腾出一部分的空间。
最后重新执行前面的登录数据库,重启数据库,重启数据监听即可。