ORA-0020:超出最大进程数 (150)

问题描述 投票:0回答:3

我尝试登录 sql plus。当我输入用户名和密码作为系统时,它显示消息超出了最大进程数 (150)。我如何解决这个错误。

oracle11g sqlplus
3个回答
2
投票

如果您是 DBA 或拥有 DBA 权限,您可以执行以下操作:

增加Oracle数据库级别进程/会话数量的步骤如下

  1.  Log on to the database as system administrator

• 在 SQL Plus 中输入:“connect / as sysdba”

  2. Set the number of processes to be desired value <num_processes>

• 在 SQL Plus 中“更改系统集进程={num_processes} 范围=spfile”

  3. Unset the number of sessions to remove the default session limit 

• 在 SQLPlus 中“更改系统重置会话范围=spfile sid='*'”

  4. Shutdown the database 

• 在 SQL Plus 中“立即关闭”

  5. Startup the database  

• 在 SQL Plus 中“启动”

   6. Check the changes have taken effect. 

• 在 SQL Plus 中“显示参数会话”和“显示参数 流程”

或运行查询

select value from v$parameter where name = 'processes'


1
投票

Oracle 文档

1.以sysdba身份登录

sqlplus / as sysdba

2.检查当前参数设置

sql> show parameter sessions
sql> show parameter processes
sql> show parameter transactions

3.如果您计划增加“PROCESSES”参数,您还应该计划增加“sessions”和“transactions”参数 确定这些参数值的基本公式如下:

processes=x
sessions=x*1.1+5
transactions=sessions*1.1

4.这些参数在内存中不能修改。您只需修改 spfile (scope=spfile) 并反弹实例。

sql> alter system set processes=500 scope=spfile;
sql> alter system set sessions=555 scope=spfile;
sql> alter system set transactions=610 scope=spfile;
sql> shutdown abort
sql> startup

0
投票

典型的 ORA 错误

ORA-00020: maximum number of processes (150) exceeded

故障排除

  SQL> show parameter sessions

  SQL> show parameter processes
       

SQL> select value from v$parameter where name = 'processes';

v$resource_limit 对于日常工作来说是一个非常有用的视图,因为您可以立即查看是否有或曾经有某个进程达到了其限制:

SQL> select resource_name, current_utilization, max_utilization, limit_value from v$resource_limit where resource_name in ('sessions', 'processes');
     

如果您必须增加允许的最大会话数,那么我会将进程数从 150 增加到 800。

SQL> alter system set processes=800 scope=spfile sid='*';

SQL> shutdown immediate;

SQL> startup;

希望有帮助! :)

© www.soinside.com 2019 - 2024. All rights reserved.