美文网首页
Oracle锁表

Oracle锁表

作者: 西谷haul | 来源:发表于2022-03-14 15:01 被阅读0次

    一、首先PL/SQL要以管理员的账号(system/admin等)登录,管理员的账号和密码根据个人设置而来,连接为一般选择Normal,也可选择SYSDBA;

    二、相关SQL语句:

    (1)以下几个为相关表

    SELECT*FROM v$lock;
    SELECT*FROM v$sqlarea;
    SELECT*FROM v$session;
    SELECT*FROM v$process;
    SELECT*FROM v$locked_object;
    SELECT*FROM all_objects;
    SELECT*FROM v$session_wait;
    

    (2)查看被锁表信息

    select sess.sid,
           sess.serial#,
           lo.oracle_username,
           lo.os_user_name,
           ao.object_name,
           lo.locked_mode
      from v$locked_object lo, dba_objects ao, v$session sess
     where ao.object_id = lo.object_id
       and lo.session_id = sess.sid;
    
    image.png

    (3)杀掉锁表进程

    alter system kill session '68,51';   --分别为SID和SERIAL#号
    

    (4)查看数据库引起锁表的SQL语句

    SELECT A.USERNAME,
           A.MACHINE,
           A.PROGRAM,
           A.SID,
           A.SERIAL#,
           A.STATUS,
           C.PIECE,
           C.SQL_TEXT
      FROM V$SESSION A, V$SQLTEXT C
     WHERE A.SID IN (SELECT DISTINCT T2.SID
                       FROM V$LOCKED_OBJECT T1, V$SESSION T2
                      WHERE T1.SESSION_ID = T2.SID)
       AND A.SQL_ADDRESS = C.ADDRESS(+)
     ORDER BY C.PIECE;
    

    相关文章

      网友评论

          本文标题:Oracle锁表

          本文链接:https://www.haomeiwen.com/subject/yszjdrtx.html