Linux 下Oracle 环境变量- bash- ulimit- open files- cannot modify limit 解决

2014-11-24 17:59:46 · 作者: · 浏览: 1

-bash: ulimit: open files: cannot modify limit: 不允许的操作



设置的环境变量如下:


# Oracle Settings


TMP=/tmp; export TMP


TMPDIR=$TMP; export TMPDIR


ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE


ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME


ORACLE_SID=orcl; export ORACLE_SID


ORACLE_TERM=xterm; export ORACLE_TERM


PATH=/usr/sbin:$PATH; export PATH


PATH=$ORACLE_HOME/bin:$PATH; export PATH


LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH


CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH


if [ $USER = "oracle" ]; then


if [ $SHELL = "/bin/ksh" ]; then


ulimit -p 16384


ulimit -n 65536


else


ulimit -u 16384 -n 65536


fi


fi



把最后一段if 判断去掉后,在source正常. 思考了一下这个问题。 仔细的看了一下官网文档上在Oracle 安装这块对环境变量的设置,没有这一段配置。而是采用的是另一种方法:



/etc/security/limits.conf 文件里添加:


oracle soft nproc 2047


oracle hard nproc 16384


oracle soft nofile 1024


oracle hard nofile 65536



我们cat limits.conf 文件时,在最上面有参数的解释:


# - nofile - max number of open files


# - nproc - max number of processes



这个参数的意思和ulimit -u -n 参数作用是一样的。



关于ulimit 的更多内从,参考:


通过 ulimit 改善系统性能




所以,在安装Oracle 添加环境变量的时候,不用在添加:


if [ $USER = "oracle" ]; then


if [ $SHELL = "/bin/ksh" ]; then


ulimit -p 16384


ulimit -n 65536


else


ulimit -u 16384 -n 65536


fi


fi



这段ulimit的设置了。



从这个变量上,可以推断出,在.bash_profile 文件里添加if 判断是以前版本的一个设置。 现在变量设置更新了方法,但是以前的文档还存在。 所以大家都在网上搜来搜去,没有留意到这个问题。


知识的更新很重要啊。