Oracle 11.2.0.3 ORA-12012 ORA-29280 ORA-06512 錯誤 解決方法

linfeng_oracle發表於2014-07-14

Alert log 出現如下錯誤:

Errors in file /oracle/11.2.0.3/oracle/diag/rdbms/fssms/fssms2/trace/fssms2_j002_17105234.trc:
ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB_2_2"
ORA-29280: invalid directory path
ORA-06512: at "ORACLE_OCM.MGMT_DB_LL_METRICS", line 2436

ORA-06512: at line 1

 

 

作業系統: AIX

資料庫:11.2.0.3, RAC

 

 

這個報錯的是ORACLE_OCM的這個使用者,這個使用者是Oracle 預定義的非管理員使用者。 這個在我之前的Blog裡有說明:

 

Oracle 使用者及角色 介紹

http://blog.csdn.net/tianlesoftware/article/details/4786956

 

 

ORACLE_OCM

The account used with Oracle Configuration Manager. This feature enables you to associate the configuration information for the current Oracle Database instance with OracleMetaLink. Then when you log a service request, it is associated with the database instance configuration information.

See Oracle Database Installation Guide for your platform.

Expired and locked

 

ORACLE_OCM 賬戶是用來管理Oracle Configuration Manager的。 預設情況下, 該賬戶是Expired and locked狀態。

 

該錯誤只出現在OracleRDBMS 11.2.0.3 的版本(新安裝的db,或者從其他版本升級到11.2.0.3的),或者Oracle Configuration Manager 的版本大於10.3.3.0.0。

 

導致這個錯誤的原因如下:

Newer databasereleases are automatically instrumented for OCM collections. Buthere, the OCM instrumentation job is trying to write to a "state"directory which doesn't yet exists.

   

當自動執行的job發現目錄不存在後,就會報錯。

 

可以用sysdba使用者執行如下SQL,來驗證OCM db 目錄:

SQL> set lin 160

SQL> col owner for a10

SQL> col DIRECTORY_NAME for a25

SQL> col DIRECTORY_PATH for a50

SQL> select * from dba_directories where DIRECTORY_NAME like '%OCM_CONFIG%';

 

OWNER     DIRECTORY_NAME           DIRECTORY_PATH

---------- ---------------------------------------------------------------------------

SYS       ORACLE_OCM_CONFIG_DIR    /u01/app/oracle/product/11.2.0/dbhome_1/ccr/state

 

這裡只有一個ORACLE_OCM_CONFIG_DIR的目錄,而MGMT_DB_LL_METRICS需要寫入目錄:ORACLE_OCM_CONFIG_DIR2。 但是這個目錄在built-in 的instrumentation指令碼中並沒有建立,所以才會包我們的這個錯誤。

 

解決方法1

 

執行"ORACLE_HOME/ccr/admin/scripts/installCCRSQL"指令碼重新配置OCM collections。

 

如果沒有這個指令碼,那麼需要先執行"ORACLE_HOME/ccr/bin/setupCCR"指令碼來配置OCM。

 

注意:如果是non-shared檔案系統 的RAC 環境,在執行installCCRSQL.sh指令碼之前必須先指定變數ORACLE_CONFIG_HOME 到$ORACLE_HOME。 具體可以參考:

OracleConfiguration Manager Installation and Administration Guide

http://docs.oracle.com/cd/E28601_01/doc.1037/e26167/install.htm#CBHFFGFJ

 

 

解決方法2

如果不使用OCM Collector, 可以從資料庫中移除OCM的物件。

SQL> drop user ORACLE_OCM cascade;

 

OCM 是一個獨立的工具,移除OCM 不影響資料庫其他功能的使用。

 

如果不刪除OCM 的物件,也可以禁用OCM的jobs,命令如下:

execdbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB')
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB')

 

 

MOS的文件,把該錯誤定位成了Bug 13385346

Bug 13385346 : GCR0 TRACE FILES CONTINUOUSLY CREATED WITHKJGCR_DELETESO MESSAGES

 

該bug的解決方式是: 忽略生成的錯誤資訊。 該bug在12.1中已經修復。

 

 

MOS 參考文件:

 

"ORA-12012: error on auto execute ofjob ORACLE_OCM.MGMT_CONFIG_JOB_2_1" And "ORA-29280: invalid directorypath" In Database AlertLog [ID 1453959.1]

 

How To Manually Remove ORACLE_OCM FromDatabase [ID 859113.1]

 

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24996904/viewspace-1218514/,如需轉載,請註明出處,否則將追究法律責任。

相關文章