`
winie
  • 浏览: 223165 次
  • 性别: 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

分享到:
评论

相关推荐

    处理oracle中杀不掉的锁.txt

    - Oracle提供了一个名为`orakill`的工具来帮助在Windows系统中杀死特定的线程。使用方法如下: ```bash orakill <sid> ``` - `<sid>`代表要杀死的进程所属的实例名。 - `<thread>`是要杀掉的线程号,即第三步...

    如何解决Oracle杀死死锁进程

    在 Oracle 中,死锁是指两个或多个会话在等待对方释放资源,从而导致互相阻塞的情况。死锁可能会导致数据库性能下降,甚至崩溃。因此,解决死锁问题是非常重要的。 解决 Oracle 杀死死锁进程的步骤: 1. 查找被...

    oracle杀进程

    Oracle 杀进程是数据库管理员在日常工作中经常遇到的问题,特别是在数据库性能不佳或会话被锁死的情况下。因此,了解如何杀掉 Oracle 会话非常重要。本文将从 Oracle 数据库系统和操作系统两个方面介绍如何杀掉会话...

    Oracle杀锁的语句

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

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

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

    oracle锁表后,如何解锁

    因此,在不知道谁锁的情况下,可以通过查询锁定信息和杀掉锁定进程来解锁表。 在实际操作中,需要注意的是,杀掉锁定进程可能会导致锁定用户的会话中断,因此需要小心地进行操作。同时,需要注意锁定表的实际情况,...

    oracle锁表及解锁

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

    oracle中判断表是否被锁

    ### Oracle中判断表是否被锁及解锁方法 在Oracle数据库管理过程中,经常会出现表或行被锁定的情况,这可能会导致应用程序出现性能问题甚至挂起。因此,了解如何判断表是否被锁以及如何解锁是非常重要的技能。 ####...

    Oracle锁表处理,Oracle表解锁

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

    oracle杀死锁,寻PIDKILL进程

    oracle杀死锁 ,在批量导入数据的时候,在数据库中很容易就碰到锁表了,导致长时间数据库卡死,此脚本方便找寻数据库被锁对象,如果在oracle中不能alter kill掉 说明该session已过期需要进入后台去杀掉进程

    Oracle强制释放锁的命令

    Oracle 强制释放锁命令 在 Oracle 中,当出现 ORA-00054 错误时,通常是由于资源忙碌,无法获取资源而导致的。在这种情况下,可以使用强制释放锁的命令来释放锁资源,解决问题。 一、什么是 ORA-00054 错误? ORA...

    清除Oracle中长时间持锁的session

    ### 清除Oracle中长时间持锁的Session #### 背景介绍 在Oracle数据库管理过程中,有时会遇到一些长时间占用资源的进程,这些进程可能会导致数据库性能下降甚至某些操作无法执行。通常情况下,如果一个session的状态...

    oracle锁表处理

    在Oracle数据库管理中,锁机制是一种重要的资源管理手段,用于控制并发事务对数据资源的访问,防止多个用户同时修改相同的数据,从而确保数据的一致性和完整性。然而,在高并发环境下,锁的争用可能导致性能瓶颈,...

    oracle常见的锁查询和处理

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

    查看Oracle锁表

    - **共享锁(S)**:允许其他会话读取但不允许修改。 - **排他锁(X)**:只允许一个会话读写数据,阻止其他会话读写。 - **共享更新锁(S/Row X)**:与共享锁类似,但允许锁定行进行修改。 2. **锁定级别**: - **...

    oracle查锁和解锁命令

    在Oracle数据库中,锁是用来控制多个用户对同一数据资源访问的一种机制,目的是为了防止并发操作导致的数据不一致问题。锁分为多种类型,包括行级锁、表级锁等,每种锁都有其特定的应用场景。 #### 二、查询锁定的...

    Oracle Kill被锁进程

    Oracle查找被锁进程,及如何在数据库级或操作系统级Kill掉相应被锁的进程

    oracle锁表解决

    在Oracle数据库管理中,锁表是一个常见的问题,特别是在高并发的应用场景下。当一个表被锁定时,其他用户或进程可能无法访问该表,从而导致应用程序出现延迟或者错误。因此,了解如何有效地解锁表是每个Oracle数据库...

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

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

Global site tag (gtag.js) - Google Analytics