按正常解锁流程
1、--锁表查询SQLSELECT object_name, machine, s.sid, s.serial#
SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session sWHERE l.object_id = o.object_id
AND l.session_id = s.sid;
2、ALTER system kill session '8820,53943'; 提示会话id不存在
解锁失败,于是网上查资料有网友说通过杀进程
select * from gv$process
where addr in (
select paddr from gv$session where sid =146
);
3、查看进程号和实例名,因为如果是rac的话,需要进入对应的服务器中杀掉相关进程。
ps -ef | grep 进程号 查看是否有相关进程号。
kill -9 进程号 使用root用户杀掉进程。
但是由于是生产环境我并没有登陆服务器的权限,此方法行不通。
4、然后,网上有说,使用下面的SQL语句,但是我使用后,没有效果.
alter session set events 'immediate trace name flush_cache level 1';
5、最后用了最笨的办法plsql客户端 [工具-会话] 找到这个sid右键关闭居然神奇的好了。不知道是不是服务器自行处理了进程还是我手动关闭起作用了,下次遇到这种情况可以在验证一下