Oracle異常排查命令

1.查询会话等待事件及对应的sql

SELECT P.PID,

      S.SID,

      S.SERIAL#,

      S.USERNAME,

      Q.SQL_ID,

      Q.SQL_TEXT,

      Q.SQL_FULLTEXT,

      E.EVENT,

      E.TOTAL_WAITS,

      E.TIME_WAITED,

      E.AVERAGE_WAIT

  FROM V$SESSION S, V$SESSION_EVENT E, V$SQLAREA Q, V$PROCESS P

WHERE S.SID = E.SID

  AND S.SQL_ID = Q.SQL_ID

  AND P.ADDR = S.PADDR

  AND E.EVENT NOT LIKE 'SQL*Net%'

  AND S.STATUS = 'ACTIVE'

  AND S.USERNAME IS NOT NULL;

2.查询长时间运行的会话与对应的sql

SELECT S.SID,

      OPNAME,

      TRUNC(L.SOFAR / L.TOTALWORK * 100, 2) || '%' AS PCT_WORK,

      L.ELAPSED_SECONDS ELAPSED,

      ROUND(L.ELAPSED_SECONDS * (L.TOTALWORK - L.SOFAR) / L.SOFAR) REMAIN_TIME,

      Q.SQL_TEXT

  FROM V$SESSION_LONGOPS L, V$SQLAREA Q, V$SESSION S

WHERE L.SQL_HASH_VALUE = Q.HASH_VALUE

  AND L.SID = S.SID

  --AND L.SOFAR != L.TOTALWORK

  AND L.ELAPSED_SECONDS>6

ORDER BY L.START_TIME

3.查询会话及锁与对应的sql

SELECT A.OWNER 方案名,

      A.OBJECT_NAME 表名,

      B.XIDUSN 回滚段号,

      B.XIDSLOT 槽号,

      B.XIDSQN 序列号,

      B.SESSION_ID 锁表SESSION_ID,

      B.ORACLE_USERNAME 锁表用户名,

      DECODE(D.TYPE,

              'XR',

              'NULL',

              'RS',

              'SS(Row-S)',

              'CF',

              'SS(Row-S)',

              'TM',

              'TABLE LOCK',

              'PW',

              'TABLE LOCK',

              'TO',

              'TABLE LOCK',

              'TS',

              'TABLE LOCK',

              'RT',

              'ROW LOCK',

              'TX',

              'ROW LOCK',

              'MR',

              'S(Share)',

              NULL) 锁定方式,

      C.MACHINE 用户组,

      C.TERMINAL 机器名,

      B.OS_USER_NAME 系统用户名,

      B.PROCESS 系统进程ID,

      DECODE(C.STATUS, 'INACTIVE', '不活动', 'ACTIVE', '活动') 活动情况,

      C.SERVER,

      C.SID,

      E.SQL_TEXT,

      C.SERIAL#,

      C.PROGRAM 连接方式,

      C.LOGON_TIME

  FROM ALL_OBJECTS    A,

      V$LOCKED_OBJECT B,

      SYS.GV_$SESSION C,

      V$LOCK          D,

      V$SQLTEXT      E

WHERE (A.OBJECT_ID = B.OBJECT_ID)

  AND (B.PROCESS = C.PROCESS)

  AND C.SID = D.SID

  AND B.LOCKED_MODE = D.LMODE

  AND C.SQL_ID = E.SQL_ID(+)

ORDER BY 1, 2;

4.查询被阻塞会话与被阻塞会话的对应sql

SELECT S1.USERNAME "WAITING USER",

      S1.OSUSER  "OS User" ,

      S1.LOGON_TIME "logon time",

      W.SESSION_ID  "Sid",

      P1.SPID      "PID",

      Q1.SQL_TEXT  "SQLTEXT",

      S2.USERNAME  "HOLDING User",

      S2.OSUSER    "OS User"


      ,

      S2.LOGON_TIME "logon time",

      H.SESSION_ID  "Sid",

      P2.SPID      "PID",

      Q2.SQL_TEXT  "SQLTEXT"

  FROM SYS.V_$PROCESS P1,

      SYS.V_$PROCESS P2,

      SYS.V_$SESSION S1,

      SYS.V_$SESSION S2,

      DBA_LOCKS      W,

      DBA_LOCKS      H,

      V$SQL          Q1,

      V$SQL          Q2

WHERE H.MODE_HELD != 'None'

  AND H.MODE_HELD != 'Null'

  AND W.MODE_REQUESTED != 'None'

  AND W.LOCK_TYPE(+) = H.LOCK_TYPE

  AND W.LOCK_ID1(+) = H.LOCK_ID1

  AND W.LOCK_ID2(+) = H.LOCK_ID2

  AND W.SESSION_ID = S1.SID(+)

  AND H.SESSION_ID = S2.SID(+)

  AND S1.PADDR = P1.ADDR(+)

  AND S2.PADDR = P2.ADDR(+)

  AND S1.SQL_ID = Q1.SQL_ID(+)

  AND S2.SQL_ID = Q2.SQL_ID(+)

ORDER BY H.SESSION_ID;

5. 30分鐘內執行時間最長的語句

select ash.USER_ID,u.username,sum(ash.WAIT_TIME) ttl_wait_time,s.SQL_TEXT

from v$active_session_history ash, v$sqlarea s, dba_users u

where ash.SAMPLE_TIME between sysdate - 30/24/60 and sysdate

and ash.SQL_ID = s.SQL_ID

and ash.USER_ID = u.user_id

group by ash.USER_ID, s.SQL_TEXT, u.username

order by ttl_wait_time desc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容