暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle锁表处理

吼吼哈嘿 2024-11-21
200

1.查看被锁的表
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id

2.查看锁表的进程
select a.OS_USER_NAME, c.owner, c.object_name, b.sid, b.serial#, logon_time
from v$locked_object a, v$session b, dba_objects c
where a.session_id = b.sid
and a.object_id = c.object_id
order by b.logon_time;

3.杀死进程
-- immediate 添加为立即结束
alter system kill session 'sid,serial' immediate

注:执行步骤3,可能存在权限不足的问题
解决方式:

GRANT ALTER SYSTEM TO <username>;

步骤3执行完,锁表已正常解决

4.查找对应进程号
步骤3可能存在‘ORA-00027: 无法终止当前会话’ 错误。
此时,需要通过杀死对应的进程号来解决

select a.SID,a.USERNAME,a.status,a.process,b.SPID from v$session a,v$process b where a.PADDR=b.ADDR;

5.杀死进程
Linux系统

kill -9 进程号

Windows系统
1.任务管理器直接终止相应的PID
2.命令行

orakill sid spid

sid 是数据库实例名
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_43724256/article/details/127546586

文章转载自吼吼哈嘿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论