在Oracle Linux 6.1 上安装Oracle 10.2.0.1, 在安装软件的时候就是很曲折的过程,在dbca 建instance的时候,又遇到了:
ORA-27125:unable to create shared memory segment
安装被中断。
rac2:/u02> oerr ora 27125
27125, 00000, "unable to create sharedmemory segment"
// *Cause: shmget() call failed
// *Action: contact Oracle support
解决方法如下:
[root@rac2 ~]# id oracle
uid=500(oracle) gid=501(oinstall)groups=501(oinstall),502(dba),503(asmadmin),504(oper)
[root@rac2 ~]# more/proc/sys/vm/hugetlb_shm_group
0
下面用root执行下面的命令,将dba组添加到系统内核中:
[root@rac2 ~]# echo 502 >/proc/sys/vm/hugetlb_shm_group
--这里的502 是上面的id 命令查看出来的。
[root@rac2 ~]# more /proc/sys/vm/hugetlb_shm_group
502
然后重新DBCA,成功建立实例。 如果遇到实例名以存在的提示,删除/etc/oratab 中对应的记录即可。
hugetlb_shm_group 说明:
hugetlb_shm_group contains group id that isallowed to create SysV shared memory segment using hugetlb page
When a process uses some memory, the CPU is marking the RAM as used by that process. For efficiency, the CPU allocate RAM by chunks of 4 K bytes (it's the default value on many platforms). Those chunks are named pages. Those
pages can be swapped to disk, etc.
Since the process address space are virtual, the CPU and the operating system have to remember which page belong to which process, and where it is stored.Obviously, the more pages you have, the more time it takes to find
where the memory is mapped. When a process uses 1 GB of memory, that's 262144 entries to look up (1 GB / 4 K). If one Page Table Entry consume 8 bytes, that's 2 MB (262144 * 8)to look-up.
Most current CPU architectures support bigger pages (so the CPU/OS have lessentries to look-up), those are named Huge pages (on Linux), Super Pages (onBSD) or Large Pages (on Windows), but it all the same thing.
然后重启数据库,问题解决,但是我发现数据库服务器重启后,这个问题又会重现,又必须处理上述命令,才能成功启动数据库。治标不治本
,其实只须在/etc/sysctl.conf下设置一下hugetlb_shm_group即可一劳永逸的解决这个问题:
vm.hugetlb_shm_group = 502
本文详细介绍了在 Oracle Linux 6.1 上安装 Oracle 10.2.0.1 时遇到 ORA-27125 错误的解决过程,并提供了持久性的解决方法。通过修改 sysctl 配置文件来调整 hugetlb_shm_group 参数,解决了内存段创建失败的问题。
2352

被折叠的 条评论
为什么被折叠?



