技术分享 数据库 ORACLE 查看内容

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

老高 | 发布于 2022-09-29 09:48| 浏览()| 评论() | 收藏() | 点赞() | 打印

第一步,查询锁表信息

–查询被锁住的数据库对象

SELECT b.object_name, machine, c.sid, c.serial#, b.status, d.pid, d.spid, d.addr
FROM gv$locked_object a, dba_objects b, gv$session c, v$process d
WHERE a.object_id  = b.object_id
AND a.session_id = c.sid
AND d.addr = c.paddr;

QQ图片20220929094838.png

第二步,杀死数据库会话

–杀死数据库会话

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


发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)

表情