生产系统中EXP-00000的问题及解决(66天)

早上刚来的时候,客户的dba就急忙找到我说生产系统exp出问题了。exp的时候报了错误,让我帮着看一下。 > exp xxxxx file=tui.dmp log=xxx.log Message 206 not found; No message file for product=RDBMS, facility=EXP: Release 11.2.0.2.0 - Production on Thu May 8 09:36:55 2014 Copyright (c) 1982, 2009, Oracl Invalid format of Export utility name Verify that ORACLE_HOME is properly set Export terminated unsuccessfully EXP-00000: Message 0 not found; No message file for product=RDBMS, facility=EXP 猛一看是因为ORACLE_HOME设置出问题了,但是这是生产系统啊。变量的设置都是比较严格的。都是反复检验的。不过还是从头到尾查了一遍。 先赶紧查一下sqlplus看连接数据库是否正常,测试了一下,没有问题。 然后查看alert日志,里面也没有任何报错信息。 输出ORACLE_HOME也没有问题,可以直接cd过去。 查看exp的情况,看是不是文件出问题了,被人手动改过了。 > file exp exp: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped 可以看到已经很长时间没有动过了。权限也是正常的。 > ll exp -rwxr-x--x 1 xxxx dba 985297 Oct 2 2013 exp 排查一下.profile文件是否有乱码问题。 > cat -v .profile MAIL=/usr/mail/${LOGNAME:?} set -o vi stty erase ^H TERM=dtterm EDITOR=vi ORACLE_HOME=/opt/app/oracle/XXXX/product/11.2.0 export ORACLE_HOME export ORACLE_SID=XXXX export ORACLE_BASE=/opt/app/oracle/XXXX NLS_LANG=AMERICAN_AMERICA.TH8TISASCII export NLS_LANG LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32 PATH=$PATH:$ORACLE_HOME/bin export PATH HOST=`hostname` USER=`logname` PS1='$USER@$HOST:$PWD> ' export PS1 #export SHELL=/usr/local/bin/tcsh #. $ORACLE_HOME/bin/oraenv

可以看到也没有问题。 重新export一下,试了也没有任何变化 查看metalink,oracle建议采用truss来trace一下。而且只能使用root用户,我一看我们的机器上没有装truss. 我来尝试一下使用strace来做.没想到真发现了问题。 不过为了保险起见,先在测试环境中先来测试一下。 >strace exp n1/n1 tables=customer file=a.dmp 输出如下。 execve("/opt/app/oracle/xxxx/product/11.2.0/bin/exp", ["exp", "n1/n1", "tables=customer", "file=a.dmp"], [/* 36 vars */]) = 0 brk(0) = 0x149a6000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b6b7d52d000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b6b7d52e000 .... 其中涉及到mesg中文件的open操作主要有下面5个地方。 open("/opt/app/oracle/dbccbspt1/product/11.2.0/rdbms/mesg/expus.msb", O_RDONLY) = 3

open("/opt/app/oracle/dbccbspt1/product/11.2.0/oracore/mesg/lrmus.msb", O_RDONLY) = 4

open("/opt/app/oracle/dbccbspt1/product/11.2.0/rdbms/mesg/diaus.msb", O_RDONLY) = 5

open("/opt/app/oracle/dbccbspt1/product/11.2.0/rdbms/mesg/ocius.msb", O_RDONLY) = 7

open("/opt/app/oracle/dbccbspt1/product/11.2.0/rdbms/mesg/oraus.msb", O_RDONLY) = 8

