一套11g 11.2.0.3 rac巡检时发现alert报:
SunMar2506:16:592018 Errorsinfile/oracle/db/diag/rdbms/snms/snms2/trace/snms2_j001_21037068.trc: ORA-12012:erroronautoexecuteofjob"ORACLE_OCM"."MGMT_CONFIG_JOB_2_2" ORA-29280:invaliddirectorypath ORA-06512:at"ORACLE_OCM.MGMT_DB_LL_METRICS",line2436 ORA-06512:atline1
If you have installed Oracle Configuration Manager in a home that contains a database,you must run a script to instrument the database for configuration collection. Whether you are inConnectedorDisconnectedmode,youmustrun this script. It will create the database account,ORACLE_OCM. This account stores the PL/sql procedures that collect the configuration information,and the account owns the database management system (DBMS) job that performs the collection. After the account has been set up,it is locked because login privileges are no longer required.
https://docs.oracle.com/cd/E49269_01/doc.12/e48361/ch3_install.htm#CCRIA260
ORACLE_OCM是oracle配置管理的默认帐户。数据库安装完成后默认处于Expired and locked状态。
如果未使用Oracle Configuration Manager解决办法如下:
1.删除或禁用相关job
---删除 sql>execdbms_scheduler.drop_job('ORACLE_OCM.MGMT_CONFIG_JOB'); sql>execdbms_scheduler.drop_job('ORACLE_OCM.MGMT_STATS_CONFIG_JOB'); sql>selectjob_name,enabledfromdba_scheduler_jobswherejob_namelike'MGMT%'; ---禁用 sql>execdbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB'); sql>execdbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB');
2.删除对象Oracle_OCM
sql>dropuserORACLE_OCMcascade;
mos上相关的文档如下:
Database alert_log Shows Error: ORA-12012: error on auto execute of job ORACLE_OCM.MGMT_CONFIG_JOB_2_1" And "ORA-29280: invalid directory path" (文档 ID 1615561.1)
Changes
Installing a new database or upgrading a database to a newer release.
Cause
Newer database releases are automatically instrumented for OCM collections. But in some cases,the OCM instrumentation job is trying to write to a "state" directory called "ORACLE_OCM_CONFIG_DIR2" which doesn't exist.
To verify if the OCM directories exist or not,run the following as sysdba:
Example:
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/db11203/ccr/state
In our case,MGMT_DB_LL_METRICS wants to write to ORACLE_OCM_CONFIG_DIR2,which is not created by the built-in instrumentation scripts.
Solution
To solve this issue please run the following verification steps.
Step 1. Run the following command to check if OCM is installed / configured or not.
Example of OCM configured
$ORACLE_HOME/ccr/bin/deployPackages -l
Installed Oracle Configuration Manager Packages:
===============================================
Package core,Version: 12.0.0.0.1 - built 10/15/2013 08:14:17 PM
built on x86_64; also supported: amd64,i386
Package engines,Version: 12.0.0.0.0 - built 10/15/2013 08:16:01 PM
built on x86_64; also supported: amd64,i386
Package metricdata,Version: 12.0.0.0.0 - built 10/15/2013 08:16:37 PM
Package ocmcert,Version: 12.0.0.0.0 - built 10/15/2013 08:14:35 PM
built on
Package rda,Version: 8.02.13.12.10 - built 10-Dec-2013 11:50:07
Package rdacelin,Version: 8.02.13.12.10 - built 10-Dec-2013 11:50:07
built on i386; also supported: x86,x86_64,i686,amd64,ia64
Package scripts,Version: 12.0.0.0.1 - built 10/15/2013 08:14:39 PM
built on x86_64; also supported: amd64,i386
Example of OCM not configured
$ORACLE_HOME/ccr/bin/deployPackages -l
The Oracle Configuration Manager state/writeable directory structure is incomplete.
OCM is not configured for this host or ORACLE_CONFIG_HOME. Please configure OCM first.
Follow the OCM installation steps given below in Step 2 to properly configure OCM in the Database Oracle Home if not done.
Installation Steps:
If OCM is not installed,please install it using steps given in the below document. It will create the directory during the installation. NO need to follow the step 2.
Oracle Configuration Manager Installation and Administration Guide
Step 2. Run the following scripts to create the directory and grant the permissions on the directory.
Connect as sysdba
sql> @ORACLE_HOME/ccr/admin/scripts/ocmjb10.sql
sql> @ORACLE_HOME/ccr/admin/scripts/execute execocm.sql
Depending on OCM and/or Oracle Databases releases the scripts location may change.
Example:
sql> @ORACLE_HOME/rdbms/admin/ocmjb10.sql
sql> @ORACLE_HOME/rdbms/admin/execocm.sql
Step 3. Now verify the directory information:
sql> select * from dba_directories where DIRECTORY_NAME like '%OCM_CONFIG%';
OWNER DIRECTORY_NAME DIRECTORY_PATH
-------- ---------------------- ------------------------------------------------------------------
SYS ORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/product/11.2.0.3/dbhome_1/ccr/state
SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0.3/dbhome_1/ccr/hosts/dc2oda-1/state
**The Directory ORACLE_OCM_CONFIG_DIR2 should be returned in output.