设置Oracle 环境变量的时候报错:
[oracle@qs-dmm-rh1 ~]$ source .bash_profile
-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 参数作用是一样的。
-u | 用户最大可用的进程数。 |
-n | 可以打开最大文件描述符的数量。 |
关于ulimit 的更多内从,参考:
通过 ulimit 改善系统性能
http://blog.csdn.net/tianlesoftware/archive/2011/03/07/6229521.aspx
我们开始删除的那段配置,应该是写在/etc/profile 文件里的。
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
Make the following changes to the default shell start-up file:
(1)For the Bourne, Bash, or Korn shell, add the following lines to the /etc/profile
file:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
(2)For the C shell, add the following lines to the /etc/csh.login file:
( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
endif