`
IvanLi
  • 浏览: 602837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle锁表与解表

阅读更多
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT Null





--kill session语句
alter system kill session'50,492';
--以下几个为相关表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;
--1.查出锁定object的session的信息以及被锁定的object名
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
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
--2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句
--比上面那段多出sql_text和action
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;
--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;





这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,
任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。
杀锁命令
alter system kill session 'sid,serial#'
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
如果发生了锁等待,我们可能更想知道是谁锁了表而引起谁的等待
以下的语句可以查询到谁锁了表,而谁在等待。
以上查询结果是一个树状结构,如果有子节点,则表示有等待发生。
如果想知道锁用了哪个回滚段,还可以关联到V$rollname,其中xidusn就是回滚段的USN
col user_name format a10
col owner format a10
col object_name format a10
col object_type format a10
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,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
ORDER BY o.object_id,xidusn DESC
分享到:
评论

相关推荐

    oracle锁表和解锁语句示例.sql

    oracle锁表和解锁语句示例。

    orcale查看锁表与解表语句

    "orcale查看锁表与解表语句"这个主题主要涉及到如何检查Oracle数据库中的锁情况以及如何解除可能存在的死锁。以下是一些关键知识点的详细解释: 1. **`v$lock`表**:这是Oracle提供的一张动态性能视图,用于显示...

    查看oracle锁,并解?

    查看Oracle的锁,并可删除指定的锁

    Oracle事务、锁表查询及相关实用查询SQL语句

    ### Oracle事务、锁表查询及相关实用查询SQL语句 #### 一、Oracle事务管理 在Oracle数据库中,事务是作为一组逻辑操作单元处理的一系列数据库操作。这些操作要么全部成功,要么全部失败,确保了数据的一致性和完整...

    Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法.txt

    Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法|Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法|Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法|Oracle 添加用户并赋权,修改密码,解锁...

    oracle12c安装与使用

    ### Oracle12c Release 1 安装与使用详尽指南 #### 一、Oracle12c Release 1 安装教程 1. **下载Oracle12c** - 下载地址:...

    windows 安装oracle11G 超级详细

    1. **关闭杀毒软件与防火墙**:在安装Oracle 11g R2之前,请确保关闭所有杀毒软件及Windows防火墙,以免它们干扰安装过程。 2. **避免中文路径**:Oracle的安装文件不应存放在含有中文字符的路径中。例如,推荐的...

    Win7环境下Oracle安装配置及管理工具安装及使用

    1. **解压安装文件**:将下载的两个压缩文件解压缩到合适的目录,例如D:\Oracle\product\11.2.0\dbhome_1。 2. **启动安装向导**:找到解压后的"setup"执行文件,双击开始安装过程。安装过程中需遵循向导提示,选择...

    Oracle常用字典表.docx

    ### Oracle 数据字典表与动态视图详解 #### 一、概述 在Oracle数据库中,数据字典(Data Dictionary)是一系列系统表的集合,用于存储数据库自身的元数据(即描述数据的数据)。这些元数据包括数据库对象(如表、...

    oracle实战详解-任亮.docx

    在安装Oracle 10g时,首先要解压缩安装包,对于Windows 7或8系统,需要右键以兼容模式(XP)和管理员权限运行setup.exe。接着,按照步骤输入管理员口令并进行安装,过程中包括选择安装类型、确认先决条件、接受许可...

    zabbix_oracle_plugin zabbix oracle数据库监控插件

    - **JDBC集成**:插件通过Java数据库连接(JDBC)技术与Oracle数据库进行通信,确保数据采集的安全性和效率。 - **Zabbix协议兼容**:完全兼容Zabbix协议,能够无缝集成到现有的Zabbix监控环境中,提供强大的数据...

    oracle数据库安装详解+配置+PL/SQL安装配置

    - **解压与配置**:解压缩后在特定目录下创建NETWORK\ADMIN文件夹,并在其中创建tnsnames.ora文件。 - **tnsnames.ora配置**:在文件中添加数据库连接描述,例如: ``` ORCL = (DESCRIPTION = (ADDRESS = ...

    在Linux系统下Oracle数据库的安装及设计方案.pdf

    如果使用的是压缩归档文件(如 `10gship.tar.gz`),首先将其解压缩到临时目录(如 `/tmp/oracle`),然后使用命令 `tar -xzf 10gship.tar.gz` 解压文件。 #### 2. Oracle数据库优化方案 ##### 2.1 内存管理优化 ...

    oracle监测脚本集.tar.gz

    因此,实时监测Oracle数据库的各项指标至关重要,包括CPU使用率、内存消耗、磁盘I/O、网络延迟、事务处理速度以及锁等待等。通过有效的监测,可以预防潜在的问题,及时发现并解决性能瓶颈,保证服务的高可用性。 二...

    最好用的两个oracle客户端(OB11+osqledit)

    这是两个客户端工具,是我在开发工作中最好用也是最常用的客户端工具。 ...ob11优点: 1.全图形化界面操作,包括修改表数据,甚至表结构,表中项目类型和...3.点解表名,右键可以生成select、insert、update、delete语句。

    Oracle学习笔记第一册

    了解表的结构是数据库操作的重要环节,使用DESC命令可以查看表的列名、数据类型等信息。例如,desc 表名会显示指定表的结构。 SELECT语句是SQL的核心,可以用于查询数据。在Oracle中,我们可以直接在dual表上进行...

    oracle11G建库到登录(祥解).pdf

    在设置过程中,你需要指定全局数据库名(如 `test`),这是数据库的唯一标识符,通常与 SID(System Identifier)相同,SID 在此示例中也设置为 `test`。此外,你可以配置 Enterprise Manager,但为了简化,可以选择...

    2008年哈尔滨工业大学软件学院Oracle考试题

    4. **数据库对象**:考生需了解表(Tables)、视图(Views)、索引(Indexes)、存储过程(Stored Procedures)、触发器(Triggers)和游标(Cursors)等数据库对象的创建、管理和使用。 5. **安全性管理**:理解...

Global site tag (gtag.js) - Google Analytics