現象
SQL> conn perfstat/perfstat SQL> @?/rdbms/admin/spauto.sql
として、statspack のスナップショットが自動取得されるよう設定したのに、自動取得されない。
ジョブを調べてみると、
SQL> sqlplus / as sysdba SQL> set pagesize 50000 SQL> set linesize 200 SQL> col job for 999 SQL> col what for a20 SQL> col interval for a30 SQL> col last_date for a17 SQL> col last_sec for a10 SQL> col next_date for a17 SQL> col next_sec for a10 SQL> select job, what, instance, to_char(last_date,'YYYY-MM-DD HH24:MI') last_date, last_sec, to_char(next_date,'YYYY-MM-DD HH24:MI') next_date, next_sec, total_time, broken, interval from dba_jobs; JOB WHAT INSTANCE LAST_DATE LAST_SEC NEXT_DATE NEXT_SEC TOTAL_TIME B INTERVAL ---- -------------------- ---------- ----------------- ---------- ----------------- ---------- ---------- - ------------------------------ 2 statspack.snap; 1 2010-04-07 12:00 12:00:00 0 N trunc(SYSDATE+1/24,'HH')
NEXT_DATE を過ぎてもジョブが実行されず、NEXT_DATE が更新されずに過去日付のままになる。
原因
初期化パラメータ job_queue_processes が 1 以上に設定されていないため。
解決策
SPFILE を使っている場合
SQL> conn / as sysdba SQL> show parameter job_queue_processes SQL> alter systen set job_queue_processes = 1 scope=both; SQL> show parameter job_queue_processes
PFILE を使っている場合
$ cd ${ORACLE_HOME}/dbs $ vi init${ORACLE_SID}.ora *.job_queue_processes=1 # ← 1 以上に変更する。 $ sqlplus / as sysdba SQL> show parameter job_queue_processes NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ job_queue_processes integer 0 SQL> shutdown immediate SQL> srartup SQL> show parameter job_queue_processes