oracle 表锁死的解决方法
我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sqlDeveloper工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:
1、查看被锁的表:
|
SELECTp.spid, |
解锁:
alter system kill session'b.session_id,a.serial#';
或在系统层面终止进程:
[Windows]
[Linux]
2、查询当前表锁的方法:
|
SELECTall_objects.object_name, |
v$locked_object:用以详细的描述了当前锁定对象的详细信息,OBJECT_ID为对象ID,SESSION_ID为当前登录用户Session号,ORACLE_USERNAME为Oracle的用户名,OS_USER_NAME为操作系统用户名等
v$lock:该视图说明当前锁定的所有对象,锁定SID号,锁定类型等信息;
3、查询锁
|
--存在锁请求,即被阻塞 SELECTsn.username, --不存在锁请求,但是锁定的对象被其他会话请求锁定 SELECTsn.username, |
3、查询锁
|
--存在锁请求,即被阻塞 SELECTsn.username, --不存在锁请求,但是锁定的对象被其他会话请求锁定 SELECTsn.username, |
本文介绍如何解决Oracle数据库中表被锁定的问题,包括查询锁定表、会话及锁的状态,并提供了解锁方法。
13万+

被折叠的 条评论
为什么被折叠?



