`
morris
  • 浏览: 179010 次
  • 性别: 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锁表处理,Oracle表解锁

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

    Oracle杀锁的语句

    ### Oracle杀锁的语句详解 在Oracle数据库管理过程中,锁定是确保数据一致性的重要机制之一。但有时,长时间运行的事务或错误配置的应用程序可能会导致锁定情况无法自动解除,这会严重影响系统的性能甚至导致关键...

    oracle锁表处理

    因此,了解如何处理Oracle中的锁争用是非常必要的。 #### 锁争用的基本概念 在Oracle中,当两个或更多的会话尝试获取相同的资源锁时,就会发生锁争用。这些锁可以是表锁、行锁或是其他类型的锁。锁争用可能会导致...

    ORACLE如何杀掉带锁的进程.txt

    ### Oracle 如何杀掉带锁的进程 在Oracle数据库管理中,经常会出现因某些进程锁定资源而导致其他操作无法正常执行的情况。此时,就需要采取措施来杀掉这些带锁的进程,以确保系统的正常运行。本文将详细介绍如何在...

    oracle常见的锁查询和处理

    行级锁在Oracle中以X锁(Exclusive Lock)的形式存在,用于在事务中保护单个数据行。例如,当用户A尝试更新employee_id为100的记录时,Oracle会在该行上设置X锁。如果用户B尝试同时更新同一行,B会被阻塞直到A提交或...

    oracle锁表及解锁

    在Oracle数据库管理中,锁是一种关键机制,用于控制多个用户对数据资源的并发访问,防止数据冲突和不一致。本文将深入探讨Oracle中检查锁表的方法以及如何对表进行解锁。 #### Oracle锁类型 Oracle中的锁主要有两...

    oracle死锁表后处理

    oracle死锁表后处理是指在oracle数据库中处理死锁表的各种方法和技巧。oracle死锁表后处理是数据库管理员和开发人员需要掌握的重要技能,旨在解决oracle数据库中出现的死锁问题,确保数据的一致性和安全性。 ...

    oracle数据库锁表处理

    本文将详细介绍如何处理Oracle数据库中的锁表问题。 #### 一、锁表原因分析 1. **并发操作**:当多个用户同时尝试修改同一数据对象时,为防止数据冲突,Oracle会自动锁定数据对象。 2. **长时间事务**:如果某个...

    oracle由于对象被锁住无法编译处理

    在Oracle数据库管理与维护的过程中,遇到“由于对象被锁住无法编译处理”的问题是非常常见的。这种情况主要发生在当Oracle中的包、函数或过程正在被某个会话调用时,如果尝试对这些对象进行编译或者结构上的修改,就...

    清除Oracle中长时间持锁的session

    处理Oracle数据库中长时间持锁的session是一项关键任务,尤其是在高负载环境下。通过使用Oracle提供的内置视图,我们可以有效地定位并解决问题。然而,这种操作应谨慎进行,避免对生产环境造成不必要的影响。

    查看Oracle锁表

    在Oracle数据库管理过程中,锁定机制是一项重要的功能,它用于确保数据的一致性和事务处理的安全性。当多个用户试图同时访问同一数据时,可能会出现并发问题,这时就需要通过锁定来控制对数据的访问。本文将详细介绍...

    Oracle锁表问题的简捷处理技巧

    然而,在实际应用中,不当的锁管理可能会导致性能下降甚至系统停滞,因此理解和掌握Oracle锁的相关概念及其处理技巧至关重要。 #### Oracle锁类型及含义 Oracle提供了多种类型的锁来满足不同场景的需求: 1. **...

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

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

    ORACLE解锁方法的一点资料

    在Oracle数据库管理中,锁机制是用于控制并发访问的重要手段之一。然而,在某些情况下,不当的锁可能会导致性能问题甚至系统故障,因此掌握如何解锁变得至关重要。本文将详细介绍Oracle解锁方法的相关知识点,包括...

    查看oracle进程,杀进程pb源程序

    "杀进程"操作在Oracle中通常涉及`ALTER SYSTEM KILL SESSION`命令。这个命令允许管理员强制终止特定的会话。使用这个命令时,我们需要提供会话的SID和SERIAL#,这正是PB9程序可能提供的信息。在PB9中,可以通过编写...

    oracle杀僵死进程

    处理Oracle中的僵死进程是维护数据库稳定性和性能的重要步骤。通过使用上述SQL查询和技术,可以有效地识别并解决这些问题,确保数据库的健康运行。此外,定期监控和维护也是预防这类问题的关键措施之一。希望本文...

    怎样查找锁与锁等待及杀特定会话

    在Oracle数据库中,正确管理和处理锁与锁等待是非常重要的,它直接影响到系统的性能和稳定性。通过上述查询语句,我们可以有效地监控并解决锁的问题,确保数据库的高效运行。同时,在必要时也可以通过杀死特定的会话...

    表是否被锁住

    在Oracle数据库中,锁是一种机制,用于控制对数据资源的并发访问,防止多个用户或进程同时修改同一数据,从而避免数据不一致性和冲突。Oracle提供了多种类型的锁,每种锁都有其特定的目的和作用范围。例如,行级锁...

    基于oracle中锁的深入理解

    处理Oracle中的锁冲突时,可以使用以下方法: - 使用`V$LOCKED_OBJECT`视图来监控锁定情况,找出可能引起阻塞的会话。 - 通过`V$SESSION`视图获取会话信息,包括SID(会话ID)和SERIAL#(会话序列号)。 - 当发现...

Global site tag (gtag.js) - Google Analytics