Oracle锁表处理方式
更新时间:2024年11月19日 10:47:25 作者:辣椒炒鸡
文章主要介绍了如何解决Oracle数据库中的表被锁问题,包括查看被锁的表、查找锁表的进程、杀死进程等步骤,并提供了在Linux和Windows系统中杀死进程的方法
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 是数据库实例名
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
PLSQL Developer连接oracle数据库配置教程
这篇文章主要介绍了PLSQL Developer连接oracle数据库配置步骤,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-09-09
VMware中linux环境下oracle安装图文教程(一)
刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事,必先利其器。作为一个新手,我们还是先在VMware虚拟机里安装吧。2014-08-08


最新评论