• oracle查看死锁和处理方法


         在操作数据库中经常会遇到表死锁问题,特别是不良的数据库设计和操作的时候,更容易遇到死锁问题。今天在系统中往oracle中添加数据时,特意快速多点几次添加的时候,就出现了死锁问题,而且刚好在读取和更新表的主键值时出现死锁。今天先不谈如何设计不出现死锁问题,只是记录一下如何通过sql语句查找和解决死锁问题。

          查看被锁住的表

    select b.owner,b.object_name,a.session_id,a.locked_mode
    from v$locked_object a,dba_objects b
    where b.object_id = a.object_id

          查看被锁住的时间

    select b.username,b.sid,b.serial#,logon_time
    from v$locked_object a,v$session b
    where a.session_id = b.sid order by b.logon_time


          查询死锁的sql语句

    select 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))


          查询被锁住的进程

    select username,lockwait,status,machine,program from v$session where sid in
    (select session_id from v$locked_object)

           处理掉死锁的进程

    alter system kill session ‘sid,serial#’;


  • 相关阅读:
    中国大陆地区用户请特别注意:请勿存放违反当地法律法规文件
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/wala-wo/p/5119303.html
Copyright © 2020-2023  润新知