`
dannyhz
  • 浏览: 392851 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Oracle 查表被锁问题 kill session

阅读更多
http://blog.chinaunix.net/uid-10941534-id-3499567.html

一、查看有哪些表被锁住
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order  by b.logon_time;

杀进程中的会话
alter system kill session 'sid,serial#';e.galter system kill session '29,5497';
如果有ora-00031错误,则在后面加immediate;
alter system kill session '29,5497' immediate;


二、如何杀死oracle死锁进程
1.查哪个过程被锁:
  查V$DB_OBJECT_CACHE视图:
  SELECT * FROM V$DB_OBJECT_CACHE A  WHERE A.OWNER='GSEOPROD' AND A.LOCKS != '0';

  2. 查是哪一个SID,通过SID可知道是哪个SESSION:
  查V$ACCESS视图:
  SELECT * FROM V$ACCESS WHERE OWNER='过程的所属用户' AND NAME='刚才查到的过程名';
  3. 查出SID和SERIAL#:
  查V$SESSION视图:
  SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='刚才查到的SID';
  查V$PROCESS视图:
  SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';
  4. 杀进程:
  (1)先杀ORACLE进程:
  ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
  (2)再杀操作系统进程:
  KILL -9 刚才查出的SPID或ORAKILL 刚才查出的SID 刚才查出的SPID。
分享到:
评论

相关推荐

    oracle kill session

    ### Oracle Kill Session:详解与实践 在Oracle数据库管理与维护过程中,“Oracle Kill Session”是一项非常重要的操作技巧。本文将从理论到实践多个层面深入探讨如何有效地执行“Oracle Kill Session”,帮助...

    kill system session(解决oracle死锁)

    kill system session(解决oracle死锁)

    有效关闭Oracle死锁进程,和释放状态为killed的session

    处理Oracle死锁和killed session的过程虽然复杂,但遵循上述步骤可以有效地解决大多数问题。然而,更重要的是采取预防措施,避免死锁的发生。这包括优化SQL查询,减少复杂的事务,使用合适的锁定级别,以及定期监控...

    Oracle_Kill_Session_终极篇

    ### Oracle_Kill_Session_终极篇:深入解析与实践 #### 环境配置与背景 在探讨Oracle数据库中如何有效地管理会话(session)时,本文档聚焦于Oracle Database 10g Enterprise Edition Version 10.2.0.2.0的64位版本...

    oracle中已killed session的处理

    在Oracle数据库管理中,有时会遇到一些异常情况,比如某个Session长时间未响应或占用大量资源,这时可能需要管理员手动干预,通过`ALTER SYSTEM KILL SESSION 'SID,SERIAL#'`命令来强制终止这个Session。然而,在...

    oracle存储过程解锁

    ### 描述:“如果存储过程被锁住,可以使用这个存储过程解锁方法” #### 解析: 当遇到存储过程被锁定的情况时,通常可以通过查询`dba_ddl_locks`视图来查找锁定的详细信息。例如,要检查名为`prc_exec_day`的存储...

    Oracle强制释放锁的命令

    强制释放锁的命令是 alter system kill session 'sid,serial#';,其中 sid 和 serial# 是查询数据库引发的锁相关信息的结果。例如,使用以下命令查询锁相关信息: select username,object_name,machine,s.sid,s....

    oracle锁表解决

    Oracle数据库中的锁表问题可以通过一系列步骤来解决:首先识别出被锁定的表及其锁定模式;然后查找并确认锁定的会话;接着根据情况选择合适的方法来解除锁定(如终止会话或进程)。在整个过程中,数据库管理员需要...

    Oracle查询用户锁表

    Oracle 查询用户锁表是指在 Oracle 数据库中查询当前用户锁定的表,以便诊断和解决锁表问题。本文档将详细介绍如何查询用户锁表,并提供相关的代码。 一、查询用户锁表的必要性 在 Oracle 数据库中,锁表是指用户...

    Oracle Kill被锁进程

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

    Oracle 数据库解锁session方式

    Oracle 数据库解锁session方式

    清除Oracle中长时间持锁的session

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

    查表被锁语句

    select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b...

    Oracle的锁表与解锁

    ### Oracle的锁表与解锁:深入理解与操作 在Oracle数据库管理中,锁是一个至关重要的概念,用于控制多个用户或进程对数据的并发访问,确保数据的一致性和完整性。锁可以分为行级锁(Row Level Lock)和表级锁...

    如何快速的杀掉Oracle的Session

    需要注意的是,使用`alter system kill session`命令,被结束的Session状态会变为killed,Oracle会在下次该用户交互时清理。然而,直接杀死进程会导致Session的`paddr`被修改,如果多个Session被杀,它们的`paddr`...

    oracle Session与lock 解除

    正确的做法是在数据库级别使用`ALTER SYSTEM KILL SESSION`命令来杀死有问题的会话。 #### 小结 在Oracle数据库中正确理解和使用锁机制是非常重要的,它可以有效避免并发访问时出现的数据不一致问题。通过对锁的...

    ORACLE 如何查询被锁定表及如何解锁释放session

    ### ORACLE 如何查询被锁定表及如何解锁释放session 在Oracle数据库管理中,了解如何查询被锁定的表以及如何解锁这些锁定对于确保数据库高效运行至关重要。本文将详细介绍如何使用Oracle SQL查询锁定的表,并提供一...

    oracle锁表及解锁

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

    oracle查看session状态

    自己整理的关于oracle session的状态查看,对新手有一定的帮助,希望您喜欢。

    oracle中判断表是否被锁

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

Global site tag (gtag.js) - Google Analytics