oracle数据库表锁死问题解决方案

1.查 V$DB_OBJECT_CACHE  中是否有LOCKS不等于0的数据

    SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CRM_LASTCHGINFO_DAY' AND LOCKS!='0';

2.按对象查出sid的值

select /*+ rule*/  SID from V$ACCESS WHERE object='要查询对象的名称';

3.根据2中查询出来的SID查sid,serial#

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';

4.根据sid值,serial#值 kill掉这个锁死的进程

alter system kill session 'sid值,serial#值' immediate;

5.如果锁死问题依旧没有解决,则查询锁住的进程

SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;

6.根据5查询出来的sid值,serial#值,将这个锁住的进程kill掉

    alter system KILL session 'sid值,serial#值';


你可能感兴趣的:(数据库)