热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

两个Oracle配置问题的解决记录

Oracle数据库无论是在安装还是运行,都涉及到与周边软硬件的各种联系。一套健康的数据库系统,要想顺利安装并且平稳运行,都需要

Oracle数据库无论是在安装还是运行,都涉及到与周边软硬件的各种联系。一套健康的数据库系统,要想顺利安装并且平稳运行,都需要

Oracle数据库无论是在安装还是运行,都涉及到与周边软硬件的各种联系。一套健康的数据库系统,要想顺利安装并且平稳运行,都需要各方面周边组件的配置调整。一旦某个方面存在问题,一些想当然的过程都会出现问题。

本篇记录了最近遇到的两个问题,记录下来,留待不时之需。

--------------------------------------分割线 --------------------------------------

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

--------------------------------------分割线 --------------------------------------

1、Oracle OCM作业运行报错ORA-29280

一个同事系统中出现小故障,笔者协助帮助查看。由于系统总体负载很低,也没有明显的功能影响点,笔者也没有直观的思路。一般而言,从alert log中我们可以按照时间关系查看到Oracle的重要问题现象。

从日志情况中,却发现了一些其他问题。

Mon Jun 02 22:00:08 2014

Errors 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 path

ORA-06512: at "ORACLE_OCM.MGMT_DB_LL_METRICS", line 2436

ORA-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/xml

ORACLE_OCM_CONFIG_DIR /u01/app/oracle/ccr/hosts/SimpleLinux.localdomain/state

DATA_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 -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.

根据笔者环境的提示,OCM没有在笔者服务器进行配置,如果配置了,就会显示如Step2的提示内容。

第二步是执行脚本创建OCM directory对象和授予权限。

SQL> conn / as sysdba

Connected.

@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/state

ORACLE_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')

这个案例并不难解决,但是告诉我们一点:对系统的维护过程,要是全方面的。定期查看系统运行日志,及时发现潜在问题,解决问题很重要。让数据库“带伤”运行,未来会带来一些意想不到的问题。

更多详情见请继续阅读下一页的精彩内容:


推荐阅读
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文探讨了Unix和Linux操作系统的起源和发展历程。从20世纪60年代计算机技术的初期阶段,到Unix的诞生及后续Linux的崛起,文章详细介绍了这些操作系统如何逐步成为现代计算不可或缺的一部分。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 当我在命令行登录MySQL后,无法访问任何依赖数据库连接的PHP应用。此问题每次都会出现。以下是复现问题的具体步骤及解决方案。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
author-avatar
guitar402
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有