zoukankan      html  css  js  c++  java
  • 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#’;


  • 相关阅读:
    mysql的复制
    web页面请求历程
    django工作原理简介
    http协议
    路由器和交换机的区别
    OSI七层模型
    TCP/IP协议总结
    IO复用
    僵尸进程和孤儿进程
    java源代码如何打成jar包
  • 原文地址:https://www.cnblogs.com/wala-wo/p/5119303.html
Copyright © 2011-2022 走看看