`
morris
  • 浏览: 175910 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

处理Oracle中杀不掉的锁

阅读更多
一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。

1.下面的语句用来查询哪些对象被锁:

select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;

2.下面的语句用来杀死一个进程:
alter system kill session '24,111'; (其中24,111分别是上面查询出的sid,serial#)

【注】以上两步,可以通过Oracle的管理控制台来执行。

3.如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)

4.在OS上杀死这个进程(线程):
1)在unix上,用root身份执行命令:
#kill -9 12345(即第3步查询出的spid)
2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:
orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345
分享到:
评论
1 楼 sunrise_king 2009-04-07  
今天用到了,我以为要重启数据库呢,脚本进程死掉了,脚本被锁,不能修改。在oracle中杀不掉,从系统中杀掉进程果然可以了。学习了。

相关推荐

    处理oracle中杀不掉的锁.txt

    处理oracle中杀不掉的锁

    Oracle杀锁的语句

    查看锁,杀锁,以及杀不掉的可能处理方法,用于解放被锁住的表。

    Oracle锁表处理,Oracle表解锁

    数据库死锁的概念, 所谓死锁,是指两个会话,每个会话都持有另外一个会话想要的资源,因争夺资源而造成...对于锁死的会话,我们可以直接删掉该会话,等事物回滚完成,也可以找出锁死进程的spid,从服务器中删掉该进程。

    oracle常见的锁查询和处理

    DML事务锁定的机制 行级锁(TX锁) 表级锁(TM锁) 锁定相关视图 v$transaction v$lock 5 v$enqueue_lock v$session 检测并解决冲突 常见的锁查询和处理 当前系统中存在的锁争用: ...--杀掉会话进程

    oracle表被锁定的完美解决方法

    ora-00031:session marked for kill处理oracle中杀不掉的锁一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那...

    Oracle 查询死锁并解锁的终极处理方法

    一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。 1.下面的语句用来...

    oracle处理锁表基本操作

    查询锁表 select object_name,machine,s.sid,s....如果杀不掉可以查这个来获取spid(将获取的spid给有权限的网络管理员,他就给你杀了。这个属于程序外杀,杀完这个PL/SQL就要重新登录了) select a.spid,b.sid

    Oracle锁处理、解锁方法

    1、查询锁情况 select sid,serial#,event,BLOCKING_SESSION from v$session where event like '%...#根据1和2中查到的SID和SERIAL# 定位会话,并杀掉 ALTER SYSTEM DISCONNECT SESSION ',<SERIAL>' IMMEDIATE; 或 AL

    oracle数据库锁表检索语句

    日常系统在使用中,往往出现表被锁了导致业务处理不下去,可以使用脚本中命令查询对应的线程,然后通过kill 杀掉,解锁。生产环境慎用。。。。

    ORACLE数据库基础知识-华为维护资料

    3.2 如何杀掉吊死session 39 3.3 如何修改字符集 39 3.4 如何追加表空间 39 3.5 如何加大表的maxextents值 40 3.6 如何查询无效对象 40 3.7 怎样分析SQL语句是否用到索引 40 3.8 如何将Oracle8数据导入Oracle7数据库...

    最全的oracle常用命令大全.txt

     很多时候,一般的ORACLE用户不知道如何有效地利用它。  dictionary 全部数据字典表的名称和解释,它有一个同义词dict dict_column 全部数据字典表里字段名称和解释 如果我们想查询跟索引有关的数据字典时,...

    常用OracleSQL整理.docx

    工作中整理记录的常用sql,主要包含创建用户,授权,表空间的处理;查询锁,杀进程;创建directory,查询用户所用的表空间

    orcale常用命令

     很多时候,一般的ORACLE用户不知道如何有效地利用它。  dictionary 全部数据字典表的名称和解释,它有一个同义词dict dict_column 全部数据字典表里字段名称和解释 如果我们想查询跟索引有关的数据字典时,...

    (重要)AIX command 使用总结.txt

    C ->列出自定义设备对象类中设备的有关信息,缺省包括名称,状态,位置,描述,不可和P合用 c Class ->指定设备名 F Format ->以用户指定格式输出,Format参数为预定义或自定义设备对象类中的列名,如:name status等 H ...

    网管教程 从入门到精通软件篇.txt

    如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart  创建和删除硬盘...

    vc++ 应用源码包_1

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_2

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_6

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

Global site tag (gtag.js) - Google Analytics