Τετάρτη 3 Αυγούστου 2016

Κλειδώματα Χρηστών


Στο άρθρο αυτό θα μιλήσουμε για κλειδώματα χρηστών που γίνοντε μεταξύ χρηστών σε μία βάση oracle. Για να εντοπίσουμε ποιος χρήστης κλειδώνει ποιον στην βάση τρέχουμε το παρακάτω query. Βλέποντας τα κλειδώματα μπορούμε να λύσουμε την διένεξη σκοτώνοντας το κατάλληλο session.

SQL> select sL.username sL_user, sL.osuser sL_osuser, sL.machine sL_mach,
sL.status LStat,L.SID LSid, sL.serial# LSerial, L.type,L.CTIME LCtime, L.lmode 
Lmode,L.REQUEST LReq,L.Inst_id ||'-'|| W.Inst_ID "N-N",W.SID WSid,W.CTIME 
WCtime, sW.username sW_user, sW.osuser sW_osuser, sW.status WStat,W.type, 
W.LMODE WLmode, W.Request WReq,sW.machine sW_mach,sWo.name 
sWo_name,sW.row_wait_obj# objid, sW.row_wait_file# Fl#,sW.row_wait_block# 
blk#,sW.row_wait_row# Row#
from sys.obj$ sWo, gv$session sW, gv$lock W, gv$session sL, gv$lock L
where
-- (L.lmode != 0 and L.request =0 and W.lmode = 0 and W.request != 0)
(L.lmode != 0 and W.request != 0) and sL.inst_id = L.inst_id and sL.sid = 
L.sid and W.id1 = L.id1 and W.id2 = L.id2 and sW.inst_id(+) = 
W.inst_id and sW.sid(+) = W.sid and sWo.obj#(+) = sW.row_wait_obj#
order by "N-N", wctime desc

0 σχόλια:

Δημοσίευση σχολίου