1.问题描述
Windows Sever 2008 64位,Oracle 11g 11.2.0.4.0,通过RMAN还原之后,Oracle数据库启动之后,几小时之后,没有做什么事情,再次连接,发现ORA错误,错误如下:“ora-00020:maiximun number of process(150) exceeded.”
2.ora-00020解释
1)含义:超出最大进程数(150)。
2)原因:资源打开之后,没有及时的关闭;另一种说法:资源打开之后不正常的关闭界面造成数据库中的进程处于‘不活动(inactive)’状态。
3.尝试方法
查阅网上资料,方法有以下几类:
1)修改oracle最大进程数目:
以sysdba的身份登陆SQL*PLUS,执行alter system set process=数值 scope=spfile; 创建pfile:create pfile from spfile; 重启oracle服务(shutdown immediate,startup)。
通过这种方法更改最大进程为500之后,重启数据库,没有程序连接数据库,第二天一早来,发现数据库又连接不上了,还是报这样的错误。再次查阅网上资料,发现有网友提出是Window的BUG问题,就如2)所述。
2)关于DBControl服务
SQL语句:select sid,serial#,username,program,machine,status from v$session where status='incative',发现username为sysman用户下,program为OMS的程序,有大量的OMS处于‘非活动’状态;
SQL语句:select count(*) from v$session;select count(*) from v$process;通过这两句查找当前会话数的进程数,发现这两项值在不断的变大。
关闭DBControl服务,发现当前进程数和会话数变小了,没有原来的大,而且OMS程序为’inactive’状态的记录没有。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8043290/viewspace-1458674/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8043290/viewspace-1458674/