1. 程式人生 > 其它 >建立oracle定時任務定時任務並沒有按時執行

建立oracle定時任務定時任務並沒有按時執行

由於專案需要同步其他系統資料庫資料庫,在建立完dblink,儲存過程後,新建了一個dbm_job任務,滿心期待的可以早點下班時,卻發現定時任務並沒有按照時間執行。

建立定時任務JOB(63)定時任務並沒有執行


原因分析:
可能資料庫對於JOB的功能並沒有開啟,於是引著這個方向去尋找解決方法。

解決方案:
通過查閱資料發現原來有一個引數job_queue_processes數字為0是定時任務都不會執行,查詢的sql如下:

select value from v$parameter where name like '%job_queue_processes%';

修改引數job_queue_processes 大於0,我這兒設定為了10(大家可以適當調大一些)

alter system set job_queue_processes =10;


補充:引數job_queue_processes貌似是定時任務佇列程序,查了資料補上如下:
1、job_queue_processes取值範圍為0到1000,總共可建立多少個job程序由job_queue_processes引數來決定。
2、當job_queue_processes大於1時,且並行執行job時,至少一個為協調程序。其總數不會超出job_queue_processes的值。
3、job_queue_processes引數的值為且DBMS_JOB與DBMS_SCHEDULER共享。
4、job_queue_processes引數,當設定該值為0的時候則任意方式建立的job都不會執行。
5、非零值的job_queue_processes,其job子程序數依賴於可用資源,資源配置方式以及當前執行的job數來自行調整。
6、此外對於Scheduler jobs方式還受限制於scheduler屬性MAX_JOB_SLAVE_PROCESSES的設定。
7、可以通過DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE來設定max_job_slave_processes