如何将数据库中被锁表解锁

数据|数据库

我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:

SELECT   sn.username, m.SID,sn.SERIAL#, m.TYPE,         DECODE (m.lmode,                 0, 'None',                 1, 'Null',                 2, 'Row Share',                 3, 'Row Excl.',                 4, 'Share',                 5, 'S/Row Excl.',                 6, 'Exclusive',                 lmode, LTRIM (TO_CHAR (lmode, '990'))                ) lmode,         DECODE (m.request,                 0, 'None',                 1, 'Null',                 2, 'Row Share',                 3, 'Row Excl.',                 4, 'Share',                 5, 'S/Row Excl.',                 6, 'Exclusive',                 request, LTRIM (TO_CHAR (m.request, '990'))                ) request,         m.id1, m.id2    FROM v$session sn, v$lock m   WHERE (sn.SID = m.SID AND m.request != 0)         --存在锁请求,即被阻塞      OR (    sn.SID = m.SID                         --不存在锁请求,但是锁定的对象被其他会话请求锁定          AND m.request = 0          AND lmode != 4          AND (id1, id2) IN (                        SELECT s.id1, s.id2                          FROM v$lock s                         WHERE request != 0 AND s.id1 = m.id1                               AND s.id2 = m.id2)         )ORDER BY id1, id2, m.request;

通过以上查询知道了sid和 SERIAL#就可以开杀了   alter system kill session 'sid,SERIAL#';

时间: 2024-10-31 10:21:25

如何将数据库中被锁表解锁的相关文章

40-.net如何从数据库中的一个表中取值

问题描述 .net如何从数据库中的一个表中取值 假设这是我数据库里的一张表(数据库是oracle),我该如何取得这些数将他们传给jsonObj.Rows,求教各位大神,能给个具体的实现过程吗? 解决方案 sonObj.Rows是你自己组装的json对象吧,你首先要查询数据库,这个自己看msdn把,很简单,获取值后开始组织json就行了 解决方案二: 自己读取数据后,通过服务器端代码赋值给aspx上的script标签就行,注意<%%>这种代码不能放js文件里面,必须是在aspx页面里面才能解析运

asp.net用gridview显示数据库中两个表的数据?

问题描述 asp.net用gridview显示数据库中两个表的数据? asp.net用gridview显示数据库中两个表的数据?把两表绑定在datatable并用gridview显示数据 解决方案 两个表什么关系?如果是一样的表结构,用union连接,如果是主系表关系,那么可以用join.具体按照我说的google下. 解决方案二: 不管是查询几个表,最后通过sql语句走ado.net,查询出来的数据都放入DataTable或DataSet中,然后绑定到gridview 解决方案三: 如果是一起

sql-将一个数据库中的所有表复制到另一个数据库中

问题描述 将一个数据库中的所有表复制到另一个数据库中 两个数据库不在一个服务器上!!! 比如我本机的ip地址为11.12.13.15 数据库名称为sqljiang 登陆名和密码分别为sa和sa123 服务器的ip为22.33.55.66 数据库名称为sqlfwqsjl 服务器中的数据库是空的 现在我想将本机sqljiang中的所有信息完整复制到服务器中,包括表结构. 表中的数据.视图.存储过程等,如何通过脚本实现. 由于服务器没有这么大的权限,因此不能通过直接还原数据库备份的方法... 解决方案

select-在C#的combobox中显示数据库中所有的表名,但是sql语句不知道怎么写

问题描述 在C#的combobox中显示数据库中所有的表名,但是sql语句不知道怎么写 List<string> tableNames = "Select( (string)x["Table_Name"] from dt where type=1 and flags=0)"; dt是连接数据库时设定的表名 解决方案 sql语句如下所示:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' 前提是提前设置好config配置文

mysql-php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来

问题描述 php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来 <?php include(""connectDB.php""); @$query=mysql_query($conSELECT * from xx""); @$result=mysql_fetch_array(@$query); if($result==true){ ?> <table width=""

如何修复损坏数据库中的数据表

在使用MySQL过程中,各种意外会导致数据库表的损坏,而且这些数据往往是最新的数据,通常不可能在备份数据中找到.在使用阿里云数据库RDS产品中,RDS是如何修复损坏数据库中的数据表的呢?在传统数据库中,又是如何对其进行修复的呢?接下来,我们将做一个比较: 阿里云数据库RDS 阿里云提供的关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和高性能存储,RDS 支持 MySQL.SQL Server.Po

qt 段错误 数据库-qt程序连接数据库中读取一个表没事,读多个表就出问题!

问题描述 qt程序连接数据库中读取一个表没事,读多个表就出问题! qt程序连接数据库中读取一个表没事,读多个表出问题!以前都不会出现这类问题,过段时间后再次去运行就不能运行了,直接跳出来.The program has unexpectedly finished. /home/wonhere/Setbackground-build-desktop/Setbackground exited with code 0

为什么数据库中同一个关系表中的属性名是不能重名的,不同的关系表中的属性名是可以重?能举个例子吗?

问题描述 为什么数据库中同一个关系表中的属性名是不能重名的,不同的关系表中的属性名是可以重?能举个例子吗? 为什么数据库中同一个关系表中的属性名是不能重名的,不同的关系表中的属性名是可以重?能举个例子吗? 解决方案 比如 三张表:学生(学号,姓名),课程(课程名,课程编号),选课(学号,课程号,成绩) 学生表中不能有都叫学号的属性名,比如学生(学号,学号)就是有问题的,表里无法区分这两个学号,也就是同一个关系表中的属性名是不能重名的 学生表和选课表就都能有学号属性,也就是不同的关系表中的属性名是

java根据数据库中的关系表来做拓扑关系图

问题描述 java根据数据库中的关系表来做拓扑关系图 如何用java根据数据库中的关系表来生成拓扑关系图,体现出一个人下的好友,就像facebook用户下所关联的其他好友! 解决方案 社交网络中使用的数据库是非关系型数据库如nosql等,可以研究下nosql中对于关系的表达.