锁的事情说一说

330阅读 0评论2023-06-19 brjl
分类:Oracle


  1. 必备技能,对于锁平时不阻塞也要排查的话,那就先乱查一通

  2. --当前全部锁
  3. set lin 200 pages 500
  4. col username for a22
  5. col OBJECT_NAME for a22
  6. select a.sid,b.serial#,decode(a.type,'TM',c.object_name,NULL) OBJECT_NAME,a.type,b.username,
  7.  decode(a.lmode,
  8.    0,'0:none',
  9.    1,'1:NULL',
  10.    2,'2:SS(Row-Share)',
  11.    3,'3:SX(Row-X)',
  12.    4,'4:S(Share)',
  13.    5,'5:SSX(S/Row-X)',
  14.    6,'6:X(Exclusive)') lmode,
  15.  decode(a.REQUEST,
  16.    0,'0:none',
  17.    1,'1:NULL',
  18.    2,'2:SS(Row-Share)',
  19.    3,'3:SX(Row-X)',
  20.    4,'4:S(Share)',
  21.    5,'5:SSX(S/Row-X)',
  22.    6,'6:X(Exclusive)') REQUEST,
  23.    a.ctime,a.block
  24.  from v$lock a,v$session b ,dba_objects c where b.sid=a.sid and c.object_id(+)=a.id1;

  25. col type for a4
  26. col name for a25
  27. col description for a60
  28. select type,name,description from v$lock_type where type=upper('&type');

  29. col ORACLE_USERNAME for a22
  30. col OS_USER_NAME for a22
  31. SELECT XIDUSN,OBJECT_ID,SESSION_ID,ORACLE_USERNAME,OS_USER_NAME,PROCESS from v$locked_object;

  32. col object_name for a22
  33. SELECT d.OBJECT_ID, substr(OBJECT_NAME,1,20) object_name, l.SESSION_ID, l.ORACLE_USERNAME, l.LOCKED_MODE,XIDUSN,XIDSLOT,XIDSQN from v$locked_object l, dba_objects d where d.OBJECT_ID=l.OBJECT_ID;

  34. col username for a22
  35. col machine for a25
  36. col program for a35
  37. select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object);

  38. col sql_text for a60
  39. select sql_id,sql_text from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object));

  40. SELECT waiting_session, holding_session, lock_type, mode_held FROM dba_waiters;  --慎用,可能返回很多


lmode类型说明:

上一篇:用dg迁移win上的11g到19c
下一篇:srvctl add service 报错 prcr-1006 prcd-1302