`

Oracle高级应用之解锁表

    博客分类:
  • db
 
阅读更多

每篇一笑:老鼠去方便,见熊也在,吓得不吭声,熊看了眼老鼠说:你掉不掉毛?老鼠哆嗦不语,熊又问:掉不掉毛?老鼠说:不掉!熊抓住老鼠擦擦屁股走了。

锁机制用于管理对共享资源的并发访问。注意,我说的是“共享资源”而不是“数据库行”。Oracle会在行级别对表数据锁定,这固然不错,不过Oracle也会在其他多个级别上使用锁,从而对多种不同的资源提供并发访问。
如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会出现死锁。例如,如果数据库中有两个表A和B,每个表中都只有一行,就可以很容易地展示什 么是死锁。要做的只是打开两个会话。在会话A中更新表A,并在会话B中更新表B。现在,如果想在会话B中更新表A,就会阻塞。会话A已经锁定了这一行。这 不是死锁,只是阻塞而已。我还没有遇到过死锁,因为会话A还有机会提交或回滚,这样会话B就能继续了。
1.查看当前系统中锁表情况的SQL如下:

  1. select * from v$locked_object  

2.可以通过查询v$locked_object拿到sid和objectid,然后用sid和v$session链表查询是哪里锁的表,用v$session中的objectid字段和dba_objects的id字段关联,查询详细的锁表情况的SQL如下:

  1. select sess.sid,  
  2.        sess.serial#,  
  3.        lo.oracle_username,  
  4.        lo.os_user_name,  
  5.        ao.object_name,  
  6.        lo.locked_mode  
  7.   from v$locked_object lo, dba_objects ao, v$session sess, v$process p  
  8. where ao.object_id = lo.object_id  
  9.    and lo.session_id = sess.sid  

3.查询是什么引起了锁表的原因的SQL如下:

  1. select l.session_id sid,  
  2.        s.serial#,  
  3.        l.locked_mode,  
  4.        l.oracle_username,  
  5.        s.user#,  
  6.        l.os_user_name,  
  7.        s.machine,  
  8.        s.terminal,  
  9.        a.sql_text,  
  10.        a.action  
  11.   from v$sqlarea a, v$session s, v$locked_object l  
  12. where l.session_id = s.sid  
  13.    and s.prev_sql_addr = a.address  
  14. order by sid, s.serial#  

4.解锁的SQL如下:

 

  1. alter system kill session 'sid,serial#' 

原文地址:http://blog.csdn.net/fu0208/article/details/9818109

分享到:
评论

相关推荐

    java调用Oracle的锁表命令

    在Java编程中,与Oracle数据库进行交互是常见的需求,特别是在处理并发事务时,可能需要对表进行锁定以确保数据的一致性。...对于更复杂的应用场景,如分布式事务,可能需要考虑使用两阶段提交(2PC)或其他高级技术。

    Oracle锁和表分区

    2. **表分区**:表分区是Oracle数据库中一种高级的数据组织技术,用于提升查询性能和管理大规模数据的效率。表分区将一个大表分成逻辑上独立的部分,每个部分称为一个分区。 - **分区类型**:Oracle支持多种分区...

    RAC oracle scsi 集群

    Oracle 真正应用集群(RAC)是一种高级数据库架构,旨在提高数据库的可用性和性能。RAC通过允许多个数据库实例同时访问同一物理数据库,实现了高可用性和负载均衡。在"RAC oracle scsi 集群"的场景中,这种技术结合...

    Oracle学习笔记 PDF

    Oracle不仅提供数据库解决方案,还涉及中间件、应用软件以及硬件等多个领域。 - **发展历程**: - Oracle的发展早期得到了IBM的技术支持,这为其后续的成功奠定了基础。 - 2009年,Oracle收购了SUN公司,此举使得...

    Oracle 经典试题

    Oracle数据库是全球广泛...这些知识点涵盖了Oracle数据库的基础概念、SQL语法、函数应用以及数据库管理等方面,是学习和掌握Oracle数据库所必需的基本技能。通过这样的试题,可以深入理解Oracle的工作原理和操作技巧。

    Oracle初级DBA入职手册

    - **地位**:Oracle是全球最大的数据库管理系统提供商之一,也是仅次于微软的全球第二大独立软件供应商。 - **Oracle的历史版本**: - **1970年**:关系型数据库理论的提出,奠定了Oracle的基础。 - **1980年**...

    Oracle权限大全

    权限传递是 Oracle 权限大全的高级内容,包括授予权限同时授予管理员权限和授予权限同时授予授予权限。 with admin option 和 with grant option 是权限传递的关键字。 角色是 Oracle 权限大全的集合概念,包括创建...

    oracle常用命令文档

    - 在“我的电脑”-“属性”-“高级”-“环境变量”中删除环境变量 `CLASSPATH` 和 `PATH` 中有关 Oracle 的设定。 5. **删除 Oracle 目录:** - 删除所有与 Oracle 相关的目录,包括但不限于: - `C:\Program ...

    Oracle学习笔记.pdf

    Oracle是世界上最广泛使用的数据库管理系统之一,它提供了丰富的功能和组件,包括数据存储、查询优化、安全性、并发控制等。以下是对Oracle学习笔记中提到的一些关键知识点的详细解释: 1. **SQL执行顺序**: SQL...

    oracle书籍库总结

    它支持多种高级特性,如分区、并行处理等,广泛应用于企业级应用环境中。 #### 二、Oracle命令行操作 1. **设置命令行环境**: - 取消设置折痕:`set linesize 数字` - 设置每页显示数据长度:`set pagesize 数字...

    Oracle认证介绍与练习题

    Oracle认证体系包括多个级别,覆盖了数据库管理、应用开发、网络管理等多个领域。 #### OCP (Oracle Certified Professional) OCP(Oracle认证专家)是Oracle认证体系中的一个重要级别,它主要面向那些拥有较深...

    ORACLE数据库设计

    Oracle数据库设计是IT领域中一项至关重要的技能,尤其对于企业级应用来说,Oracle以其稳定性、安全性以及强大的功能而广受青睐。本教程主要涵盖了Oracle数据库的安装配置、用户访问管理、表的创建与管理、操作符的...

    potlight oracle 注册码:

    在Spotlight Oracle的上下文中,注册码用于解锁软件的全部功能,确保用户可以无限制地访问其高级监控与诊断工具。没有有效的注册码,Spotlight Oracle可能仅提供有限的功能或在试用期结束后停止运行。 ### 如何使用...

    Oracle 10g安装示意图

    Oracle 10g是一款经典的关系型数据库管理系统,广泛应用于企业级的数据存储和管理。本文将详细阐述Oracle 10g的安装步骤,帮助对Oracle 10g不太熟悉的用户顺利完成安装过程。 首先,安装前的准备工作至关重要。确保...

    Oracle11g讲义.docx

    Oracle 11g 的学习涵盖了许多方面,从基本的 SQL 语法到高级的数据库设计、性能优化、备份与恢复等。对于新手,这是一个很好的起点,因为它提供了详细的文档和教程,帮助理解数据库管理的基本概念。对于经验丰富的...

    让您轻松卸载oracle

    对于许多IT专业人士而言,Oracle数据库系统因其强大的功能和广泛的应用而受到青睐。然而,在某些情况下,可能需要完全卸载Oracle数据库,例如在迁移至其他版本或解决冲突问题时。本文将详细解释在Windows 2000操作...

    Oracle 入门文档2

    最后,文档提到了XML操作和与操作系统文件的交互,这在现代企业级应用中十分常见,例如读取和写入XML文件以进行数据交换,或者利用Oracle的外部表功能来访问文件系统上的数据。 总的来说,Oracle入门文档涵盖了从...

    oracle如何解锁封锁的账号

    同时,Oracle数据库还提供了其他高级特性,如ACLS(访问控制列表)、RAC(Real Application Clusters)等,这些都在数据库管理、性能优化和高可用性方面起着关键作用。对于开发者和DBA来说,深入理解Oracle的这些...

Global site tag (gtag.js) - Google Analytics