[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ulimit 设定在不同用户切换间报错,怎么解决?



参照 oracle 11g 安装文档要求, 作了相应设定(由于步骤比较长,在问题后面罗列出):

8X============================================================================X8


1. 如果在终端用 root 登录, 每次从 root 执行:
      su -l oracle
    时, 系统报错:
      -su: ulimit: max user processes: connot modify limit: Operation not permitted

2. 如果用 oracle 登录,则无上面错误



问题:
   由于这个问题,
   1) 如果是用 oracle 用户直接登录,执行 dbstart $ORACLE_HOME 则无此错误

   2) 如果在启动脚本(initscript)里 或 先以 root 登录后执行:
       su - oracle -c "dbstart $ORACLE_HOME"
      将会报如前面所述出错信息.



   !!!期待各位朋友指教,我该如何操作才可以 在 initscript 里执行 oracle的启动脚本?!!!



8X============================================================================X8

具体设定(修改并且重启过系统了):
1. /etc/sysctl.confi 修改成:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586


2. /etc/pam.d/login 中确认已有:
    session    required   pam_limits.so


3. /etc/security/limits.conf 添加:
    oracle   hard    nproc     16384
    oracle   soft    nproc     2047
    oracle   hard    nofile    65536
    oracle   soft    nofile    1024
 

4. 修改 /etc/profile, 加入
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
umask 022
fi


Reply to: