当前位置: 代码网 > it编程>数据库>Oracle > Oracle锁表处理方式

Oracle锁表处理方式

2024年11月20日 Oracle 我要评论
oracle锁表处理1.查看被锁的表select b.owner,b.object_name,a.session_id,a.locked_modefrom v$locked_object a,dba_

oracle锁表处理

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 是数据库实例名

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com