zoukankan      html  css  js  c++  java
  • 【翻译自mos文章】job 不能自己主动执行--这是另外一个mos文章,本文章有13个解决方法

    job 不能自己主动执行--这是另外一个mos文章

    參考原文:

    Jobs Not Executing Automatically (Doc ID 313102.1)

    适用于:
    Oracle Database - Enterprise Edition - Version 9.2.0.3 to 10.2.0.4 [Release 9.2 to 10.2]
    Information in this document applies to any platform.


    症状:
    job已经非常长时间没有自己主动执行了。
    假设强制运行(exec dbms_job.run(<enter here job number>);), 这些job是能成功运行的。



    原因:
    依照例如以下步骤检查job无法自己主动运行的原因:

    1) instance处于RESTRICTED SESSIONS 模式?


    select instance_name,logins from v$instance;

    If logins=RESTRICTED, then:
    alter system disable restricted session;

    --->注意,正常情况下。logins应该返回: ALLOWED

    2)JOB_QUEUE_PROCESSES=0
    show parameter job_queue_processes

    一定要让job_queue_processes这个參数大于零。

    3)隐含參数_SYSTEM_TRIG_ENABLED=FALSE

    col parameter format a25
    col value format a15
    select a.ksppinm parameter,b.ksppstvl value from x$ksppi a,x$ksppcv b
    where a.indx=b.indx and ksppinm='_system_trig_enabled';

    假设 _system_trig_enabled=false, 那么运行例如以下命令改为true

    alter system set "_system_trig_enabled"=TRUE scope=both;

    4)job 被broken了 ?
    select job,broken from dba_jobs where job=<job_number>;

    假设job被broken了。那么请检查alert日志和trace file 来诊断broken的原因。



    5)job 带commitkeyword了?
    一定要保证 commit 出如今submit job之后

    DECLARE X NUMBER;
    BEGIN
    SYS.DBMS_JOB.SUBMIT
    (
    job => X
    ,what => 'dbms_utility.analyze_schema
    (''SCOTT'',''COMPUTE'',NULL,NULL,NULL);'
    ,next_date => to_date('08/06/2005 09:35:00','dd/mm/yyyy hh24:mi:ss')
    ,no_parse => FALSE
    );
    COMMIT;   --->注意:这个COMMIT一定得有。
    END;
    /


    假设强制运行job是ok的(比方这么运行 exec dbms_jobs.run(<job_no>);),那么非常可能是缺少一个commit


    6)os 已经启动超过497天

    检查数据库server操作系统是否已经启动超过497天。
     
    对于linux,unix而言。请使用uptime来检查。

    假设uptime的结果大于497天。而且job不能自己主动运行。那么就遇到了未公开的bug3427424(Jobs may stop running after 497 days uptime)
    该bug 在9026 和10gR2上被修复(fix)


    7)dba_jobs_running
    检查dba_jobs_running视图确认,该job是否依旧在执行。


    8) LAST_DATE and NEXT_DATE (在dba_jobs这个视图中)

    检查相关job的 LAST_DATE 和 NEXT_DATE 列的内容。



    select Job,Next_date,Last_date from dba_jobs where job=<job_number>;

    假设NEXT_DATE 是正常的。可是LAST_DATE 是null的。那么该job 永远不会自己主动运行。


    9) NEXT_DATE and INTERVAL(在dba_jobs这个视图中)

    检查 NEXT_DATE 是否随interval 的设置在变化
    select Job,Interval,Next_date,Last_date from dba_jobs where job=<job_number>;


    10)对JOB_QUEUE_PROCESSES切换值

    停止并重新启动cjq 进程
    alter system set job_queue_processes=0 ;
    --<等待一会以保证cjq进程停止>

    alter system set job_queue_processes=4 ;

    參考bug2649244 (该bug 在9015, 9203, 10201中被修复)

    11)检查不成功的shutdown

    一个shutdown immediate 可能被取消(conceled),由于active session 阻止 database 的关闭。

    请检查alert 日志,查看最后两次的shutdown immediate。是否有例如以下的信息:

    SHUTDOWN: Active sessions prevent database close operation

    请參考:
    Note 434690.1 - Database Jobs Do Not Run After a Failed 'Shutdown Immediate'


    12)  DBMS_IJOB (该package 未在文档上记载)
    Either restart the database or try the following:

    exec dbms_ijob.set_enabled(true);

    Ref: Bug 3505718 (Closed, Not a Bug)

    13)检查 视图 DBA_SCHEDULER_GLOBAL_ATTRIBUTE 的 CURRENT_OPEN_WINDOW 属性值

    If a window is open ,close it (e.g.):

    ATTRIBUTE_NAME                       VALUE
    ---------------------------------       ----------------------------
    CURRENT_OPEN_WINDOW            WEEKNIGHT_WINDOW

    SQL> exec DBMS_SCHEDULER.close_window ('WEEKNIGHT_WINDOW');



    解决方式:

    不再翻译。

    该解决方式是针对os已经启动126天之后。job就无法自己主动执行的。


     

  • 相关阅读:
    求周期串的最小正周期
    Manacher's Algorithm
    高精度
    找x的两个素数因子使x=pq(Pollard_Rho)
    Intersection is not allowed!
    类欧几里得
    分数规划
    'sessionFactory' or 'hibernateTemplate' is required
    Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置
    配置Struts2及Struts2访问servlet api的方式
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7345456.html
Copyright © 2011-2022 走看看