Oracle Linux 6.1 安装Oracle 10g ORA-27125:unable to create shared memory segment 解决方法

来源:互联网 发布:四川广电网络 清凉套餐 编辑:程序博客网 时间:2024/05/29 09:14

在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


原创粉丝点击