It is damn! easy to see the running oracle services/processes status. But the same when comes to Windows its some thing different and tricky due to architectural differences.
we can see pmon,smon ..processes in UNIX as follows
ps -eaf | grep ora | grep -v grep | grep -v LOCAL
so obvious question that is there any way to see same kind of out put in windows command prompt too …
Answer : In a windows environment for oracle, each detached precess runs as a concurrently running thread with single executable called Oracle.exe (Depends on version of oracle this exe file name vary slightly) . Using this executable with several threads , the threads all share the same code, memory space and other structures.
Now go to Task manager (use ctl + alt + del ) and go to processes tab.And in the list of processes also you will find only the main Oracle process but not the threads separately.
So in windows individual thread names (pmon ,smon etc) of oracle process ar not visible neither from Task manager nor from Services window.
We can find some information about them in the alert log when ever the database started.
snippet from the log looks like the below
PMON started with pid=2
DBW0 started with pid=3
LGWR started with pid=4
CKPT started with pid=5
SMON started with pid=6
RECO started with pid=7
How to see this log :
go to run -> cmd ->
type alert_db10.log
Note : Assuming DB installed is oracle 10g.
PATH: %oracle_home%\network\log
Name vary accordingly.
We can also obtain the list threads and their assignment through SQL*Plus via the following query
select b.name bkpr , s.Username spid p.Pid from V$BGPROCESS b, V$SESSION s, V$PROCESS p, where p.Addr = b.Paddr(+) and p.Addr = s.Paddr
Note : The listener and dispatcher threads do not show up in this list.
In this way we can identify which process is associated with each thread.
Reference : Processes Vs Threads
I want to find the oracle background process’s service time in windows
plz tell me how
Comment by Shajahan — February 24, 2012 @ 12:17 pm