FIND COUNT OF ORACLE PROCESS FROM LINUX
Use below simple command to find an approximate count of processes in oracle database
[oracle@orcl ~]$ ps -e|grep 'ora'|wc -l
61
We usually login to database using sqlplus tool to find the total processes
SQL> select count(*) from v$process;
COUNT(*)
----------
52
I got a situation where concurrent sessions connect to database and exceed the process limit. Due to the overflow of concurrent spawn of process , as a DBA even i couldnot login to the database itself and got kicked out with below error.
C:\Windows\system32>sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri May 14 14:31:27 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
ORA-03113: end-of-file on communication channel
Process ID: 6215
Session ID: 1 Serial number: 46504
In that case, i dont have any options to login to the sqlplus session. So i identified the total oracle process using the above linux command. It will be close to the sqlplus count but more than database process count
Process in OS level
[oracle@orcl ~]$ ps -ef|grep ora|awk -F '_' '{print $2}'|grep -v '^$'
asmb
o000
pmon
psp0
vktm
gen0
mman
diag
dbrm
vkrm
dia0
dbw0
lgwr
ckpt
smon
reco
lreg
pxmn
rbal
asmb
mmon
mmnl
asmb
d000
s000
mark
dmon
ocf0
o000
ocf0
o000
o001
o001
rvwr
insv
tmon
arc0
arc1
arc2
arc3
tt00
o002
tt01
o002
tt00
smco
w000
w001
aqpc
p000
p001
p002
p003
cjq0
qm02
q002
q003
q004
Process in database level
SQL> select pname from v$process where pname is not NULL;
PMON
PSP0
VKTM
GEN0
MMAN
RVWR
DIAG
DBRM
VKRM
DIA0
DBW0
LGWR
CKPT
SMON
RECO
LREG
PXMN
RBAL
ASMB
MMON
MMNL
D000
S000
MARK
DMON
Q002
O000
INSV
TMON
ARC0
ARC1
ARC2
ARC3
TT00
TT01
SMCO
W000
W001
AQPC
CJQ0
P000
P001
P002
P003
QM02
Q003
46 rows selected.