Oracle 11.2.0.3 ORA-12012ORA-29280 ORA-06512
问题现象:
db alert日志中出现如下告警信息:
Errors infile/app/oracle/diag/rdbms/cctv/CCTV2/trace/CCTV2_j000_1370.trc:
ORA-12012: error on auto execute ofjob"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
环境:
OS:RedHat EnterPrise 5.8 X64_x86
DB:Oracle EnterPrise 11.2.0.3 RAC
错误分析:
是ORACLE_OCM这个用户在执行MGMT_DB_LL_METRICS这个计划任务所报的错误。
ORACLE_OCM帐户是用来管理Oracle Configuration Manager的,该帐户默认是锁定状态。
官方对ORACLE_OCM用户的介绍说明:
This account contains the instrumentation for configuration collection used by the Oracle Configuration Manager. | Oracle Configuration Manager Installation and Administration Guide |
该错误目前只发现在11.2.0.3上出现过。
问题原因:
是由于ORACLE_OCM执行计划任务脚本需要往目录写信息,而该目录不存在故发生计划任务执行失败在alert日志中报错。
手工检查OCM_DB目录是否存在:
[sql] view plaincopy
1. SQL>set line 300
2.
3. SQL>col owner for a8
4.
5. SQL>col DIRECTORY_NAME for a25
6.
7. SQL>COL DIRECTORY_PATH for a60
8.
9. SQL> select * from dba_directories whereDIRECTORY_NAME like '%OCM_CONFIG%';
10.
11.
12.
13. OWNER DIRECTORY_NAME DIRECTORY_PATH
14.
15. -------- -------------------------------------------------------------------------------------
16.
17. SYS ORACLE_OCM_CONFIG_DIR /app/oracle/product/11.2.0/db_1/ccr/state
18.
19.
20.
21. SQL>
注意:在这里我们可以看到只有ORACLE_OCM_CONFIG_DIR一个目录,而不包含MGMT_DB_LL_METRICS需要写入的ORACLE_OCM_CONFIG_DIR2,所以才会报我们上面看到这个错误。
在这里有如下三个解决该问题的办法:
解决办法一、
1、可以通过执行"ORACLE_HOME/ccr/admin/scripts/installCCRSQL"脚本重新配置OCMcollections。
2、如果上述脚本不存在那么需要执行"ORACLE_HOME/ccr/bin/setupCCR"脚本来配置OCM。后再执行1中的脚本
详细请参考:OracleConfigurationManager Installation andAdministration Guide
解决方法二、
在sql中执行如下语句,禁用报错的job.
execdbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB')
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB')
解决方法三、
直接将OCM删除,并移除相关对象,使其永久失效:
SQL> drop user ORACLE_OCM cascade;
我在这里采用的是第二种解决办法:
[sql] view plaincopy
1. SQL>exec dbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB');
2.
3.
4.
5. PL/SQLprocedure successfully completed.
6.
7.
8.
9. SQL>exec dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB');
10.
11.
12.
13. PL/SQLprocedure successfully completed.
14.
15.
16.
17. SQL>
MOS把该问题定位为:Bug13385346 导致:
Bug 13385346 : GCR0TRACE FILESCONTINUOUSLY CREATED WITHKJGCR_DELETESO MESSAGES
该bug的解决办法: 忽略生成的错误信息, 并已经12.1中已经修复。
How To ManuallyRemove ORACLE_OCM FromDatabase [ID859113.1]
How to deinstallOCM (Doc ID 761313.1)