在安裝Oracle Grid Infrastructure檢查約束時遇到一個錯誤,大體是說當前可打開的文件描述符的最大數為1024,而要求是65536。
於是在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
看來是作用域的問題,增大文件描述符。