Sometimes you may encounter ” ORA-00020: maximum number of processes exceeded ” error while login oracle database via sqlplus and application may encounter TNS errors.
If you got ORA-00020 error like following, it means process parameter has exceeded its max value.
ORA-00020: maximum number of processes (1000) exceeded
To solve ORA-00020: maximum number of processes exceeded error, You can increase processes parameter in Oracle database as follows.
SQL> alter system set processes=2000 scope=spfile;
System altered.
But this parameter is activated after database restart. If you cannot restart database, then you may solve this problem to kill inactive sessions like following.
SELECT 'kill -9 ' || p.SPID,
s.USERNAME,
'alter system kill session ''' || sid || ',' || s.serial# || ''';',
s.STATUS
FROM v$session s, v$process p
WHERE s.PADDR = p.ADDR(+) AND s.STATUS = 'INACTIVE' AND s.USERNAME = 'TYPE_YOUR_SCHEMA_NAME'
ORDER BY 1;
But If you cannot login database and specify inactive sessions, then you can change processes parameter like following then restart database. You can think that how can you alter process parameter without login database, I just kill some inactive sessions then I login database.
SQL> show parameter processes;
NAME TYPE VALUE
----------------------- ----------- ------------------------------
processes integer 1000
SQL>
SQL> alter system set processes=2000 scope=spfile;
System altered.
Restart database after this operation as follows.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
SQL>
SQL> show parameter processes
NAME TYPE VALUE
----------------------- ----------- ------------------------------
processes integer 2000
SQL>
Thats All…