`
- 浏览:
71844 次
- 性别:
- 来自:
厦门
-
sql 代码
-
-
- 1.通常可以使用以下命令Kill进程:
- alter system kill session 'sid,serial#';
- 2.
- select logon_time,username,action,program,terminal,machine,userfrom v$session where terminal = 'CZYS'
- select spid from v$process where addr in
- (select paddr from v$session where terminal ='CZYS'
- andlogon_time <= to_date('2006-2-17 16:28:56','yyyy-mm-ddhh24:mi:ss'));
-
-
-
- 为了更快速的释放资源,通常我们使用如下步骤来Kill进程:
- 1.首先在操作系统级kill进程
- 2.在数据库内部kill session
- 这样通常可以快速中止进程,释放资源。
-
- 首先查询得到该session对应的OS进程号:
- SQL> select 'kill -9 '||spid from v$process where addr = (selectpaddr from v$session where sid=&sid);
- Enter value for sid: 154
- old 1: select 'kill -9 '||spidfrom v$process where addr = (select paddr from v$session wheresid=&sid)
- new 1: select 'kill -9 '||spidfrom v$process where addr = (select paddr from v$session wheresid=154)
-
- 'KILL-9'||SPID
-
- kill -9 22702
-
- SQL> !
- 在操作系统级kill该进程:
- [oracle@danaly ~]$ ps -ef|grep 22702
- oracle 22702 1 0 Oct25? 00:00:02 oracledanaly (LOCAL=NO)
- oracle 1208212063 0 11:12pts/1 00:00:00 grep 22702
- [oracle@danaly ~]$ kill -9 22702
- [oracle@danaly ~]$ ps -ef|grep 22702
- oracle 1208812063 0 11:12pts/1 00:00:00 grep 22702
- [oracle@danaly ~]$ exit
- exit
-
- SQL> select sid,username,status from v$session;
-
- SIDUSERNAME STATUS
-
- ...
- 154SCOTT KILLED
- ...
-
- 30 rows selected.
-
- SQL> select sid,serial#,username from v$session wheresid=154;
-
- SID SERIAL#USERNAME
-
- 154 56090 SCOTT
-
- 再次在数据库中kill该session,并指定immediate选项:
- SQL> alter system kill session '154,56090' immediate;
-
- System altered.
-
- SQL> select sid,serial#,username from v$session wheresid=154;
-
- no rows selected
-
-
- 此时该进程被迅速清除。
-
-
- 查找锁定的session
- 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
- FROMv$session sn, v$lock m
- WHERE (sn.SID = m.SID ANDm.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;
-
- 通过数据字典V$SESSION与V$LOCK来了解正在等待锁资源的用户
- select a.username,a.sid,a.serial#,b.id1 from v$session a ,v$lockb
- Where a.lockwait = b.kaddr;
- 了解锁住其他用户的用户进程,方法如下:
- select a.username,a.sid,a.serial#,b.id1 from v$session a,v$lockb
- Where b.id1 in
- (select distinct e.id1 from v$session d,v$lock e where d.lockwait =e.kaddr)
- And a.sid = b.sid and b.request =0;
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文介绍了解决Oracle杀死死锁进程的方法。
用oracle命令和操作系统命令杀oracle锁死进程
一、问题的提出很多的时候我们迅速的杀掉Oralcle的一些session,理由大体如下: 1、 一些时候,由于我们的数据量很大,相应的事务大并且多,在做shutdown immediate的时候会花费好多的时间,而我们却想用shutdown ...
ORACLE如何杀掉带锁的进程.txt
Oracle查找被锁进程,及如何在数据库级或操作系统级Kill掉相应被锁的进程
Windows环境中Kill掉Oracle线程
oracle杀死锁 ,在批量导入数据的时候,在数据库中很容易就碰到锁表了,导致长时间数据库卡死,此脚本方便找寻数据库被锁对象,如果在oracle中不能alter kill掉 说明该session已过期需要进入后台去杀掉进程
查看oracle数据库的连接数以及用户 1、查询oracle的连接数 2、查询oracle的并发连接数 3、查看不同用户的连接数 4、查看所有用户: 5、查看用户或角色系统权限(直接赋值给用户或角色的系统...杀掉锁定进程
SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name FROM v$process p, v$session a, v$locked_object b, all_objects c WHERE p.addr = a.paddr AND a.process = b.process...
主要介绍了Oracle数据库中结束死锁进程的一般方法,包括查询死锁以及避免死锁的建议等内容,需要的朋友可以参考下
4.2 如何杀掉吊死session 51 4.3 如何修改字符集 51 4.4 如何追加表空间 51 4.5 如何加大表的maxextents值 52 4.6 如何查询无效对象 52 4.7 怎样分析SQL语句是否用到索引 52 4.8 怎样判断是否存在回滚段竞争 53 4.9 ...
DML事务锁定的机制 行级锁(TX锁) 表级锁(TM锁) 锁定相关视图 v$transaction v$lock 5 v$enqueue_lock v$session 检测并解决冲突 常见的锁查询和处理 当前系统中存在的锁争用: ...--杀掉会话进程
编译的存储过程的时候,程序死住,等待一会出现ora-04021错误解决办法。文档中有查询思索的语句,以及杀掉死锁进程的方法。
ora-00031:session marked for kill处理oracle中杀不掉的锁一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那...
在ORACLE数据库杀掉会话进程有三种方式: 1:ALTER SYSTEM KILL SESSION 关于KILL SESSION Clause ,官方文档描述alter system kill session实际上不是真正的杀死会话,它只是将会话标记为终止。等待PMON进程来清除...
我们可以用下面SQL语句杀掉长期没有释放非正常的锁: alter system kill session 'sid,serial#'; 如果出现了锁的问题, 某个DML操作可能等待很久没有反应。 当你采用的是直接连接数据库的方式, 也不要用OS...
一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。 1.下面的语句用来...
3.2 如何杀掉吊死session 39 3.3 如何修改字符集 39 3.4 如何追加表空间 39 3.5 如何加大表的maxextents值 40 3.6 如何查询无效对象 40 3.7 怎样分析SQL语句是否用到索引 40 3.8 如何将Oracle8数据导入Oracle7数据库...
废话不多说 上语句: 查询锁表语句: ...杀掉查到的进程: alter system kill session 'sid,serial#'; 例如: alter system kill session '20,182'; 如果杀不掉可以加个 immediate 立即杀掉 试试; alter sys