关于Oracle 顽固的KILLED 状态的SESSION的处理
来源:互联网 发布:刺客信条5优化 编辑:程序博客网 时间:2024/05/10 15:04
最近在执行一个大业务量的存储过程,中间中断,造成了对某个表的锁。这时我再想修改存储过程,则因为这个锁的存在,一直在等待。
在pl/sql developer中将这个session的状态设置为KILLED,结果等了半天也没有被PMON给清除掉,一直在那锁表。参考一些资料,可以用下面的方法解锁。
--下面这个sql语句,可以列出来各个脚本,需要录入sid,这个sid可以从pl/sql developer的session中查到。
SELECT 'alter system kill session ''' || ta.sid || ',' || ta.serial# || ''';',
'alter system disconnect session ''' || ta.sid || ',' || ta.serial# || ''' immediate;',
'host orakill ' || tc.instance_name || ' ' || tb.spid,
'kill -9 ' || tb.spid,
tb.spid,
ta.osuser,
tb.program,
ta.terminal,
ta.program
FROM v$session ta, v$process tb, v$instance tc
WHERE tb.addr = ta.paddr
AND ta.sid = &yoursid;
-- 也可以用这个Metalink提供的脚本,其中的os thread就是在orakill 时写的spid
select p.spid "OS Thread", b.name "Name-User", s.osuser, s.program
from v$process p, v$session s, v$bgprocess b
where p.addr = s.paddr
and p.addr = b.paddr UNION ALL
select p.spid "OS Thread", s.username "Name-User", s.osuser, s.program
from v$process p, v$session s
where p.addr = s.paddr
and s.username is not null;
然后执行c:/>orakill oracle_sid os_thread,就可以杀掉killed的进程了。注意要避免杀系统进程,避免数据库宕机。
- 关于Oracle 顽固的KILLED 状态的SESSION的处理
- unix下面kill oracle里面已经处于killed状态的session
- 【Oracle】-【SNIPED和KILLED】-SPINED和KILLED的session清理流程
- Oracle无法删除当前连接用户,以及killed的处理
- 建立JOB定期清理KILLED的SESSION
- 手机端 顽固存在的session
- oracle session 的 inactive 状态
- oracle session 的 inactive 状态
- oracle killed会话不释放的问题。
- oracle killed会话不释放的问题
- 关于Oracle的session
- SQL Server 2000/2005 killed session引起的killed/rollback问题解决
- 有很多KILLED的session 无法释放资源
- 利用PMON清除标记为Killed的Session
- Oracle小知识- Oracle KILLED会话的释放
- 顽固的Ora-22295
- 顽固病毒的清理
- 删除顽固的文件夹--删不掉的文件夹update处理方法
- ABAP:ALV List报表
- [From Network]抽象类和接口(C#)的区别(2)
- ABAP:Function 之 Read_Text函数的使用方法
- 为什么伟大的技术不能做出伟大的产品?(转载)
- [From Network]C#使用接口实现回调
- 关于Oracle 顽固的KILLED 状态的SESSION的处理
- [From Network]XmlSerializer,CollectionBase 序列化
- 我不是鱼,你也不是水
- 金山实习日记·序
- 金山实习日记·第一天(2008-07-14)
- 属性文件编辑器的安装
- IDL接口定义语言
- SQL分页存储过程比拚
- 安装自己开发的DNN模块时提示版本不符合