`

oracle-锁

阅读更多

-- 1.

SELECT l.session_id sid,  
       s.serial#,  
       l.locked_mode,  
       l.oracle_username,  
       l.os_user_name,  
       s.machine,  
       s.terminal,  
       o.object_name,  
       s.logon_time,  
       p.SPID   ,
       'alter system kill session '''|| l.session_id||','|| s.serial# ||''';'    --杀进程sql
  FROM v$locked_object l, all_objects o, v$session s,v$process p  
 WHERE l.object_id = o.object_id  
   AND l.session_id = s.sid  
   AND s.paddr = p.addr  
 ORDER BY sid, s.serial#;

 

-----2.

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=15 (24是上面的sid)


4.在OS上杀死这个进程(线程):
1)在unix上,用root身份执行命令:
#kill -9 12345(即第3步查询出的spid)

 select distinct s1.* from V$DB_OBJECT_CACHE   oc,

  v$object_dependency od,

  dba_kgllock         w,

  v$session           s1

  where oc.name = 'PCK_SEB_MGR'

  and od.TO_OWNER   = oc.OWNER

  and od.TO_NAME    = oc.NAME

  and od.TO_ADDRESS = w.kgllkhdl

  and w.kgllkuse = s1.SADDR;

 

--1.
SELECT S.USERNAME,
       S.OSUSER,
       S.SID,
       S.SERIAL#,
       P.SPID,
      
       'alter system kill session ''' || S.SID || ',' || S.SERIAL# || ''';' --杀进程sql
  FROM V$SESSION S, V$PROCESS P
 WHERE S.PADDR = P.ADDR
   AND S.USERNAME IS NOT NULL
   and s.USERNAME = 'EIP'
 order by s.SID;

--alter system kill session '100,43596';

--2.
select a.spid, b.sid, b.serial#, b.username
  from v$process p, v$session s
 where p.addr = s.paddr
   and s.status = 'KILLED';

--sid:表示要杀死的进程属于的实例名 --thread:是要杀掉的线程号,即第3步查询出的spid。
--orakill sid thread
--orakill 162 5820

--C:\Users\ThinkPad>orakill xx/xx@wl 162 3112;

 

-------------------------

Oracle的KILL锁表及清除session方法

http://blog.sina.com.cn/s/blog_7134b6f301011q3z.html

 Oracle中查看表是否被锁 

http://blog.163.com/kangle0925%40126/blog/static/277581982011101661720386/

 

ORACLE中的被锁的表  http://blog.sina.com.cn/s/blog_713978a50100q3le.html

 

 

分享到:
评论

相关推荐

    Oracle的锁表与解锁

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

    ORACLE-API-必看集

    1. PL/SQL包:PL/SQL是Oracle特有的过程化SQL语言,包含了一系列预定义的包,如DBMS_OUTPUT用于输出调试信息,DBMS_LOCK用于处理锁机制,DBMS_JOB用于调度任务等。通过PL/SQL包,开发者可以更方便地进行数据操作和...

    0001-Oracle-系统-视图

    若要监控数据库的锁情况,`V$LOCK`视图则能提供帮助。同时,`DBA_USERS`和`DBA_ROLES`视图可以帮助我们管理用户和角色权限。 总之,Oracle的系统视图是了解和管理数据库不可或缺的工具。通过`0001-Oracle-系统-视图...

    oracle-事务oracle-transaction信息管理与信息系统.doc

    事务会在修改数据的第一条语句处隐式开始(也就是得到 TX 锁的第一条语句)。也可以使用 SET TRANSACTION 或 DBMS_TRANSACTION 包来显式地开始一个事务。 事务控制语句包括: 1. COMMIT:结束事务,并使得已做的...

    oracle--lock.zip_oracle

    Oracle支持行级锁、表级锁和库级锁。表锁在解决全表扫描或大范围更新时特别有用,因为它可以一次性锁定整个表,减少锁定的数据范围,提高性能。 五、解决表锁问题的步骤 1. **分析锁情况**:使用`v$lock`视图查看...

    循序渐进Oracle----数据库管理、优化与备份恢复.pdf

    了解Oracle提供的不同级别锁机制(如行级锁、表级锁)和死锁检测机制,有助于设计高并发下的应用架构,保证数据的一致性和完整性。 ### 三、备份与恢复 #### 1. 备份策略 制定合理的备份策略是数据库灾难恢复的...

    收获不止Oracle--超清扫描PDF

    4. 控制数据的锁定:避免不必要的锁竞争和锁定时间过长,这可以通过合理的事务隔离级别和锁定策略来实现。 5. 合理使用数据库参数和资源:比如调整Oracle的初始化参数,包括缓存大小、内存分配等,以及合理利用并行...

    Oracle强制释放锁的命令

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

    Expert One-on-One Oracle - Thomas Kyte.pdf

    - **内部锁**:Oracle内部使用的锁定机制。 - **手动锁定**:开发者自定义的锁定逻辑。 - **并发控制**:介绍Oracle提供的多种事务隔离级别,以及它们如何帮助解决并发访问问题。 - **READ UNCOMMITTED**:最低的...

    oracle数据库锁使用

    Oracle 数据库锁是确保数据完整性、一致性以及并发操作的关键机制。在Oracle中,锁主要分为两类:数据锁(DML锁)和字典锁。字典锁主要用于内部管理,特别是语法分析和DDL操作,用户无法直接控制。而数据锁则是我们...

    Oracle-ERP开发笔记

    - 解决由于长时间运行的事务导致的假死锁问题,通常涉及到事务管理的最佳实践。 **24. FORM死锁解决** - 更深入地探讨如何解决真正的死锁问题,包括如何避免和诊断死锁。 **25. FORM6i引入JAVA类** - Oracle Forms...

    Oracle-数据库保护.ppt

    有两种基本类型的封锁:排他锁(禁止其他用户读写)和共享锁(允许读但阻止写)。 - **一致性模型**:Oracle支持语句级和事务级读一致性,确保在事务内的读操作始终看到一致视图。 4. **数据库后备和恢复**: - *...

    Oracle数据库的锁类型

    ### Oracle数据库的锁类型详解 #### 一、引言 Oracle数据库作为企业级数据库解决方案的佼佼者,其锁机制是保障数据完整性和并发控制的关键技术之一。在Oracle数据库中,锁的使用是为了协调多个用户对同一数据资源...

    Oracle-错误一览表.doc

    12. **A-00056**: 对象上的DDL锁以不兼容模式挂起,可能是因为在进行结构修改(如ALTER TABLE)时,有并发的DML操作。 13. **A-00060**: 检测到死锁,这在并发事务中处理资源竞争时可能发生。 14. **A-00061**: 另...

    Oracle数据库解锁工具

    Oracle数据库解锁工具是一种专门用于解决Oracle数据库账户锁定问题的应用程序,尤其在开发环境中十分有用。在Oracle数据库系统中,为了确保安全性,用户账户可能会因为多次尝试登录失败而被自动锁定。这种情况下,...

    Oracle-11g-安装图解(详细版)

    ### Oracle 11g 安装详细指南 #### 一、Oracle 11g 下载与准备 在开始安装之前,首先要确保下载了正确的Oracle 11g版本。Oracle 11g通常分为两个文件,下载完成后需要将这两个文件解压缩至同一目录下。 **注意...

    oracle锁表处理

    Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?

Global site tag (gtag.js) - Google Analytics