您好,欢迎访问一九零五行业门户网

Oracle 11.2.0.3 ORA-12012 ORA-29280 ORA-06512 错误 解决方法

oracle 11.2.0.3 ora-12012 ora-29280 ora-06512 错误,这个报错的是oracle_ocm的这个用户,这个用户是oracle 预定义的非管理员用
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 预定义的非管理员用户。 这个在我之前的文章里有说明:
oracle 用户及角色 介绍
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 statedirectory 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。 具体可以参考:
解决方法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]
其它类似信息

推荐信息