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之类的名字,格式化的时候就给漏掉了。 他知道这个问题,一个劲的感叹,真是不应该啊。折腾了好几个小时了。
- firefox查看微信公众平台的数据分析时就出现不信任链接怎么办?
- spark-streaming集成Kafka处理实时数据
- 使用spark与MySQL进行数据交互的方法
- python分布式环境下的限流器
- commons-pool与commons-pool2连接池(Hadoop连接池)
- Glusterfs 文件系统
- 时过境迁:Oracle跨平台迁移之XTTS方案与实践
- Kazoo Python Zookeeper 选主
- Linux Redis集群搭建与集群客户端实现
- python使用上下文管理器实现sqlite3事务机制
- python服务端多进程压测工具
- 响应式js幻灯片代码一枚
- 使用深度学习检测面部特征,让实时视频聊天变得更有趣
- springboot 注册服务注册中心(zk)的两种方式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在 Linux 中不使用 CD 命令进入目录/文件夹的方法
- 探索Linux内核:Kconfig的秘密
- Linux中使用命令more,less,cat查看文件内容
- SSH的ssh-keygen命令基本用法详解
- 图文详解Ubuntu搭建Ftp服务器的方法(包成功)
- Linux中chown与chmod两个命令的区别详解
- 解决navicat连接不上linux服务器上的mysql问题
- 增强Linux和Unix服务器安全性的方法详解
- ubuntu下没有中文输入法的解决办法
- linux查看端口是否开放的方法总结
- Linux下删除乱码或特殊字符文件的方法讲解
- Ubuntu Server下无线网卡的配置详解
- Linux中修改mysql默认编码的方法步骤
- ubuntu16.04搭建nfs服务的方法
- Ubuntu16.04搭建php5.6Web服务器环境