- 浏览: 124040 次
- 性别:
- 来自: 北京
最新评论
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Wait' "Status", a.username, a.machine, a.sid, a.serial#, a.last_call_et "Seconds", b.id1, c.sql_text "SQL"
from v$session a, v$lock b, v$sqltext c
where a.username is not null
and a.lockwait = b.kaddr
and c.hash_value =a.sql_hash_value
union
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Lock' "Status", a.username, a.machine, a.sid, a.serial#, a.last_call_et "Seconds", b.id1, c.sql_text "SQL"
from v$session a, v$lock b, v$sqltext c
where b.id1 in
(select /*+ NO_MERGE(d) NO_MERGE(e) */ distinct e.id1
from v$session d, v$lock e
where d.lockwait = e.kaddr)
and a.username is not null
and a.sid = b.sid
and b.request=0
and c.hash_value =a.sql_hash_value;
其中:
Status有两种状态,LOCK表明该进程锁住了某个资源,WAIT表示该进程正在等待某个资源。
Username, Machine分别为ORACLE用户名及机器名
SID,SERIAL#可用于随后的解锁操作
Seconds表示该进程最后一次进行操作至当前的时间(秒)
ID1, 锁标识。某个LOCK状态的ID1与某个WAIT状态的ID1相同,可说明锁的正是另一个进程等待的。
SQL: 锁住资源的SQL语句
2. 解除锁
诊断出锁的状态后,若发现该阻塞其它用户进程的进程是正常操作中,则可通知该用户对其进行提交,从而达到释放锁资源的目的;若为非正常操作,即,其状态为"inactive",且其Seconds已为较多长时间,则可执行以下语句将该进程进行清除,系统会自动对其进行回滚,从而释放锁住的资源。
alter system kill session 'sid, serial#';
例如: 对于上例中显示的结果, 可用以下语句清除锁住资源的进程:
alter system kill session '12, 966';
from v$session a, v$lock b, v$sqltext c
where a.username is not null
and a.lockwait = b.kaddr
and c.hash_value =a.sql_hash_value
union
select /*+ NO_MERGE(a) NO_MERGE(b) NO_MERGE(c) */ 'Lock' "Status", a.username, a.machine, a.sid, a.serial#, a.last_call_et "Seconds", b.id1, c.sql_text "SQL"
from v$session a, v$lock b, v$sqltext c
where b.id1 in
(select /*+ NO_MERGE(d) NO_MERGE(e) */ distinct e.id1
from v$session d, v$lock e
where d.lockwait = e.kaddr)
and a.username is not null
and a.sid = b.sid
and b.request=0
and c.hash_value =a.sql_hash_value;
其中:
Status有两种状态,LOCK表明该进程锁住了某个资源,WAIT表示该进程正在等待某个资源。
Username, Machine分别为ORACLE用户名及机器名
SID,SERIAL#可用于随后的解锁操作
Seconds表示该进程最后一次进行操作至当前的时间(秒)
ID1, 锁标识。某个LOCK状态的ID1与某个WAIT状态的ID1相同,可说明锁的正是另一个进程等待的。
SQL: 锁住资源的SQL语句
2. 解除锁
诊断出锁的状态后,若发现该阻塞其它用户进程的进程是正常操作中,则可通知该用户对其进行提交,从而达到释放锁资源的目的;若为非正常操作,即,其状态为"inactive",且其Seconds已为较多长时间,则可执行以下语句将该进程进行清除,系统会自动对其进行回滚,从而释放锁住的资源。
alter system kill session 'sid, serial#';
例如: 对于上例中显示的结果, 可用以下语句清除锁住资源的进程:
alter system kill session '12, 966';
发表评论
-
orcale备份,还原数据库
2014-02-26 11:29 512在cmd下边输入 exp 数据库名/密码@数据库服务 file ... -
sqlserver数据库自动备份
2014-02-20 16:50 553DECLARE @strPath NVARCHAR(200) ... -
SQL两个数据库 触发器(转)
2014-02-19 12:54 752有两个服务器,分别装有两个SQL Server A ,B A ... -
SQL两个数据库 触发器(转)
2014-02-19 12:54 533有两个服务器,分别装有两个SQL Server A ,B A ... -
设置主外建
2013-12-18 15:58 547主键 alter table XXX add constrai ... -
pl/sql 无法解析指定的连接标识符(转载)
2013-04-22 16:23 938机器中安装了Oracle9i的完整服务器端,并且同时还安装了 ... -
oracle时间字段
2013-03-11 09:23 7031 select to_char(sysdate,'yyyy ... -
使用ssh连接操作oracle数据库
2013-03-05 09:43 4167su - oraclesqlplus /nologconn ... -
各种数据库对应的jar包(转载)
2013-02-01 15:12 939具体如下: 数据库类型 对应的Jar ... -
oracle中varchar2转换成clob(转载)
2012-12-14 15:29 1083alter table Shop add texts clob ... -
oracle 游标
2012-09-20 18:03 710看一下数据库的游标数参数 show parameter ... -
mysql卸载后注册表删除
2012-08-28 09:42 2336当你要升级mysql版本,或者重新安装mysql数据库时,my ... -
Mysql本地计算机无法启动错误1067:进程意外终止的问题 (转载)
2012-08-06 09:49 794Mysql 本地计算机无法启动错误 1067:进程意外终止的问 ... -
SQLSERVER系统表(转载)
2012-07-04 09:02 26131、查看表和试图 SELECT * FROM sys.obj ... -
将ORACLE数据库表中字段的varchar类型转为CLOB?
2012-04-25 11:38 977怎么样将ORACLE数据库表中字段的varchar类型转为 ... -
给一个用户创建表的权限
2012-04-12 17:00 786要能执行建表语句,需要两个权限:1. create table ... -
ORA-28000: the account is locked-的解决办法 (转载)
2012-04-11 09:58 729ORA-28000: the account is loc ... -
SQL Server 2005还原数据库时出现“备份集中的数据库备份与现有的数据库不同”解决方法 (转载)
2012-03-06 16:06 1183对于SQL Server 2005,有几个地方是要注意的,比如 ... -
oracle grant权限
2012-02-21 15:42 1193oracle的权限管理 ... -
java.util.date转化成java.sql.date
2012-02-15 14:28 773java.util.Date curDate = new ja ...
相关推荐
以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed的session。 ### 一、识别死锁进程 #### 查找被锁定的过程 首先,我们需要确定哪些进程正处于死锁状态。这可以通过查询`V$...
Oracle 死锁问题的排查语句 Oracle 死锁是指在数据库中出现的循环等待资源的情形,从而导致数据库性能下降或系统崩溃。出现死锁的原因有多种,如资源竞争、锁定机制不当等。下面是排查 Oracle 死锁问题的语句: 1....
【Oracle死锁的分类及其模拟】这篇博客主要探讨了Oracle数据库中的死锁问题,包括死锁的基本概念、分类以及如何进行模拟。以下是该主题的详细解释: **死锁概述** 死锁是数据库系统中常见的问题,它发生在两个或多...
### Oracle死锁原因及解决办法 #### 一、Oracle死锁概述 在Oracle数据库系统中,死锁是一种常见的并发问题,它会导致多个事务之间互相等待对方释放资源而无法继续执行,最终导致整个系统的运行效率降低甚至停滞。...
"oracle死锁表后处理" oracle死锁表后处理是指在oracle数据库中处理死锁表的各种方法和技巧。oracle死锁表后处理是数据库管理员和开发人员需要掌握的重要技能,旨在解决oracle数据库中出现的死锁问题,确保数据的...
oracle死锁问题查询代码,仅供参考,有问题大家一起交流
### Oracle死锁故障分析与诊断解决 在Oracle数据库管理中,死锁是一个常见的问题,它发生在两个或多个事务互相等待对方释放资源时,导致所有事务都无法继续执行的情况。本文将深入探讨Oracle死锁的原因、诊断方法及...
### 教您如何检查Oracle死锁 #### 一、数据库死锁的现象 在日常工作中,当我们使用Oracle数据库进行数据操作时,可能会遇到一种特殊的情况——死锁。这种现象通常表现为程序在执行过程中突然停止响应,既无法继续...
编译的存储过程的时候,程序死住,等待一会出现ora-04021错误解决办法。文档中有查询思索的语句,以及杀掉死锁进程的方法。
查询ORACLE死锁以及解锁语句查询ORACLE死锁以及解锁语句
### 查看 Oracle 死锁程序 #### 背景与目的 在Oracle数据库管理中,了解如何检测并解决死锁问题至关重要。死锁是数据库环境中常见的并发问题之一,它发生在两个或多个事务互相等待对方释放资源的情况下,最终导致...
在Oracle数据库系统中,死锁是指两个或多个...综上所述,处理Oracle死锁需要深入了解数据库的内部机制,并结合适当的监控和预防措施。通过有效的诊断和管理,我们可以减少死锁的发生,从而提高数据库的性能和可用性。
oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!
### Oracle死锁时的进程处理方法 在Oracle数据库管理中,死锁是一个常见的问题,它通常发生在两个或多个事务互相等待对方释放资源的情况。当这种情况发生时,可能会导致应用程序响应变慢甚至完全停止运行。因此,...
kill system session(解决oracle死锁)
处理Oracle死锁的过程
下面将详细讨论Oracle死锁的原因、具体分析、示例以及解决办法。 1. **死锁原因分析** - 行级锁:Oracle数据库使用行级锁来支持并发操作,当两个事务同时尝试获取对方已持有的锁时,就可能导致死锁。 - 外键约束...