您好,登錄后才能下訂單哦!
調研背景
因為在測試procedure+dbms_job組合的任務時,調用失敗(看著就是任務沒跑)。經過查詢數據庫參數,發現是JOB_QUEUE_PROCESS的值為0。
調研內容
本次調研數據主要來源為Oracle官方文檔和MOS,以條目的形式展示JOB_QUEUE_PROCESS參數相關的資料。下面查看展示的條目。
參數的作用
JOB_QUEUE_PROCESS指定了Oracle數據庫的每個instance在執行 DBMS_JOB和 DBMS_SCHEDULER任務時,能夠創建的最大的子任務數量。
參數允許的數值范圍
在 12.1及之前版本, 參數允許的默認值是0到1000。在12.2及18c版本中,參數允許的默認值是0到4000。
參數在不同版本中的默認值
在9i和10g中,默認值是0;在11g和12cR1版本中,默認值為1000,在12cR2和18c版本中,默認值為4000。
這里就很尷尬了,誰把我的數據庫參數改成0的(數據庫版本是11.2.0.4 )
修改參數值的方法
job_queue_processes參數值可以動態修改,默認是scope=both
alter system set job_queue_processes=<integer>;
在RAC數據庫中,執行命令
alter system set job_queue_processes=<integer> sid='*';
參數值為0的情況
在10g和11gR1中,將JOB_QUEUE_PROCESSES設置為0只會導致DBMS_JOB作業無法運行,但DBMS_SCHEDULER作業未受影響且仍將運行。
從11gR2開始,將JOB_QUEUE_PROCESSES設置為0會導致DBMS_SCHEDULER和DBMS_JOB作業都無法運行。
將JOB_QUEUE_PROCESS設置為0將禁用下列功能以及使用Oracle Scheduler或DBMS_JOB的任何其他功能或特性:
高級復制(Advanced Replication)使用Oracle Scheduler進行數據刷新。
Oracle AQ( Oracle Streams Advanced Queuing )使用Oracle Scheduler進行消息傳播。
物化視圖(Materialized Views)使用Oracle Scheduler進行自動刷新。
注意:Oracle數據庫在升級模式下會覆蓋job queue設置,以禁用調度任務。 因此,升級Oracle數據庫時無需更改參數設置。
確保參數的合理性
如果需要將JOB_QUEUE_PROCESSES設置為較低的值,則應考慮以下因素:
理想情況下,JOB_QUEUE_PROCESSES值應大于數據庫中運行的所有并發作業。讓JOB_QUEUE_PROCESSES大于調度的作業總數(使用scheduler + dbms_job)是個好主意。這將確保即使某些作業超過其常規運行持續時間,我們也不會耗盡JOB_QUEUE_PROCESSES。
另外,由下列方法生成的調度程序作業,也可能會產生相應的進程開銷:
任何高級復制(Advanced Replication )刷新
Oracle AQ流式消息 傳輸
物化視圖(Materialized Views) 刷新
DBMS_REDEFINITION數據表重定義
除此之外,可能還有一些可以手動或通過某些第三方工具在數據庫中執行的臨時作業。 JOB_QUEUE_PROCESSES也應該滿足這些。
多租戶數據庫的參數特性
在12.1.0.1中,job_queue_process是容器數據庫(CDB)可修改參數(全局級別)。
在12.1.0.2中,job_queue_process參數不是CDB可修改的; 相反的,它是PDB可以修改的,但是每個pdb都無法正確使用自己的job_queue_processes值。
從12.2開始,JOB_QUEUE_PROCESSES是PDB可修改的:
如果ROOT中的job_queue_processes為0,則在所有PDB中禁用Scheduler,包括ROOT。
如果在除ROOT之外的特定PDB中將job_queue_processes設置為0,則僅在該PDB中禁用Scheduler。
調研結果
如果要保證系統高峰期Oracle也能運行各種任務,那么需要將JOB_QUEUE_PROCESS參數設置為一個合理值。采用“技術手段獲取”+“經驗判斷”相結合的方式,是一種不錯的solution。
各位讀者朋友也可關注作者微信公眾號“IT技術佳肴”,與作者交流。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。