我尝试登录 sql plus。当我输入用户名和密码作为系统时,它显示消息超出了最大进程数 (150)。我如何解决这个错误。
如果您是 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.以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
典型的 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;
希望有帮助! :)