`

oracl数据表造成死锁,解决方法

阅读更多

    今天早上查看数据表的时候发现,数据表中多了一条数据(这条数据不应该存在),像往常一样用delete where语句删除这条语句,中间卡了一下,然后一直显示正在执行中

先前也遇到过类似的情况,但是那时是因为,我删除数据没有提交事务,这次不一样,删除不了,一直卡在这里,点击取消后,有没有事务的提交与回滚。开始怀疑是因为其它的人正在操作了这张数据表,造成了琐表,就等了一段时间,后来发现还是这样的情况,没办法只好百度找解决办法,问题来了到底是琐表造成的原因,还是另有其它的原因呢?出现这种情况,大致可以分为几种:

1.因为数据量过大,造成数据删除缓慢

2.sql语句使用了for update,没有提交事务

3.其它的人正在操作这张数据表,造成琐表

排除1,2,解决办法找到琐表原因,结束进程。

一下来自百度-----------------------------

解决办法

 

-- 查出被锁的表,和锁住这个表的会话ID

select a.session_id ,b.* from v$locked_object a,all_objects b
where a.object_id=b.object_id

 

 

 

-- 查出对应的SQL语句

select vs.SQL_TEXT,vsess.sid,vsess.SERIAL#,vsess.MACHINE,vsess.OSUSER
,vsess.TERMINAL,vsess.PROGRAM,vs.CPU_TIME,vs.DISK_READS
from v$sql vs,v$session vsess
where vs.ADDRESS=vsess.SQL_ADDRESS
and vsess.sid=(上面查出来的会话ID)

 

 

 

 

--查看是哪个session引起的

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; 

 

 

--杀进程

ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';  ---上面这条语句可以查到sid以及serial

 

ok,现在问题搞定了

 

  • 大小: 2.1 KB
3
0
分享到:
评论

相关推荐

    简单说明Oracle数据库中对死锁的查询及解决方法

    死锁的定位方法 通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。   1)用dba用户执行以下语句 select username,lockwait,status,machine,program from v$session where sid in ...

    Oracle外键不加索引引起死锁示例

    主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下

    MySQL死锁的产生原因以及解决方案

    在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严 重影响应用的正常执行。 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁...

    细化解析:不同类型数据库的死锁问题

    MSSQL、DB2、Oracle之类的现代DBMS或者中间件可以帮助我们自动解决绝大部分死锁,其余一部分难以处理的死锁则由DBA在数据库控制端手工处理。就应用程序而言,不需要在源代码级过多考虑地考虑死锁问题。死锁的发生对...

    ORACLE数据库智能化管理系统2012

    还在为达到求某种数据值需要多表数据关联起来后得到结果重复,想去除多余行值,单独书写的SQL语句又无法解决而频繁手工操作或通过编写软件才能实现想要的结果而烦恼吗? 还在为查看数据库会话情况及死锁情况,想批量...

    Oracle杀进程.txt

    Oracle数据库由于设计或DEBUG也会造成数据表死锁,此时要找出死锁的表,并杀死,解决运维上的问题。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    ORACLE数据库智能化管理系统2008演示

    9. 还在为达到求某种数据值需要多表数据关联起来后得到结果重复,想去除多余行值,单独书写的SQL语句又无法解决而频繁手工操作或通过编写软件才能实现想要的结果而烦恼吗? 10. 还在为查看数据库会话情况及死锁情况...

    asp.net知识库

    asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using ...

    数据库系统管理制度V1.0.doc

    第六条 数据库故障处理,数据库系统中常见的四种故障主要有事务内部的故障、系统故障、介 质故障以及计算机病毒故障,对应于每种故障都有不同的解决方法。。 3. 数据库的安全管理 第一条 数据库管理员负责数据库...

    数据库系统管理制度V1.0(1).doc

    第六条 数据库故障处理,数据库系统中常见的四种故障主要有事务内部的故障、系统故障、介 质故障以及计算机病毒故障,对应于每种故障都有不同的解决方法。。 3. 数据库的安全管理 第一条 数据库管理员负责数据库...

    超级有影响力霸气的Java面试题大全文档

    此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),...

    java 面试题 总结

    此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),...

Global site tag (gtag.js) - Google Analytics