在10g中,当发生ORA-00020时,sqlplus登陆会报“connected to an idle instance”
来源于:
Sqlplus Logon Reports 'connected to an idle instance' when ORA-20 happens in 10g (文档 ID 1370000.1)
说的比较经典, 不做翻译,直接转帖:
Oracle Server - Enterprise Edition - Version: 10.1.0.4 to 10.2.0.5 - Release: 10.1 to 10.2
Information in this document applies to any platform.
When the maximum number of processes is reached, and a next normal logon reports an ORA-20, a subsequent local connect as sysdba reports:
SQL> connect / as sysdba
Connected to an idle instance.
Trying to start up the database reports:
ORA-01081: cannot start already-running ORACLE - shut it down first
The issue can be reproduced with the following steps:
1. Using a 10g database, build sufficient processes until an ORA-20 occurs
2. Then execute
SQL> connect / as sysdba
This is expected behavior in Oracle 10g, and is explained in unpublished
Bug 2935090 - SQLPLUS REPORTS CONNECT TO IDLE INSTANCE WHEN INSTANCE REACHES MAX PROCESSES.
The reason we don't display error ORA-20 is because you are login as
sysdba. Being DBA user you must be able to login regardless of the status of
the database, so that you can take the necessary action to rectify the
problem.
As when login as normal user, you are getting the appropriate error but does
not tell you the process limit. This is because the message is from rdbms
layer so we have no control of that. In any case, the cause and Action for
this message state very clear that what you need to do.
.
00020, 00000, "maximum number of processes (%s) exceeded"
// *Cause: All process state objects are in use.
// *Action: Increase the value of the PROCESSES initialization parameter.
Ignore this 'Connected to an idle instance.' message and handle it just as a normal ORA-20 error.
The behavior has been changeg in Oracle 11g where it reports an 'ORA-20' instead of 'Connected to an idle instance.'