在进行数据库管理的过程中,经常会出现数据表被用户的一些不合理操作而导致表被锁定的情况,以下主要介绍如何查找哪些表被哪个用户所锁定,以及如何解除锁定:
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. 斗米客户端的架构思想
  2. JavaWeb学习总结第六篇--认识Session机制
  3. SDN — 技术的发展
  4. mysql 子sql中调用存储过程_mysql 子sql中调用存储过程
  5. Razor Page Library:开发独立通用RPL(内嵌wwwroot资源文件夹)
  6. 君威u0073故障码解决_顽疾修复过程,君威没倒挡的变速箱故障就是这样修好
  7. 面向对象编程(OOP)特性 类和对象
  8. 第7章--基本统计分析
  9. linux kali局域网远程桌面,kali使用rdesktop连接Windows远程桌面
  10. R语言使用epiDisplay包的lroc函数可视化logistic回归模型的ROC曲线并输出诊断表、输出灵敏度、1-特异度、AUC值等、设置auc.coords参数指定AUC值在可视化图像中的位置
  11. 【工作感悟】在一家普通互联网公司实习四个月的总结和感想
  12. INF安装信息文件①
  13. 签章服务器系统,优泰科技首页_电子签名 手写批注 电子印章 全文批注
  14. Adobe Photoshop download
  15. 一个不错的shell 脚本教程
  16. 高德地图看各省分界线_从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行...
  17. Buddy 内存管理机制(下)
  18. 在python中、下列哪些说法是错误的-Python支持复数类型,以下哪个说法是错误的?...
  19. 第八章 我国农村商品流通
  20. 自动化测试框架: KIF和EarlGrey对比

热门文章

  1. raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
  2. 剑指offer python实现_剑指Offer第2题详解(附Python、Java代码实现)
  3. deepfakes怎么用_[mcj]deepfakesApp使用说明(1)
  4. linux mysql 修改字符集_linux下mysql修改字符集,远程连接
  5. php 日志按天截取,Laravel 日志管理:按日期切割日志
  6. Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
  7. 编程环境中Runtime(运行时)的三个含义
  8. html设置table表格的弧度,用CSS3和table标签实现一个圆形轨迹的动画的示例代码
  9. linux脚本格式模板,Linux Shell 常见的命令行格式简明总结
  10. notepad php源码,GitHub - CharlesKiki/Web-Notepad: 这是一个仿制有道云笔记的原生PHP小玩具。...