오라클 데이터베이스 RAC Global Lock Scripts


  * 2018-04          최초생성

  * 2018-05          Lock Type 추가


SELECT GV_S.INST_ID,

       GV_S.SID AS GV_SESSION_ID,

       GLS.SID AS GV_LOCK_SID,

       GV_S.INST_ID AS GV_SESSION_ID,

       GV_S.SERIAL#,

       LPAD(' ', (LEVEL - 1) * 4, ' ') || DECODE(LEVEL, 1, '', 'L-->') ||

       GV_S.USERNAME AS USERNAME,

       GV_S.STATUS,

       GV_S.PROCESS,

       GV_S.SCHEMANAME,

       GV_S.OSUSER,

       GV_S.PROCESS,

       GV_S.MACHINE,

       GV_S.TERMINAL,

       GV_S.PROGRAM,

       GV_S.TYPE,

       GLS.NAME,

       GV_S.SQL_ID,

       GV_S.PREV_SQL_ID,

       GV_S.MODULE,

       GV_S.COMMAND,

       GV_SC.COMMAND_NAME,

       GV_S.ACTION,

       GV_S.BLOCKING_SESSION_STATUS,

       GV_S.BLOCKING_INSTANCE,

       GV_S.BLOCKING_SESSION,

       GV_S.FINAL_BLOCKING_SESSION_STATUS,

       GV_S.FINAL_BLOCKING_INSTANCE,

       GV_S.FINAL_BLOCKING_SESSION,

       GV_S.EVENT,

       GV_S.SERVICE_NAME,

       GLS.TYPE,

       GLS.ID1,

       GLS.ID1_TAG,

       GLS.ID2,

       GLS.ID2_TAG,

       GLS.LMODE,

       GLS.REQUEST

  FROM GV$SESSION GV_S,

       GV$SQLCOMMAND GV_SC,

       (SELECT GV_L.INST_ID,

               GV_L.SID,

               GV_L.REQUEST,

               GV_L.LMODE,

               GV_L.ID1,

               GV_L.ID2,

               GV_L.TYPE,

               GV_L.BLOCK,

               GV_LT.NAME,

               GV_LT.ID1_TAG,

               GV_LT.ID2_TAG,

               GV_LT.IS_USER,

               GV_LT.DESCRIPTION

          FROM GV$LOCK GV_L, GV$LOCK_TYPE GV_LT

         WHERE 1 = 1

           AND GV_L.INST_ID = GV_LT.INST_ID

           AND GV_L.TYPE = GV_LT.TYPE) GLS --GLOBAL LOCK STATUS

 WHERE 1 = 1

   AND GV_S.INST_ID = GLS.INST_ID(+)

   AND GV_S.SID = GLS.SID(+)

   AND GV_S.INST_ID = GV_SC.INST_ID

   AND GV_S.COMMAND = GV_SC.COMMAND_TYPE

 START WITH GLS.REQUEST = 0

        AND GLS.BLOCK = 1 -- RAC CHECK =2

        AND GLS.LMODE > 0

CONNECT BY PRIOR GV_S.SID = GV_S.BLOCKING_SESSION

       AND GLS.REQUEST > 0;