客戶的11.2.0.3 RAC環境自動啟動並執行JOB報錯ORA-29280。
詳細錯誤資訊為:
Sat Sep 15 05:59:59 2012
VKRM started with pid=54, OS id=32622
Sat Sep 15 06:00:09 2012
Errors in file /opt/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_j001_32634.trc:
ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB_2_1"
ORA-29280: invalid directory path
ORA-06512: at "ORACLE_OCM.MGMT_DB_LL_METRICS", line 2436
ORA-06512: at line 1
這個問題在升級之前的11.2.0.2版本上沒有出現過,顯然這是升級到11.2.0.3帶來的bug。而報錯的JOB所屬使用者ORACLE_OCM是Oracle組態管理的專屬使用者。根據文檔"ORA-12012: error on auto execute of job ORACLE_OCM.MGMT_CONFIG_JOB_2_1" And "ORA-29280: invalid directory path" In Database AlertLog [ID 1453959.1],導致問題的原因是資料庫升級到11.2.0.3後,Oracle會啟用自動OCM
collection,在這個過程中Oracle嘗試使用目錄ORACLE_OCM_CONFIG_DIR2,但這個目錄在建立過程中並未建立。
解決該問題並不複雜,對於不需要使用組態管理員的使用者而言,可以簡單的DISABLE掉這個JOB,或者直接將ORACLE_OCM使用者刪除:
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB')
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB')
如果需要使用組態管理員,可以通過ORACLE_HOME/ccr/admin/scripts/installCCRSQL指令碼來重新設定組態管理員。如果上面的指令碼缺失,可以通過先執行ORACLE_HOME/ccr/bin/setupCCR指令碼的方式來進行配置。