这5个文件是在exp中需要引用到的。 在生产中查看 oraccbs1@ebsmed08:oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll expus.msb* -rw-r--r-- 1 oraccbs1 dba 5817 Sep 4 2010 expus.msb.gz oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll ocius.msb* -rw-r--r-- 1 oraccbs1 dba 9193 Sep 4 2010 ocius.msb.gz oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll oraus.msb* -rw-r--r-- 1 oraccbs1 dba 352792 Oct 9 2012 oraus.msb.gz oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll lrmus.msb* ls: lrmus.msb*: No such file or directory oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> cd .. oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms> cd .. oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0> cd oracore oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/oracore> cd mesg oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/oracore/mesg> ll lrmus.msb* -rw-r--r-- 1 oraccbs1 dba 4608 Aug 11 2010 lrmus.msb oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/oracore/mesg> gunzip expus.msb.gz gunzip: expus.msb.gz: No such file or directory oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/oracore/mesg> cd .. oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/oracore> cd .. oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0> cd rdbms/mesg oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> gunzip expus.msb.gz oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll expus.msb -rw-r--r-- 1 oraccbs1 dba 17408 Sep 4 2010 expus.msb oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> gunzip ocius.msb.gz oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> gunzip oraus.msb.gz oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll ocius.msb -rw-r--r-- 1 oraccbs1 dba 27136 Sep 4 2010 ocius.msb oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll oraus.msb -rw-r--r-- 1 oraccbs1 dba 1092608 Oct 9 2012 oraus.msb oraccbs1@ebsmed08:/opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> exp Export: Release 11.2.0.2.0 - Production on Thu May 8 10:40:19 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Username: opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll expus.msb* -rw-r--r-- 1 oraccbs1 dba 5817 Sep 4 2010 expus.msb.gz /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll ocius.msb* -rw-r--r-- 1 oraccbs1 dba 9193 Sep 4 2010 ocius.msb.gz /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll oraus.msb* -rw-r--r-- 1 oraccbs1 dba 352792 Oct 9 2012 oraus.msb.gz /opt/app/oracle/dbccbspr1/product/11.2.0/oracore/mesg> ll lrmus.msb* -rw-r--r-- 1 oraccbs1 dba 4608 Aug 11 2010 lrmus.msb 不知道怎么回事,这几个文件竟然被压缩了,使用gunzip来解压一下 /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> gunzip expus.msb.gz /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll expus.msb -rw-r--r-- 1 oraccbs1 dba 17408 Sep 4 2010 expus.msb /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> gunzip ocius.msb.gz /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> gunzip oraus.msb.gz /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll ocius.msb -rw-r--r-- 1 oraccbs1 dba 27136 Sep 4 2010 ocius.msb /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> ll oraus.msb -rw-r--r-- 1 oraccbs1 dba 1092608 Oct 9 2012 oraus.msb 再次尝试。发现就没有问题了。 /opt/app/oracle/dbccbspr1/product/11.2.0/rdbms/mesg> exp Export: Release 11.2.0.2.0 - Production on Thu May 8 10:40:19 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Username: 后续的问题就是继续来测试,查看有没有其他潜在的问题了。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏王硕

原 Postgres-X2部署步骤

35410
来自专栏技术点滴

Windows文件操作基础代码

Windows文件操作基础代码     Windows下对文件进行操作使用的一段基础代码File.h,首先是File类定义: #pragma once #inc...

2229
来自专栏乐沙弥的世界

Failed to create or upgrade OLR

    对于Oracle 11g RAC 的安装,与Oracle 10g(clusterware)类似,grid 安装完毕后需要执行orainstroot.sh...

544
来自专栏杨建荣的学习笔记

rman数据备份恢复学习笔记(49天)

昨天对rman数据备份恢复进行了总结, 分享一下。 常用的一些命令 list backup; list expired backup; report schem...

3436
来自专栏10km的专栏

cmake:vs2015/MinGW静态编译leveldb

leveldb是google的开源项目(https://github.com/google/leveldb), 在linux下编译很方便,然而官方版本却没有提供...

3196
来自专栏杨建荣的学习笔记

Oracle 12c升级检查问题分析(r10笔记第69天)

今天计划把一个测试环境升级到12c,为了练练手,先在备库上来做。数据库版本是11.2.0.3.0,计划升级到12.1.0.2.0。 为了不影响原有的测试主库,我...

3498
来自专栏杨建荣的学习笔记

由一条日志警告所做的调优分析(r3笔记第40天)

这个案例发生有段时间了,但是今天无意中看到当时的邮件,感觉还是收益匪浅,看来还是细节决定成败啊。从一些日志或trace 文件中的警告信息中我们可以发掘出潜在的问...

3193
来自专栏乐沙弥的世界

使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例

--==========================================

633
来自专栏流媒体

Linux下ndk编译移植FFmpeg到Android平台简介

这里我们选择3.2.4版本(注意:这里使用的3.2.4版本,如果用最新的版本,编译可能出现问题,为了想让大家上手,建议版本先保持一致)。直接github上选择下...

802
来自专栏c#开发者

Entity Framework 6.x Code Frist For Oracle 实践与注意点

Entity Framework 6.x Code Frist For Oracle 实践与注意点 开发环境 Visual Studio.net 2015/20...

2727

扫描关注云+社区