Using mlock ulimits for SHM_HUGETLB is deprecated
前言
刚检查一个集群数据库的系统日志,发现如下信息:
/var/log/message,
[root@dev-rac02 ~]# tail -1 /var/log/messages Jul 1 15:17:24 dev-rac02 kernel: oracle (4768): Using mlock ulimits for SHM_HUGETLB is deprecated
dmesg,
[root@dev-rac02 ~]# dmesg | tail -1 oracle (4768): Using mlock ulimits for SHM_HUGETLB is deprecated
原因
是由于少配置了hugetlb_shm_group参数导致。
(vm.hugetlb_shm_group 参数设置为有权使用 HugePages 的操作系统组。默认情况下,此参数设置为 0,
从而允许所有组使用 HugePages。可以将此参数设置为 Oracle 数据库进程所属的操作系统组,如 oinstall),
在本系统中在sysctl.conf中增加vm.hugetlb_shm_group=1000,然后重启系统。
另外,不设置此参数也可能引起ORA-27125报错。
以后这个系统参数还是作为Oracle服务器安装搭建的标准化之一吧。
解决
根据mos文档,
How To Add a non-root group to hugetlb_shm_group in Oracle Linux (Doc ID 2491966.1)
Oracle Linux 6 Release Notes (Doc ID 1292376.1)
[root@dev-rac01 ~]# id -g oracle 1000 [root@dev-rac01 ~]# id -g grid 1000 [root@dev-rac01 ~]# echo 1000 > /proc/sys/vm/hugetlb_shm_group [root@dev-rac01 ~]# sysctl -w vm.hugetlb_shm_group=1000 vm.hugetlb_shm_group = 1000 [root@dev-rac01 ~]# echo "vm.hugetlb_shm_group=1000" >> /etc/sysctl.conf
所有节点都执行相同操作即可。
其他的参考链接: