今天遇到一个系统,数据库无法正常运行,查看数据库的进程发现数据库已宕,结果如下:
 
[oracle@xiaowu ~]$ ps -ef | grepora_
oracle 6218 6161 0 09:39 pts/2 00:00:00 grepora_
 
用超级管理员用户登录数据库时,系统报 ORA-00020的错误,很奇怪,数据库未启动,还报进程数超上限的错误。
 
[oracle@xiaowu ~]$ sqlplus / assysdba
 
SQL*Plus: Release 11.2.0.1.0Production on Wed Oct 23 10:48:12 2013
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
ERROR:
ORA-00020:maximum number ofprocesses (500) exceeded
 
Enter user-name:
 
解决 ORA-00020错误,加大processes的参数值即可,但是需要正常启动数据库并成功登陆后才能修改,但是现在数据库都无法正常启动, 一时想不到解决方法,最后求助资深DBA解决,方法如下:
首先通过加参数 “-prelim” 成功登陆数据库,注意空格
[oracle@xiaowu ~]$ sqlplus -prelim / as sysdba
 
SQL*Plus: Release 11.2.0.1.0Production on Wed Oct 23 11:10:09 2013
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
SQL> 
 
此时就可以正常关闭和开启数据库,安装如下命令操作解决问题:
 
shutdown immediate;
startup;
show parameter processes;
alter system set  processes=1000 scope=spfile;
startup force;
show parameterprocesses;
exit;