zoukankan      html  css  js  c++  java
  • Oracle(四):锁

    v$lock:视图列出当前系统持有的或正在申请的所有锁的情况

    v$locked_object:视图列出当前系统中哪些对象正被锁定

    1)、查询当前数据库锁的情况,以及导致锁的sql语句:

    Select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号,sq.SQL_TEXT
    From v$locked_object l , dba_objects o , v$session s , v$process p,v$sqlarea sq
    Where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr and s.SQL_ADDRESS = sq.ADDRESS;
    

    2)、杀掉非正常的一些锁

    alter system kill session 'sid,serial#';
    

    3)、批量杀掉未释放的锁

    declare cursor mycur is  
    select b.sid,b.serial#  
      from v$locked_object a,v$session b  
      where a.session_id = b.sid group by b.sid,b.serial#;  
      
      
    begin  
      for cur in mycur  
        loop    
         execute immediate ( 'alter system  kill session  '''||cur.sid || ','|| cur.SERIAL# ||''' ');  
         end loop;  
      
    end;  
    

      

  • 相关阅读:
    互斥量
    读写锁
    死锁
    pthread
    线程
    守护进程
    信号捕捉
    信号集
    信号
    mmap
  • 原文地址:https://www.cnblogs.com/NaughtyBoy/p/3525131.html
Copyright © 2011-2022 走看看