【翻译自mos文章】在10g中,当发生ORA-00020时,sqlplus登陆会报“connected to an idle instance”

在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)

说的比较经典, 不做翻译,直接转帖:

APPLIES TO:

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.

SYMPTOMS

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



 

NOTE:
Connecting from the OS command prompt using
$ sqlplus / as sysdba
the SYSDBA would get the "Connected" message


 

CAUSE

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.

SOLUTION

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.'

你可能感兴趣的:(【翻译自mos文章】在10g中,当发生ORA-00020时,sqlplus登陆会报“connected to an idle instance”)