今天一早檢查alert.log,發現以下錯誤:
Wed Jul 11 23:10:32 2012
Process J001 died, see its trace file
Wed Jul 11 23:10:32 2012
kkjcre1p: unable to spawn jobq slave process
Wed Jul 11 23:10:32 2012
Errors in file /opt/oracle/admin/ora10g/bdump/ora10g_cjq0_1662996.trc:
trc檔案的内容如下
Redo thread mounted by this instance: 1
Oracle process number: 13
Unix process pid: 712918, image: [email protected]
*** SERVICE NAME:(SYS$BACKGROUND) 2012-07-09 23:05:04.037
*** SESSION ID:(3373.1) 2011-01-09 11:05:04.037
*** 2012-07-09 2305:04.037
Process J000 is dead (pid=13680712, state=3):
*** 2012-07-09 23:05:10.038
根據提示資訊:kkjcre1p: unable to spawn jobq slave process ,可以了解到是系統無法生成job相關的程序而出錯的,那麼大約有幾種可能:
1、參數job_queue_processes(設定過小)
2、參數session和processes(設定的會話數及連接配接數不能滿足業務需求)
3、參數pga_aggregate_target(被耗盡)
4、OS資源被耗盡,如virtual memory
檢視SQL> show parameter job_queue_processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 2
Solution:
Make sure you are using SPFILE and then issue the following :
SQL>alter system set JOB_QUEUE_PROCESSES=50 scope=both;