a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 78|回复: 0

[综合] Oracle作业job没有自动调度起来

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
问题:有一同事报过来,说有两个job已经近一周没有自动调起了,让我帮忙解决。 1、检查:
) }5 C) B5 I+ L+ s4 x" L. \4 l(1)在生产库中检查,其他的job都能自动调度& E$ Y6 i) D3 g' [4 Q/ {
(2)select * from all_jobs where job in(2704,2706); 检查正常,并无异常 (dba_jobs或PL/SQL Developer DBMS_Jobs 也可查看)3 D8 C5 l+ b; P5 J1 u
(3)select * from dba_jobs_running where job in(2704,2706);  在其列表中1 F% b. m9 o& q( R
结论:进程挂死未完成,导致不能自动调度!
2 W$ r8 ~5 P' K2、解决:先备份两job的内容再将job删除,然后将进程杀掉,并重建2 C1 ^( J+ V% a3 E) D
(1)利用上面查出job运行列表中的sid 如 3695,并查出哪些进程需要杀掉,查询语句如下:
. g: {6 g7 o; |) Xselect 'call superkill('||a.sid||','||a.SERIAL#||');' KILL_SID,  Q: a  H+ z8 B: `
       'kill -9 '||A.PROCESS||';'KILL_PID,A.SID,A.SERIAL#,A.STATUS,   A.SCHEMANAME,A.USERNAME,A.MACHINE,OSUSER,A.PROCESS,A.PROGRAM,A.TERMINAL,
& D& t# v! r: V9 c4 q" T" C# |       A.SERVICE_NAME,A.LOGON_TIME, A.OWNERID,8 F' ~( p; W* {: `
       D.SQL_TEXT,D.SQL_FULLTEXT; E  u( {( n# i" ?+ A, y% G
from gv$session a, v$sql d
, |) g& ?1 r0 D2 [4 I4 L7 P( M( ~where a.SQL_ADDRESS=d.ADDRESS(+)5 i; s& [* t( U2 c4 A5 v3 r
and (a.SCHEMANAME = 'REPORT' or a.USERNAME= 'REPORT')7 X0 ?! Z3 u/ f% K
and a.sid=3695) f: Y, N/ Z$ [
order by a.MACHINE;: C- x8 ~0 [7 U6 [
杀进程:  I5 w+ ]/ b, w$ l4 u
(1)上面的superkill如下:/ u1 o' v5 H5 i: S, W
create or replace procedure system.superkill(SESSION_ID BINARY_INTEGER,SERIAL_NUM& i- B4 R1 ]: s' X0 r: u
BINARY_INTEGER) is
0 E3 ]9 y5 K4 _0 ^5 R1 `2 hbegin/ _/ H5 [3 @- c3 o: M
   execute immediate 'alter system disconnect session '''||SESSION_ID||','||SERIAL_NUM||'''
6 C: Q' L1 W9 R  f; D! H! uimmediate' ;. r  `# F. {# g$ G) `; R" A4 a
EXCEPTION
# b$ X' P) S9 w6 K- a1 h- t) d   WHEN OTHERS
* [) A  l' \) e3 w( B   THEN# C. I, x0 }! E% O3 B/ I5 z, ]
      RAISE;3 f! J) J% p4 x% q: ^
end superkill;' M0 W' ^6 Z% ?3 X
(2)也可直接 alter system kill session 'sid,serial#';7 n# ~$ Z; N, t
上面两个原理都差不多。6 J3 S9 ^9 Y3 L; e8 h4 h4 g
(3)重建job
# T" N$ d6 G/ \6 ^" K+ B如job:2706 的重建:
5 x6 w0 t0 H+ L1 e, Bbegin) N/ t- C: |8 L1 u. M
  sys.dbms_job.isubmit(job => 2706,) Y3 z! D2 ^2 s( i1 J
                      what => 'declare
& v- O3 a5 [, V2 y& E2 wvc_out varchar2(2000);
" p" i8 }" m$ I) T; K. tbegin" B% C* j' {5 r! b4 [
SP_SAP_NEWINCOME_ALL(to_char(SYSDATE-1,''yyyymmdd''),to_char(SYSDATE-1,''yyyymmdd''));: g5 B* y9 @" Q8 x1 o3 R+ S
pkg_dic_day_report_2011.Dic_day_all_report_2011(to_char(SYSDATE-1,''yyyymmdd''));/ h- l# H( j, h& ?
pkg_dic_day_report_2010.DiC_Day_Move_Busi(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
, M( m7 `4 k# h8 E# i2 ypkg_dic_day_report_2010.DiC_Pst_YW(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
! O2 r4 O8 W/ ~: M' `: ?8 hend;',& ^8 [) K5 y' D  m+ m6 v5 [3 q2 M$ K
                      next_date => trunc(SYSDATE)+1+17/24,
/ s7 |" p+ D5 ]. a( d) |; o) E/ `                      interval => 'trunc(SYSDATE)+1+17/24');) f0 z+ P) l  d# N. ?! l# F: ?' k
  commit;3 g4 ^+ X1 B. }; b1 W
end;9 {/ p  z' M6 q. n
/7 j" x7 R) l. q! ]$ b2 y; M
第二天检查两job都已正常自动调度。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-30 02:24 , Processed in 0.393629 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表