Detectar sesiones bloqueándose entre instancias de un RAC
Publicado por Sebastián D'Alessandro en octubre 1, 2008
Detectar sesiones que estan bloqueandose en un ambiente RAC no es tan sencillo como en una “single instance”, el lockeo puede estar produciendose entre sesiones de diferentes instancias
instance
Con esta consulta podemos obtener información sobre las sesiones que están bloqueándose de forma cruzada entre distintas instancias de un RAC.
SELECT b.inst_id,LPAD(‘—>’,DECODE(A.request,0,0,5)) ||A.SID SID, a.id1, a.id2, a.lmode, a.BLOCK, a.request, DECODE(a.TYPE, ’MR’, ‘Media Recovery’, ’RT’, ‘Redo Thread’, ’UN’, ‘User Name’, ’TX’, ‘Transaction’, ’TM’, ‘DML’, ’UL’, ‘PL/SQL User Lock’, ’DX’, ‘Distributed Xaction’, ’CF’, ‘Control File’, ’IS’, ‘Instance State’, ’FS’, ‘File Set’, ’IR’, ‘Instance Recovery’, ’ST’, ‘Disk Space Transaction’, ’TS’, ‘Temp Segment’, ’IV’, ‘Library Cache Invalidation’, ’LS’, ‘Log Start or Switch’, ’RW’, ‘Row Wait’, ’SQ’, ‘Sequence Number’, ’TE’, ‘Extend Table’, ’TT’, ‘Temp Table’, a.TYPE) lock_type, b.PROGRAM,b.OSUSER ,b.USERNAME,b.status, b.module,b.action ,b.LOGON_TIME,b.LAST_CALL_ET, ’alter system kill session ‘ || ”” || a.SID || ‘, ‘ || b.serial# ||”” || ‘ immediate;’ kill_session, DECODE(object_type, NULL, NULL, ‘Dbms_Rowid.rowid_create(1, ‘ || row_wait_obj# || ‘, ‘ || row_wait_file# ||’, ‘ || row_wait_block#||’, ‘ || row_wait_row# ||’)') row_id FROM gV$LOCK a, gv$session b, dba_objects o WHERE (a.id1,a.id2) IN (SELECT id1,id2 FROM gV$LOCK WHERE lmode=0) AND a.INST_ID=b.INST_ID AND a.SID=b.SID AND o.object_id (+) = DECODE(b.ROW_WAIT_OBJ#, -1, NULL, b.ROW_WAIT_OBJ#) ORDER BY a.id1,a.id2,a.request; |
Advertisement
Sebastián D' Alessandro escribió
Hola tocayo! Si me decis que encima tambien de segundo nombre tenés Gabriel, me voy a tener que pellizcar. Bueno, veo que te interesa la programación. Yo me dedico mas al hardware, terminando ingenieria en electronica si todo va bien en estos meses, asi que por ahora con la tesis, la cual tambien como es cada vez mas usual lleva bastante de programación. Vos estas estudiando algo de programación, ya te dedicas a esto?
Bueno Seba, un abrazo!
Seba.
DbRunas – Noticias y Recursos sobre Bases de Datos » Detectar sesiones bloqueándose entre instancias de un RAC escribió
[...] http://altersystem.wordpress.com/2008/10/01/detectar-sesiones-bloqueandose-entre-instancias-de-un-ra… [...]