Oracle数据库锁表与解锁表的实现方法
文章主要介绍了oracle锁表与解锁表的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教。
oracle锁表与解锁表方法
以下几个为主要相关表:
SELECT*FROMv$lock;SELECT*FROMv$sqlarea;SELECT*FROMv$session;SELECT*FROMv$process ;SELECT*FROMv$locked_object;SELECT*FROMall_objects;SELECT*FROMv$session_wait;
查看被锁的表
selectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_object a,dba_objects bwhereb.object_id = a.object_id;
查看那个用户那个进程照成死锁
selectb.username,b.sid,b.serial#,logon_timefromv$locked_object a,v$session bwherea.session_id = b.sidorderbyb.logon_time;
查看连接的进程
SELECTsid, serial#, username, osuserFROMv$session;
查出锁定表的sid
serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECTs.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,s.terminal, s.logon_time, l.typeFROMv$session s, v$lock lWHEREs.sid = l.sidANDs.usernameISNOTNULLORDERBYsid;
这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。
–杀掉进程‘ sid,serial#’
altersystem kill session'210,11562';
总结
以上为oracle数据库锁表与解锁表的实现方法的个人经验,希望能给大家一个参考。
您可能感兴趣的文章
声明:本文来自互联网或用户投稿,该文观点仅代表作者本人,不代表本站立场。文章及其配图仅供学习和交流之用,版权归原作者所有,如有内容侵权或者其他违规问题,请联系本站处理。




