【翻译自mos文章】job 不能自动运行--这是另外一个mos文章,本文章有13个解决方法

本文详细介绍了Oracle数据库中job无法自动运行的常见原因及解决办法,包括检查instance模式、job_queue_processes参数、_system_trig_enabled参数、job状态、commit关键字、os启动时间、job运行状态、下次执行日期和间隔设置等。此外,还提供了关于DBMS_IJOB的检查建议和关闭窗口的步骤。最后,提供了一个解决方案以应对特定情况下的job自动运行问题。
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 带commit关键字了?
一定要保证 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天

检查数据库服务器操作系统是否已经启动超过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就无法自动运行的。


 
使用kubectl delete pod 命令删除一下pod cosmos-test3 cosmos-activity-admin-impl-bb458c578-48jbf cosmos-test3 cosmos-admin-impl-7b6fd85958-z6cph data-center-test3 data-center-operation-web-569fc747bb-hx9pc gateway-test3 gateway-manage-api-6655bd87db-4892v gateway-test3 gateway-tenant-manage-6848d98d8b-zppp7 gateway-test3 thanos-gateway-app-7d6cdd7ff9-dbn45 hedge-test3 halo-future-admin-5458d46485-9w2rt hedge-test3 halo-future-admin-77c768b688-7dfvm hedge-test3 halo-spider-c87997cff-n8fqb ryzen-test3 ryzen-biz-balance-5798f9b8c9-mrp7v ryzen-test3 ryzen-biz-tool-846b65b64f-bbgh6 ryzen-test3 ryzen-lever-impl-0 ryzen-test3 ryzen-market-sync-0 ryzen-test3 ryzen-migration-mongo-69bc4c89c9-8d792 ryzen-test3 ryzen-payment-impl-6cc56d8496-x8855 ryzen-test3 ryzen-risk-graph-5f5fc57cf-276ns ryzen-test3 ryzen-risk-impl-5c445cb977-cvv8q thanos-test3 thanos-biz-user-f468cb765-74dgt thanos-test3 thanos-clearing-fundrate-0 thanos-test3 thanos-market-impl-0 xt-test3 ex-user-75d468bd58-5w8jg xt-test3 service-activity-impl-7f8bdb6bdf-d2nxj xt-test3 service-admin-impl-5f567b44fc-bfbmp xt-test3 service-admin-workflow-fd4c89ccd-5n5lr xt-test3 service-bot-chat-bb9f89c89-vwtjt xt-test3 service-bot-job-0 xt-test3 service-finance-impl-797f688b5c-rctb5 xt-test3 service-ip-impl-778c946895-j2gvl xt-test3 service-lever-job-0 xt-test3 service-message-voice-sender-774ff86cdf-vdbd8 xt-test3 service-price-impl-5b945db4c7-zf2b8 xt-test3 service-report-task-6994c98965-5pndv xt-test3 service-risk-audit-report-7f967d7c9c-69dm9 xt-test3 service-risk-graph-5597599656-wc2lv xt-test3 xt-h5-tapatalk-d5dccf546-gzvlh xt-test3 xt-web-manage-74469d99b6-n8x48 xt-test3 xt-web-manage-bd-6c85655d64-9zxqb xt-test3 xt-web-manage-lever-5df69ffcfb-528mg xt-test3 xt-web-manage-risk-55c6d69c4d-gmksf
08-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值