表被锁了通过如下:
SELECt s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERe s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;
取得sid和serial#执行如下:
alter system kill session '131,9426';
提示:ORA-00031:标记要终止的会话
网上查看说通过如下获得SPID去杀死进程,但是我在系统里面都没有找到这个进程ID:
select pro.spid from v$session ses,v$process pro where ses.sid=131 and ses.paddr=pro.addr;
有知道的吗?
oracle表被锁,找到的进程ID在系统里面找不到这是为什么
答案:2 悬赏:10 手机版
解决时间 2021-12-23 12:07
- 提问者网友:雪舞兮
- 2021-12-22 17:08
最佳答案
- 五星知识达人网友:青灯有味
- 2022-01-06 02:54
oracle表被锁,找到的进程ID在系统里面找不到这是为什么
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作
复制代码 代码如下:--锁表查询SQLSELECt object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERe l.object_id = o.object_id
AND l.session_id = s.sid;
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作
复制代码 代码如下:--锁表查询SQLSELECt object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERe l.object_id = o.object_id
AND l.session_id = s.sid;
全部回答
- 1楼网友:怙棘
- 2022-01-06 04:03
通过oracle的动态视图可以查看
通过v$lock,v$session,v$process相关联可以查看,你是不是想要kill掉锁表的进程啊?
一般导致锁表都是sql引起的,在和v$sql相关联查出那条sql导致的sql,之后kill session
查询
select a.saddr,a.sid,a.serial#,a.paddr,a.username,a.status,c.type,c.id1,c.id2,c.lmode,d.sql_text,d.hash_value from v$session a,v$process b,v$lock c,v$sql d where a.paddr=b.addr and b.addr=c.addr and a.sql_id=d.sql_id;
kill session
alter system kill session 'sid,serial#' ;
希望能帮助你
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