Oracle数据库无论是在安装还是运行,都涉及到与周边软硬件的各种联系。一套健康的数据库系统,要想顺利安装并且平稳运行,都需要各方面周边组件的配置调整。一旦某个方面存在问题,一些想当然的过程都会出现问题。本篇记录了最近遇到的两个问题,记录下来,留待不时之需。--------------------------------------分割线 --------------------------------------在CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htmOracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm--------------------------------------分割线 --------------------------------------1、Oracle OCM作业运行报错ORA-29280一个同事系统中出现小故障,笔者协助帮助查看。由于系统总体负载很低,也没有明显的功能影响点,笔者也没有直观的思路。一般而言,从alert log中我们可以按照时间关系查看到Oracle的重要问题现象。从日志情况中,却发现了一些其他问题。Mon Jun 02 22:00:08 2014Errors in file /u01/app/oracle/diag/rdbms/dt/MM/trace/MM_j001_43954.trc:ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB_2_1"ORA-29280: invalid directory pathORA-06512: at "ORACLE_OCM.MGMT_DB_LL_METRICS", line 2436ORA-06512: at line 1在系统数据库运行过程中,基本每天夜间22点都会有这个报错出现。系统负载很低(日志切换并不频繁),除此之外没有明显的错误。22点对于Oracle而言是一个重要的时间点,进入10g之后,Oracle夜间都会自动调度一些维护作业,来确保数据库顺利高效运行。这些作业中,最有名的就是统计量自动收集作业,夜间对新对象或者变化频繁对象进行数据统计量收集。进入11g之后,这种夜间作业机制在不断的强化,但是执行时间窗口有了变化,起始时间调整为夜间22:00开始。我们在日志中看到的报错,就是Oracle OCM(Oracle Configuration Manager)夜间执行的作业之一。OCM是Oracle内部的一个工作组件,用于提供一些配置参数协助方面的工作。我们安装数据库后,会看到用户schema列表中包括一个名称为ORACLE_OCM的用户名,就是这个组件的内部对应数据用户集合。根据Oracle MOS的介绍,出现这样的错误是由于Oracle数据库升级过程中的不完全造成的。在OCM进行度量(instrument)过程中,会自动往一些directory目录位置写入信息。如果目录配置有问题,就会引起报错。一般系统中,我们也可以看到这些默认的目录的。SQL> select directory_name, directory_path from dba_directories;DIRECTORY_NAME DIRECTORY_PATH------------------------------ --------------------------------------------------------------------------------XMLDIR /u01/app/oracle/rdbms/xmlORACLE_OCM_CONFIG_DIR /u01/app/oracle/ccr/hosts/SimpleLinux.localdomain/stateDATA_PUMP_DIR /u01/app/admin/ora11g/dpdump/ORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/ccr/state在很多情况下,ORACLE_OCM_CONFIG_DIR2目录中是会写入一些数据的。如果这个目录配置有问题或者不存在,就会出现作业报错的情况。了解了问题原因,解决之道就比较容易了。和其他元数据损坏处理方法相同,或者执行安装脚本,重新安装组件,或者禁用组件运行。下面是进行OCM目录配置的方法步骤。说明:由于环境所限,笔者没有进行实际测试,下列脚本在第三方环境中进行。首先运行脚本检查OCM配置安装情况。[oracle@SimpleLinux ~]$ cd $ORACLE_HOME/ccr/bin[oracle@SimpleLinux bin]$ ls -l | grep deploy-rw-r--r--. 1 oracle oinstall 48758 Jun 5 2013 deployPackages[oracle@SimpleLinux bin]$ chmod 755 deployPackages[oracle@SimpleLinux bin]$ ./deployPackages -lThe Oracle Configuration Manager state/writeable directory structure is incomplete.OCM is not configured for this host or ORACLE_CONFIG_HOME. Please configure OCM first.根据笔者环境的提示,OCM没有在笔者服务器进行配置,如果配置了,就会显示如Step2的提示内容。第二步是执行脚本创建OCM directory对象和授予权限。SQL> conn / as sysdbaConnected.@ORACLE_HOME/ccr/admin/scripts/ocmjb10.sql@ORACLE_HOME/ccr/admin/scripts/execute execocm.sql最后确定directory创建情况。SQL> select directory_name, directory_path from dba_directories where DIRECTORY_NAME like "%OCM_CONFIG%";DIRECTORY_NAME DIRECTORY_PATH------------------------------ --------------------------------------------------------------------------------ORACLE_OCM_CONFIG_DIR /u01/app/oracle/ccr/hosts/SimpleLinux.localdomain/stateORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/ccr/state注意:要求DIR2是存在的。第二种方法更加简单,如果确定系统不需要OCM运行,可以关闭这个作业执行。毕竟多一事不如少一事,当然这个需要确认系统不需要OCM的运行。删除ORACLE_OCM用户schema,或者禁用job作业。exec dbms_scheduler.disable("ORACLE_OCM.MGMT_CONFIG_JOB")exec dbms_scheduler.disable("ORACLE_OCM.MGMT_STATS_CONFIG_JOB")这个案例并不难解决,但是告诉我们一点:对系统的维护过程,要是全方面的。定期查看系统运行日志,及时发现潜在问题,解决问题很重要。让数据库“带伤”运行,未来会带来一些意想不到的问题。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-06/103254p2.htm
MySQL触发器的正确用法测试Oracle 11g Cluster 中OLR的重要性相关资讯 Oracle配置
- Oracle配置外部数据库连接( (03/29/2014 15:09:37)
- Oracle 配置 catalog (02/18/2013 08:33:29)
- Oracle 10gR2 Streams删除所有配置 (07/01/2012 10:50:37)
| - 配置Oracle网络环境 (09/15/2013 06:39:08)
- RAC中ocr和voting disk位置 (07/01/2012 10:51:38)
|
本文评论 查看全部评论 (0)