`
wsql
  • 浏览: 12034924 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

oracle-rdbms-server-11gR2-preinstall 的一个BUG解决

 
阅读更多

Oracle提供了一个非常方便的修改内核参数的RPM包,的确省了不少麻烦,特别是脚本化以后只需要

cd /etc/yum.repo.d/

wget http://public-yum.oracle.com/public-yum-ol6.repo

yum -y install oracle-rdbms-server-11gR2-preinstall

即可,特别需要注意的是11gR2 11.2.0.1版本需要i686的安装包

libaio-0.3.107-10.1.ky3.i686.rpm

libaio-devel-0.3.107-10.1.ky3.i686.rpm

11.2.0.2以后据说就不需要了。

在12月的时候按照以上步骤确认能正常修改内核参数,但是这个月再运行后,发现orakenerl.log里有错误,Failed to copy /etc/sysctl.conf to /var/log/oracle-rdbms-server-11gR2-preinstall//backup/ 1月-03-2013-15-09-13

从错误信息来看,原因应该就是1月-03-2013-15-09-13 前面有个空格,不能作为目录名,要找到根本原因得找到对应的代码,于是

打开/usr/bin/oracle-rdbms-server-11gR2-preinstall-verify文件,找到BACKUPDIR的地方,

BACKUPDIR=/var/log/oracle-rdbms-server-11gR2-preinstall/backup/`date "+%b-%d-%Y-%H-%M-%S"`

原来是因为日期格式化的时候采用的是语言相关的%b,对于中文来说是两个字节,而一月的1是一个字节,前面就用空格补齐了,所以就造成了这个BUG,

难道Oracle的开发者没有在非英文环境下做过测试?抑或是测试的时候是10-12月?

知道原因修正方法就比较简单了,大致有两种方法:

第一种:%b改成%B 这样输出是“一月”,就不会有问题了

第二种:换语言,执行之前设置一下环境变量EXPORT LANG=en_US.UTF8,这样输出就是"Jan"

以上这个问题花了我半天的时间,刚开始怀疑是不是虚拟机问题,是不是安装包问题,走了很多弯路,希望对大家有帮助。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics