今天新建一个数据库,顺便打9208的补丁。用xmanager安装server一切正常,当打9208补丁时又出现了一些mk文件无法调用的错误,忽略掉安装完后,发现sqlplus没法用了,信息类似前两天的错误(之前的一篇blog有记录),不过报的文件不同了。开始以为系统补丁又没打,检查发行是全的。relink试了一下,发现报很多类似于
ld: 0711-317 error: undefined symbol ******
的信息(******为不同的代码),每一段的最后还有错误消息:
make: 1254-104 the error code from the last command is 8
仔细检查错误信息发现,很多文件说没有找到,对于的目录是$ORACLE_HOME/lib,ls查了下果然没有,仔细想了想,结果在$ORACLE_HOME/lib32下找到了这些文件。难道是我环境变量错了?echo了一下$LIBPATH发现,这个变量竟然没有。我查看.profile明明设置了啊,直接telnet查看$LIBPATH是存在的。晕,第一次遇到这样的问题,最近真是邪门,老碰到这种稀奇古怪的问题。直接在xmanager里直接export LIBPATH了一下,重新装了一次,问题解决。图形界面为什么会丢环境变量呢?待查~
另外为什么没有这个变量就不行呢,oracle的解释是当安装新版本的时候,新的library 没有覆盖就版本的library时就会出现这样的问题,一般来讲根据错误信息直接找新library去覆盖老的就可以,或者修正错误的PATH和LIBPATH 参数。回想一下,安装补丁时出现调用失败可能就是因为路径问题没有找到正确的文件,从而没有覆盖掉。
oracle提供了一个symfind命令可以检查undefined symbols的情况(包括所在文件及路径)
方法在unix提示符下执行:
symfind ******
(******同上面错误信息的内容。)
使用这个没有可以帮助你来判断问题的原因是否属于路径问题。(操作系统位数不对也会导致类似的错误)
总结一下:点儿背不能赖社会啊~ :)
阅读(3980) | 评论(0) | 转发(0) |