在安装 Oracle Grid Infrastructure 检查约束时遇到一个错误,大体是说当前可打开的文件描述符的比较大数为 1024,而要求是 65536。Linux 下可打开文件描述符的比较大数如何增大?
于是在 gird 用户下执行 ulimit -a,显示可打开的比较大文件数为 1024,这是默认值; 执行 ulimit -n 65536 不允许修改,转到 root 下面执行 ulimit -n 65536,执行 ulimit -a 显示为 65536,在 grid 用户下执行依然为 1024。当时想到用 sudo 的方式执行,对 gird 用户赋予所有权限,执行 ulimit -n 65536 依然报错。
后来想起在配置 /etc/profile 文件里,对 oracle 有 ulimit -n 65536 的命令,如下:
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
添加 grid 用户后,source /etc/profile
if [$USER = "oracle"] || [$USER = "grid"] ; then
if [$SHELL = "/bin/ksh"]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
在 grid 执行 ulimit - a 依然为 1024,后来检查安装步骤发现忘了在 /etc/security/limits 中添加 grid 用户了,添加下面即可:
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
看来是作用域的问题,增大文件描述符。