在进行数据库管理的过程中,经常会出现数据表被用户的一些不合理操作而导致表被锁定的情况,以下主要介绍如何查找哪些表被哪个用户所锁定,以及如何解除锁定:
1.查找被锁定的表:
select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status
from v$locked_object l, all_objects a
where l.object_id=a.object_id;
如果想知道具体是哪个进程阻塞了哪个进程,可用以下语句查看:
select username,v$lock.sid,trunc(id1/power(2,16)) rbs,bitand(id1,to_number('ffff','xxxx'))+0 slot,id2 seq,lmode,request from v$lock, v$session where v$lock.type = 'TX' and v$lock.sid = v$session.sid and v$session.username = 'CENTER' ;

 select
  (select username||':'||sid||':'||serial# from v$session where sid=a.sid) ||
  ' 阻塞了 ' ||
  (select username ||':'||sid||':'||serial# from v$session where sid=b.sid)
  from v$lock a, v$lock b
  where a.block = 1
  and b.request > 0
  and a.id1 = b.id1
 and a.id2 = b.id2;

2.确定锁定表用户的sid与serial编号(可通过oracle用户确定也可通过系统用户确定)
a.通过oracle用户确定
select sid,serial# from v$session where username=’center’;
b.通过系统用户确定
select sid,serial# from v$session where username=’administrator’;
3.杀掉造成死锁的进程(已知是123阻塞了124号进程,杀掉即可解锁)
alter system kill session ‘123,3935’;
至此表死锁解除,现在存在的是数据表正常的锁定,等事务提交后自然消失.

转载于:https://blog.51cto.com/tianzt/263195

ORACLE中表死锁的处理相关推荐

  1. Oracle查看死锁 .

    http://blog.csdn.net/sunny_kan/article/details/3476758 查看有哪些表被锁住 select b.owner,b.object_name,a.sess ...

  2. oracle解除死锁

    oracle会自动解决思索问题,把响应的死锁解除.实验:create table A(id int);insert into A values(100); insert into A values(1 ...

  3. oracle死锁进程杀不掉,oracle杀死死锁进程

    先查看哪些表被锁住了 selectb.owner,b.object_name,a.session_id,a.locked_mode fromv$locked_objecta,dba_objectsb ...

  4. oracle中怎么查看索引,查看oracle中表的索引

    oracle中表的索引信息存在 user_indexes 和 user_ind_columns 两张表里面, 其中, user_indexes 系统视图存放是索引的名称以及该索引是否是唯一索引等信息, ...

  5. oracle数据文件编号,oracle中表空间与数据文件编号的连续性

    ORACLE中表空间编号与数据文件编号都是连续的,不会断号.如果TS$中表空间出现了断号, oracle在启动时会进行数据字典和控制文件的校验,发现不一致时,数据库不能正常启动. 表空间被删除时ts$ ...

  6. 解决oracle 数据库死锁,oracle数据库死锁原因及分析

    定义: 当两个用户希望持有对方的资源时就会发生死锁. 即两个用户互相等待对方释放资源时,oracle认定为产生了死锁,在这种情况下,将以牺牲一个用户作为代价,另一个用户继续执行,牺牲的用户的事务将回滚 ...

  7. oracle约束名最大长度,Oracle中表名的最大长度是多少?

    Oracle中表名的最大长度是多少? Oracle中表名和列名的最大长度是多少? 12个解决方案 246 votes 在Oracle 12.2及更高版本中,最大对象名长度为128个字节. 在Oracl ...

  8. oracle为表增加索引,【增加Oracle中表的索引】

    1)概念: Oracle中的索引是基于表或集群的数据对象. 它具有类似于表的独立段存储结构,并且需要在表空间中分配存储空间. 2)功能: 可以提高查找表中数据的速度. 1)B树索引(测试站点): 它是 ...

  9. oracle如何处理死锁,Oracle死锁处理实例

    3.操作系统层杀死死锁进程 1.登录root用户: 2.su - oracle(进入Oracle用户环境下): 3.sqlplus / as sysdba(进入DBA权限下): 4.查询KILLED状 ...

最新文章

  1. 赛门铁克《勒索软件与企业2016》调查报告:企业将面临更多勒索软件威胁
  2. 添加一个文件夹及一些文件如何使用git生成patch
  3. 多线程服务端和客户端通信
  4. Sizeof与Strlen的区别与联系
  5. php 截取字符串的方法,php截取字符串的方法介绍
  6. golang管道channel与协程goroutine配合使用示例
  7. pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库
  8. 为什么说 GraphQL 可以取代 REST API?
  9. 算法题复习(快排、链表、二分、哈希、双指针)
  10. 史上最详细之Centos7安装与配置Redis6
  11. 12、(12.4.2)保护模式下数据段和栈段保护
  12. 如何不显示地图就获取位置数据?
  13. miui 8.5 android,小米MIUI8.5稳定版
  14. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(四)——差动放大器
  15. python如何看字符串长度_Python如何查找字符串的长度?(代码示例)
  16. QQ群排名霸屏:快速上排名方法
  17. 征途LINUX服务端脚本,征途【改版教程】-版本内脚本文件-转载于-喜欢玩网游单机站...
  18. C解决duplicate symbol
  19. colorbox加载ajax调用的html页面,jQuery的弹出窗口 ColorBox
  20. 个人整理可编辑PDF值得一读的电子书大全(持续更新)

热门文章

  1. php5.4源码下载,WordPress v5.4.2官方正式版源码下载
  2. jupyter配置到服务器_服务器端jupyter notebook映射到本地浏览器的操作
  3. android从服务检查,android开发分享Android:你如何检查是否启用了特定的AccessibilityService...
  4. linux源码文件名,Linux中文件名解析处理源码分析
  5. webpack+react+redux+es6开发模式
  6. poj2513Colored Sticks(无向图的欧拉回路)
  7. (五)Linux之设备驱动模型
  8. protobuf版本常见问题
  9. navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
  10. java xml date_W3C XML 模式时间数据类型与java Date进行转换