sqlplus无法启动的问题及解决(2) (25天)

今天性能测试部门的同事问我一个问题,说他跑一个shell脚本调用sqlplus 结果报错

Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

我记得自己之前碰到过类似的问题,也是sqlplus启动不了。 参见日志http://blog.itpub.net/23718752/viewspace-752926/ 是因为ORACLE_HOME的设置多了一个"/"结果就报了错,为此还专门重装了一次数据库。 今天碰到这个问题,我第一感觉就是ORACLE_HOME不对。让同事把ORACLE_HOME的值发过来。

[Mar26 16:14:26] > echo $ORACLE_HOME /oravl01/oracle/11.2.0.3

我查看了下,这个home没有问题 然后他给我大概解释了下这个shell脚本, 他们会专门写一个参数文件,里面有ORACLE_HOME之类的变量,然后在shell脚本里调用,因为业务流程复杂,可能好多shell脚本都有一定的依赖和嵌套调用。 我说先看看这个参数文件吧,他从远程机器上打开,我看了下,确实没有问题,而且他说这个参数文件一直没有变过,从solaris环境上直接拿过来用的, 然后我说在哪开始调用的,打上几个debug信息好跟踪,然后他又跑了一次脚本。 查看脚本报错信息,连接串的值已经取到了。就是开始调用sqlplus的时候报错。 我让他看看脚本是不是有格式的问题,因为dos格式和linux格式的文件还是有 "^M"的困扰的。 他为了验证又格式化了一把原来的脚本,还是同样的错误。 他已经没招了,我说我看看脚本,看有没有可能是unix到Linux复用脚本的时候有不兼容的问题。 我自己登上系统,还是先查看参数文件。马上就发现了问题。

cat -v parameters.ini
_ORACLE_HOME="/oravl01/oracle/11.2.0.3"^M
_ORACLE_SID="XXXX"^M
_TISPERF_DB="XXXX/XXXX@XXXX"^M
_KSH_PATH_OLD=/usr/bin/ksh^M
_KSH_PATH=/bin/ksh^M

原来这哥们从solaris copy这个文件的时候还是经过了windows来中转,参数文件的名字也不是.sh .ksh之类的名字,格式化的时候就给漏掉了。 他知道这个问题,一个劲的感叹,真是不应该啊。折腾了好几个小时了。

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

原文发表时间:2014-03-28

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LIN_ZONE

mac homebrew

Homebrew 会将套件安装到独立目录,并将文件软链接至/usr/local 。

1141
来自专栏JAVA高级架构

2018年一线互联网公司Java高级面试题总结

1、hashcode相等两个类一定相等吗?equals呢?相反呢? 2、介绍一下集合框架? 3、hashmap hastable 底层实现什么区别?hashta...

5348
来自专栏HaHack

化繁为简的企业级 Git 管理实战(五):二进制大文件的版本控制

1577
来自专栏Pythonista

saltstack高效运维

saltstack是由thomas Hatch于2011年创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。

1795
来自专栏晓晨的专栏

ABP从入门到精通(3):aspnet-zero-core 使用Redis缓存

1562
来自专栏蓝天

揭开Linux的Swap之谜

为什么选择Linux?因为Linux能让你掌握你所做的一切!   为什么痛恨Windows?因为Windows让你不知道自己在做什么!   这就是我喜欢Linu...

1083
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-Web打印

系列目录 前言 1.本次主要弥补工作流,用户表单数据的打印 2.使用JQprint做为web打印插件 3.兼容:FireFox,Chrome,IE、 4...

3915
来自专栏皮振伟的专栏

[linux][statethread]协程库ST技术分析

前言: 在IO密集型的场景下,尤其是互联网后台,经常会使用epoll等IO复用技术。鉴于直接使用epoll的代码阅读性和开发效率等原因,就抽象出来了各种高级模型...

3028
来自专栏Janti

记一次内存溢出的分析经历——thrift带给我的痛orz

说在前面的话 朋友,你经历过部署好的服务突然内存溢出吗? 你经历过没有看过Java虚拟机,来解决内存溢出的痛苦吗? 你经历过一个BUG,百思不得其解,头发一根一...

4458
来自专栏Android开发实战

HTTP1.0、HTTP1.1和HTTP2.0的区别

早在HTTP建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的w...

1713

扫码关注云+社区