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"

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值