oracle随笔录3.24

来源:互联网 发布:网络工程规划与设计 编辑:程序博客网 时间:2024/04/29 22:43

一、查询所有进程

select * from v$session;

  1、sid   通俗就是 标识一个进程

  2、serial#   未解

  1、username   当前数据库用户

  2、status   当前进程状态      inactive  通俗讲就是该进程的任务完成了,可以进行回收;      active  通俗讲就是该进程的任务还在执行;

  3、osuser  请求方用户名

  4、machine  请求方设备

  5、program  请求方设备,可以看出是什么工具链接的  例如  PLSQL,JDBC;


二、查询所有锁

select username,lockwait,status,machine,program from v$session where sid in(select session_id from v$locked_object);

三、查询死锁SQL

selecr b.sql_text, sid, serial#, osuser, machine      from v$session a, v$sqlarea b      where a.sql_address = b.address;  

四、查询所有死锁

select sess.sid,    sess.serial#,    lo.oracle_username,    lo.os_user_name,    ao.object_name,    lo.locked_mode    from v$locked_object lo,    dba_objects ao,    v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid; 


五、杀进程

alter system kill session 'sid,serial#';

如果在杀进程时抛出ora - 00031:标识要终止的会话,使用下面方式

select a.spid,b.sid,b.serial#,b.username from v$process a,v$session b where a.addr=b.paddr and b.status='KILLED';

select b.spid,a.osuser,b.program   from v$session a,v$process b  where a.paddr=b.addr    and a.sid=b.sid;

linux:进入linux服务器进行  kill -9 b.spid;      

windows:

orakill sid thread 
orakill 数据库实例名 b.spid

0 0
原创粉丝点击