oracle数据库锁表怎么解决

oracle锁表会自动释放吗

oracle数据库锁表怎么解决?

首先你要知道表锁住了是不是正常锁?因为任何DML语句都会对表加锁。你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILLsession,如果这个锁表是正常业务你把sessionkill掉了会影响业务的。建议先查原因再做决定。(1)锁表查询的代码有以下的形式:selectcount(*)fromv$locked_objectselect*fromv$locked_object(2)查看哪个表被锁selectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_objecta,dba_objectsbwhereb.object_id=a.object_id(3)查看是哪个session引起的selectb.username,b.sid,b.serial#,logon_timefromv$locked_objecta,v$sessionbwherea.session_id=b.sidorderbyb.logon_time(4)查看是哪个sql引起的selectb.username,b.sid,b.serial#,c.*fromv$locked_objecta,v$sessionb,v$sqlcwherea.session_id=b.sidandb.SQL_ID=c.sql_idandc.sql_id=""orderbyb.logon_time(5)杀掉对应进程执行命令:altersystemkillsession"1025,41"其中1025为sid,41为serial#.

原文标题:oracle数据库锁表怎么解决

原文来源:"本站所有文章均来自于网络,如有侵犯到您的权益,请联系我们,即刻删除!"