`
sckjyxgs
  • 浏览: 24363 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle作业job 没有自动调度起来

阅读更多
Oracle作业job 没有自动调度起来


问题:有一同事报过来,说有两个job已经近一周没有自动调起了,让我帮忙解决。

1、检查:
(1)在生产库中检查,其他的job都能自动调度
(2)select * from all_jobs where job in(2704,2706); 检查正常,并无异常 (dba_jobs或PL/SQL Developer DBMS_Jobs 也可查看)
(3)select * from dba_jobs_running where job in(2704,2706);  在其列表中
结论:进程挂死未完成,导致不能自动调度!

2、解决:先备份两job的内容再将job删除,然后将进程杀掉,并重建
(1)利用上面查出job运行列表中的sid 如 3695,并查出哪些进程需要杀掉,查询语句如下:
select 'call superkill('||a.sid||','||a.SERIAL#||');' KILL_SID,
       '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,
       A.SERVICE_NAME,A.LOGON_TIME, A.OWNERID,
       D.SQL_TEXT,D.SQL_FULLTEXT
from gv$session a, v$sql d
where a.SQL_ADDRESS=d.ADDRESS(+)
and (a.SCHEMANAME = 'REPORT' or a.USERNAME= 'REPORT')
and a.sid=3695
order by a.MACHINE;

杀进程:
(1)上面的superkill如下:
create or replace procedure system.superkill(SESSION_ID BINARY_INTEGER,SERIAL_NUM

BINARY_INTEGER) is
begin
   execute immediate 'alter system disconnect session '''||SESSION_ID||','||SERIAL_NUM||'''

immediate' ;
EXCEPTION
   WHEN OTHERS
   THEN
      RAISE;
end superkill;

(2)也可直接 alter system kill session 'sid,serial#';
上面两个原理都差不多。
(3)重建job
如job:2706 的重建:
begin
  sys.dbms_job.isubmit(job => 2706,
                      what => 'declare
vc_out varchar2(2000);
begin
SP_SAP_NEWINCOME_ALL(to_char(SYSDATE-1,''yyyymmdd''),to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2011.Dic_day_all_report_2011(to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2010.DiC_Day_Move_Busi(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
pkg_dic_day_report_2010.DiC_Pst_YW(vc_out,to_char(SYSDATE-1,''yyyymmdd''));
end;',
                      next_date => trunc(SYSDATE)+1+17/24,
                      interval => 'trunc(SYSDATE)+1+17/24');
  commit;
end;
/

第二天检查两job都已正常自动调度。

分享到:
评论

相关推荐

    ORACLE定时任务不能自动执行的检查修复步聚

    如果设置的同时运行 job 的数量为 0,则表示 Oracle 定时任务不能自动执行。这可能是由于某个版本的 BUG 导致的。 Step 4:修改设置的同时运行 job 的数量。 输入命令:SQL> ALTER SYSTEM SET JOB_QUEUE_...

    Oracle作业JOB探讨

    在Oracle数据库管理中,作业(JOB)是自动化执行任务的重要机制之一。本文将重点探讨Oracle作业中`next_date`字段的更新方式及其背后的工作原理,并通过实际案例深入理解如何设置作业的执行时间。 #### 一、Oracle...

    分布式任务调度平台XXL-JOB(Oracle版)

    这里分享自己已经跑起来的Oracle版本分布式任务调度平台XXL-JOB资源。 官方只有Mysql版本的DEMO,由于近期单位项目需要,将原来DEMO稍作修改后改成了oracle版本,主要修改工作包括修改配置文件,数据库连接方式,pom...

    Java Oracle JOBS 自动调度

    总的来说,“Java Oracle JOBS 自动调度”这个主题涵盖了Java定时任务的实现、Oracle数据库作业的管理和Java与Oracle的JDBC交互,这些都是在企业级应用中不可或缺的技术点。通过结合这些技术,开发者可以构建出高效...

    ORACLE创建JOB脚本

    在Oracle数据库系统中,"JOB"是用于调度和自动化任务执行的一种功能,它允许你在预定义的时间点运行存储过程、PL/SQL块或其他数据库操作。本文将深入探讨Oracle中的JOB创建,以及如何编写和使用相应的脚本来设定定时...

    oracle的job定时

    Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...

    oraclejob例子

    Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler(数据库调度器)进行管理。下面我们将深入探讨Oracle Job的创建、配置、管理和使用等相关知识点。 1. **Oracle Database Scheduler...

    Oracle JOB 用法小结

    Oracle的JOB功能是一种定时任务调度机制,用于在数据库后台自动执行预定义的PL/SQL代码块或存储过程。以下是对Oracle JOB用法的详细总结: 首先,为了启用JOB队列,需要设置初始化参数`job_queue_processes`。通过...

    oracle job

    8. **高级特性**:Oracle Job还支持作业链(job chains)、依赖关系、计划窗口(schedule windows)和资源管理,允许根据系统负载或优先级来调度作业。 9. **使用DBMS_ALERT**:对于需要在Job完成时通知用户的场景...

    oracle job实例 测试通过

    虽然代码中这部分被注释掉了,但它展示了如何使用Oracle的DBMS_JOB包来调度作业。`dbms_job.submit`用于提交一个新的作业,指定作业将执行的过程名称、当前时间以及作业的下一次执行时间。`dbms_job.run`则用于立即...

    oracle job调度存储过程 触发器 定时更新数据库

    总的来说,Oracle Job调度存储过程和触发器是数据库管理中不可或缺的工具,它们允许数据库管理员自动化许多常规任务,提高效率,减少人为错误,并确保数据的一致性和准确性。通过灵活地配置和组合这些功能,可以实现...

    Oracle Job的用法

    综上所述,Oracle Job是一个强大的工具,能帮助数据库管理员自动化执行各种任务。通过灵活的配置,可以实现定时执行、根据事件触发、异常处理等功能,极大地提高了数据库的管理和维护效率。理解并熟练掌握这些使用...

    oracle job使用详解

    - `job_queue_interval` 参数定义了调度作业刷新的频率,单位为秒。默认情况下,Oracle 会每分钟检查一次是否有 Job 需要运行。 3. **查看 Job 参数**: 可以使用 `SHOW PARAMETER job_queue_process` 查看当前的...

    作业调度基本原理

    - **SGE(Sun Grid Engine / Oracle Grid Engine)**: 功能强大,支持复杂的作业调度策略,适用于大型集群和企业级应用。 - **LSF(Load Sharing Facility)**: 商业软件,提供了高级的功能和更好的技术支持,适用于...

    oracle中job调度存储过程 触发器 定时更新数据库.rar

    在Oracle数据库系统中,"Job调度存储过程"和"触发器"是两种强大的工具,用于自动化数据库维护和管理任务。本教程将深入探讨这两个概念以及它们如何协同工作以实现定时更新数据库。 首先,我们来理解"Job调度存储...

    xxl-job oracle 适配版本

    3. **事务管理**:Oracle支持分布式事务,XXL-JOB在处理多任务调度时,可能会利用Oracle的事务特性来确保数据的一致性。 4. **连接池配置**:使用合适的Oracle数据库连接池,如C3P0或DBCP,以提高数据库连接的复用...

    oracle执行调度百度

    【标题】"Oracle执行调度百度"涉及到的是Oracle数据库系统中的调度功能,这通常指的是Oracle的Automatic Job Queue(AJQ)或者DBMS_SCHEDULER模块。Oracle数据库允许用户在特定时间或间隔执行任务,如数据备份、统计...

    oracle调度程序

    Oracle调度程序为数据库管理员和开发人员提供了强大的任务自动化能力。通过合理地设计Job、Program、Chain等组件,并利用Chain Rule来控制任务间的依赖关系,可以构建出高效、灵活的任务执行流程。无论是进行数据...

    oracleJob创建脚本

    在Oracle数据库中,Job是一种用于调度定期任务的功能,常被用来自动化执行数据库管理中的各种任务,比如备份、清理临时表空间等。Job主要由`DBMS_JOB`包进行管理和控制,此包提供了提交(new job)、删除(delete job)...

    oracle作业管理.txt

    通过合理配置作业队列参数和灵活使用 `dbms_job` 包中的函数,可以有效提高系统的自动化水平和运维效率。希望本文档能够为读者提供实用的指导,帮助大家更好地掌握Oracle作业管理的相关知识和技术。

Global site tag (gtag.js) - Google Analytics