Thursday, September 25, 2014

Oracle DB - User sessions monitoring


Evo par SQL upita pomoću koji je moguće vidjeti korisne informacije o korisničkim sesijama na Oracle bazi podataka.



Broj trenutnih sesija na na bazi:

set lin 1000
select count(s.status) TOTAL_SESSIONS
from v$session s;

Ukupan broj NEAKTIVNIH korisničkih sesija:

set lin 1000
select count(s.status) INACTIVE_SESSIONS
from v$session s, v$process p
where
p.addr=s.paddr and
s.status='INACTIVE';

Broj sesija koje su NEAKTIVNE više od jedan sat:

select count(s.status) "INACTIVE SESSIONS > 1HOUR "
from gv$session s, v$process p
where
p.addr=s.paddr and
s.last_call_et > 3600 and
s.status='INACTIVE';

Broj svih AKTIVNIH korisničkih sesija:

select count(s.status) ACTIVE_SESSIONS
from gv$session s, v$process p
where
p.addr=s.paddr and
s.status='ACTIVE';

Detalji o svim korisničkim sesijama koje su NEAKTIVNE duže od jedan sat:

set pagesize 40
col INST_ID for 99
col spid for a10
set linesize 150
col PROGRAM for a10
col action format a10
col logon_time format a16
col module format a13
col cli_process format a7
col cli_mach for a15
col status format a10
col username format a10
col last_call_et_Hrs for 9999.99
col sql_hash_value for 9999999999999col username for a10
set linesize 152
set pagesize 80
col "Last SQL" for a60
col elapsed_time for 999999999999
select p.spid, s.sid,s.last_call_et/3600 last_call_et_Hrs ,s.status,s.action,s.module,s.program,t.disk_reads,lpad(t.sql_text,30) "Last SQL"
from gv$session s, gv$sqlarea t,gv$process p
where s.sql_address =t.address and
s.sql_hash_value =t.hash_value and
p.addr=s.paddr and
s.status='INACTIVE'
and s.last_call_et > (3600)
order by last_call_et;


Na kraju ukoliko odlučite da prekinete neku NEAKTIVNU korisničku sesiju uradite sledeće.

Saznajte potrebne parametre:

spool Inactive_sessions.txt
set lin 1000
select sid, serial#, username, lockwait, status, schemaname, logon_time, seconds_in_wait, state from v$session where status='INACTIVE';
spool off

Zabilježite parametre SID i SERIAL# za onu sesiju koju želite prekinuti i izvršite komandu:

ALTER SYSTEM KILL SESSION 'sid,serial#';


 

No comments:

Post a Comment