1、查看当前系统中的会话(如果权限不足,请使用sys或者system用户登录): select * from v$session t;
2、查看此会话下正在执行的sql语句:select sql_text from v$sqlarea where address in (select sql_address from v$session );
结果:
3、查询当前会话下,被锁的对象:
select *
from v$locked_object lo, all_objects ao
where lo.OBJECT_ID = ao.object_id;
4、查看使用dblink方式(即我们平常的远程连接)连接数据库的会话:select * from v$session where terminal like '%机器名%' and program='ORACLE.EXE (PMON)'
5、查看系统中的job:select * from dba_jobs t;
观察字段值:broken字段为N,且this_date字段的时间比当前时间减去执行周期要晚(根据interval字段判断),则job是正常的。如果this_date字段没有值,一般认为job当前没有在执行。
如果broken字段N,并且this_date时间不对(例如是几个小时以前,甚至几天以前),则说明该job某一次周期一直没有执行完。
6、查看当前正在运行的job:select * from dba_jobs_running t;
7、查看系统中的进程:select * from v$process t;
8、使用Oracle命令杀会话:alter system kill session '会话编号sid,会话序列号serial#';
9、使用操作系统对会话进行杀除,主要是直接终止线程或者进程(操作系统控制台):orakill 数据库sid 查询到的线程号spid;