Oracle查询锁表以及杀会话或系统进程来解除锁表操作

128 阅读1分钟

第一步,查询锁表信息
–查询被锁住的数据库对象

select object_name, machine, s.sid, s.serial#
  from v$locked_object l, dba_objects o, v$session s
 where l.object_id = o.object_id
   and l.session_id = s.sid;

第二步,杀死数据库会话
–杀死数据库会话
alter system kill session ‘207,707’; – 207为SID, 707为SERIAL#

第三步,如果第二步无法杀死会话,报ORA-00031,那么只能杀死UNIX/LINUX系统进程了
–查询当前操作的系统进程ID

select spid, osuser, s.program
  from v$session s, v$process p
 where s.paddr = p.addr
   and s.sid = 207; -- 207为SID

第四步,根据查询到的系统PID,杀掉进程
kill -9 24664 // 24664为UNIX/LINUX系统进程ID