oracle job queue/oracle 作業隊列

來源:互聯網
上載者:User
一、作業的概念    作業是一組PL/SQL代碼,用於完成特定的功能。它由作業調度囂調度執行,可以將它比較我們日常工作中的工作安排,它在將來的某個時間點自動執行,或在每間隔一段時間後自動重復執行。  二、job,job queue,Jnnn, coordinator job queue(CJQ0) ,DBMS_JOB    job queue翻譯成中文叫做作業隊列。作業是一組代碼PL/SQL代碼用於完成特定的功能。作業隊列,是在oracle服務囂中用於存儲作業的一種機制或者說邏輯構件。Jnnn指的是執行特定作業的作業進程,nnn指的是作業進程號。CJQ0是作業進程調度囂,它本身也是作業進程,它的作用是用於調度作業進程Jnnn。DBMS_JOB是一個包,該包內的procedures用於對作業進行管理,包括:向作業隊列中添加作業,從作業隊列中刪除作業,立即執行作業隊列中的作業,修改作業隊列中作業的描述,修改作業隊列中作業的時間調度等等。  三、調度原理    用戶通過調用DBMS_JOB包中的procedures向作業隊列中增加隊列,並設定作業的調度執行時間或周期。CJQ0進程始終監視檢查作業隊列中是否有作業到了調度時間點,若發現,則指派個一個作業執行進程Jnnn來執行該作業。  四、啟動數據庫的作業調度功能    通作設定初始化參數 JOB_QUEUE_PROCESSES來啟動作業調度功能。    如果將JOB_QUEUE_PROCESSES設為0,則關閉作業調度功能,這樣的話,作業隊列中的作業將不會自動執行。當JOB_QUEUE_PROCESSES的值大於0時,啟動作業調度功能。JOB_QUEUE_PROCESSES指的是作業進程的個數量,如:JOB_QUEUE_PROCESSES = 30表示啟動30個作業進程。JOB_QUEUE_PROCESSES是一個動態參數,可以通過alter system命令在運行時修改。如:alter system set JOB_QUEUE_PROCESSES = 20若新的值小於原值,而且空間作業進程數小於兩者之差,則空間作業進程會被終止,但不會立即終止執行中的作業進程,而是會等到執行完畢後再將其終止。  五、管理作業隊列1.以下是DBMS_JOB包內的過程說明(注:DBMS_JOB包的詳細說明,請參考oracle官方文檔 <<Supplied PLSQL Packages and Types Reference>>):procedure    說明----------------------------------SUBMIT       用於向作業隊列中添加作業REMOVE       用於將作業從作業隊列中移除CHANGE       用於修改隊列中指定作業的描述以及調度時間或周期WHAT         用於設置隊列中指定作業的作業代碼NEXT_DATE    修改隊列中指定作業的下次執行時間INTERVAL     修改隊列中指定作業的執行周期間隔BROKEN       設置隊列中指定作業是否為"BROKEN",若作業在"BROKEN"狀態,則它將不被執行RUN          立即執行隊列中的指定作業---------------------------------- 2.舉例 向作業隊列中提交作業VARIABLE jobno NUMBERBEGINDBMS_JOB.SUBMIT(:jobno,'DBMS_DDL.ANALYZE_OBJECT(''TABLE'',''HR'', ''EMPLOYEES'',''ESTIMATE'', NULL, 50);',SYSDATE, 'SYSDATE + 1');COMMIT;END;/PRINT jobno JOBNO----------14144上述代碼向作業隊列中提交一個作業,其作業代碼是DBMS_DDL.ANALYZE_OBJECT(''TABLE'',''HR'', ''EMPLOYEES'',''ESTIMATE'', NULL, 50);執行時間是sysdate,執行周期是每一天執行一次。 立即執行一個作業EXECUTE DBMS_JOB.RUN(14144); 修改一個作業(將14144號作業改成每三天執行一次 )EXECUTE DBMS_JOB.CHANGE(14144, null, null, ’sysdate+3’);  六、查看作業隊列的資訊可以通過以下幾個視圖來查看當前的作業隊列資訊:DBA_JOBSALL_JOBSUSER_JOBSDBA_JOBS_RUNNING視圖的詳細資訊請參考<<Oracle9i Database Reference>>.        

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.