oracle数据中记录被另一个用户锁住 (附加:操作实例)
来源:互联网 发布:掉头发怎么办知乎 编辑:程序博客网 时间:2024/05/20 09:07
今天,运行Java后台程序,设置了断点,每到执行SQL语句时,就卡住,执行检查,发现SQL语句并没有问题,程序没没问题,于是把语句拷贝到PL/SQL里面执行,发现还是语句执行了很久都没有结果,于是我中断执行,我使用的是Update语句。
1、查看数据库锁,诊断锁的来源及类型:
select object_id,session_id,locked_mode from v$locked_object;
或者用以下命令:
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
SELECT 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
2、找出数据库的serial#,以备杀死:
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
3、杀死该session
alter system kill session 'sid,serial#'
用步骤2中查出来的记录,对应进该语句删除
就是这样子,以下是我操作的方法:
第一步:(只是用于查看哪些表被锁住,真正有用的是第二、第三步)
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
后:
1
2
3
4
5
6
7
8
9
10
可以看出,那些表被锁住
第二步:
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
后:
1
2
3
4
5
6
7
8
9
10
第三步:(关键)
执行:(alter system kill session 'sid,serial#')具体如下:
alter system kill session '1115,132'
alter system kill session '1097,116'
alter system kill session '1111,155'
alter system kill session '1103,292'
alter system kill session '1116,388'
alter system kill session '1100,240'
alter system kill session '1106,228'
alter system kill session '1092,10'
执行成功,会提示执行完毕!
有可能执行完一条之后,其他的ID也跟着消失,执行完3后,在执行2,检查时候清除完毕
1、查看锁表进程:
SQL:select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
2、将锁住的进程杀掉
SQL:alter system kill session SID,serial#;
- oracle数据中记录被另一个用户锁住 (附加:操作实例)
- oracle数据中记录被另一个用户锁住 (附加:操作实例)
- oracle数据中记录被另一个用户锁住 (附加:操作实例)
- oracle 记录被另一个用户锁住 (附:操作实例)
- oracle数据中记录被另一个用户锁住
- oracle数据中记录被另一个用户锁住
- oracle数据中记录被另一个用户锁住
- oracle数据中记录被另一个用户锁住
- oracle数据中报错"记录被另一个用户锁住"
- oracle数据中删除数据时提示“记录被另一个用户锁住”
- Oracle数据库中记录被另一个用户锁住
- oracle 记录被另一个用户锁住
- oracle 记录被另一个用户锁住
- oracle“记录被另一个用户锁住”
- oracle 记录被另一个用户锁住
- oracle“记录被另一个用户锁住”
- oracle“记录被另一个用户锁住”
- oracle 记录被另一个用户锁住
- Visual Studio 编译时出现error C4996 解决方法
- 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案
- 安装perl module
- HttpRefer html跳过服务器验证header信息中的refer
- 面试1
- oracle数据中记录被另一个用户锁住 (附加:操作实例)
- C++primer中的TextQuery(读取文本)
- 判断window.onload是否多次使用
- android项目 之 记事本(8) ----- 画板功能之撤销、恢复和清空
- Android事件传递机制-View篇
- 如何有效地激发员工的积极性
- 修改网卡mac地址的思考
- 约瑟夫环
- File的getPath()和getAbsolutePath()和getCanonicalPath()的区别