首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除Oracle 10中的锁

删除Oracle 10中的锁
EN

Stack Overflow用户
提问于 2012-12-13 01:49:43
回答 3查看 100.5K关注 0票数 23

我在尝试更新sqlplus中的列值时遇到一个问题。

它基本上不会完成,只是挂起。我想知道有没有办法强行移除oracle中的锁?

我注意到一个名为v$locked_object的表,其中包含一个与我遇到的问题相关的对象ID。

希望我已经解释得够好了。

提前感谢您的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-13 02:06:05

这将恰好服务于您的目的:

代码语言:javascript
复制
SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>;

使用SESSION_ID查找具有以下语句的相应SERIAL#

代码语言:javascript
复制
SELECT SID, SERIAL# FROM V$SESSION WHERE SID IN (
    SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>
);

找到有问题的元组SID, SERIAL#并像这样释放它:

代码语言:javascript
复制
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
票数 63
EN

Stack Overflow用户

发布于 2012-12-13 02:05:06

设法解决了此问题。

我查看了DBA_BLOCKERS表,得到了会话ID,然后终止了会话,锁也被移除了。

票数 1
EN

Stack Overflow用户

发布于 2012-12-13 01:52:51

可能,其他人已经更新了相同的表,但还没有提交。它甚至可能是你(在不同的工具或不同的会话中)。

解除锁定的最简单方法是在另一个会话中提交工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13845655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档