oracle如何查询和停止正在运行的job
原文地址:
http://blog.sina.com.cn/s/blog_60e4205e0100esaf.html
找出正在执行的JOB编号及其会话编号
SELECT SID,JOB from
DBA_JOBS_RUNNING;
停止该JOB的执行
SELECT SID,SERIAL# from
V$SESSION WHERE SID='&SID';
ALTER
SYSTEM KILL SESSION
'&SID,&SERIAL';
EXEC
DBMS_JOB.BROKEN(&JOB,TRUE);
实例分析:
1,查询正在运行的Job,通过查询有两个,和进程占用较多的是两个ORACLE进程符合。
SQL> SELECT SID,JOB from
DBA_JOBS_RUNNING;
SID JOB
----------
----------
12
116
16 117
2,查询正在运行的job的信息
SQL> SELECT SID,SERIAL# from
V$SESSION WHERE SID='12';
SID
SERIAL#
---------- ----------
12 4
SQL> SELECT SID,SERIAL# from
V$SESSION WHERE SID='16';
SID
SERIAL#
---------- ----------
16 1
3,利用查询出来的job信息将job结束掉
SQL> ALTER SYSTEM KILL SESSION
'12,4';
System altered.
SQL> ALTER SYSTEM KILL SESSION
'16,1';
System altered.
4,如果不希望运行上述job的话,可以将job设置为broken.
EXEC DBMS_JOB.BROKEN(116,TRUE);
EXEC DBMS_JOB.BROKEN(117,TRUE
相关文档:
每隔几秒钟listener日志中就出现一次该错误的记录,即使是在没有人使用的情况下也是如此,不过并没有发现客户端机器不能正常连接数据库的情况。
Oracle关于TNS-12502错误的解释:
Error: ORA-12502 / TNS-12502
Text: TNS:listener received no CONNECT_DATA from client
Cause: No CONNECT_DATA was ......
本身这个步骤很多高手都已经贴过了,只是我在使用中发现大体上大家写的都有些复杂,于是,我总结了个超级简化版的,方便大家使用:
1.安装LOGMNR包,需要本步骤没什么可多说的,只是需要注意在连接数据库的时候默认最好使用本地验证方式
C:\>sqlplus /nolog
SQL> conn / as sysdba
SQL> @D:\oracle\product\10 ......
一
、執行 ORACLE_HOME/rdbms/admin/dbmslock.sql 来创建 dbms_lock;
-在DBA身分下grant execute on dbms_lock to USERNAME;
-執行測試代碼
begin
dbms_output.put_line(to_char(sysdate,'yyyymmddhh24miss'));
dbms_lock.sleep(60);
dbms_output.put_line(to_char(sysdate,'yyyymmdd ......
基本的Sql编写注意事项
尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。
不用NOT IN操作符,可以用NOT EXISTS或者外连接+替代。
Oracle在执行IN子查询时,首先执行子查询,将查询结果放入临时表再执行主查询。而EXIST则是首先检查主查询,然后运行子查询直到找到第一个匹配项。NOT EXISTS比NOT IN效率 ......