ORA-27125:unable to create shared memory segment 解決方法

聽海★藍心夢發表於2013-11-13

在Oracle Linux 6.2 上安裝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@dbsrv ~]# id oracle

uid=500(oracle) gid=501(oinstall)groups=501(oinstall),502(dba),503(asmadmin),504(oper)

[root@dbsrv ~]# more/proc/sys/vm/hugetlb_shm_group

0

 

下面用root執行下面的命令,將dba組新增到系統核心中:

[root@dbsrv ~]# echo 502 >/proc/sys/vm/hugetlb_shm_group

--這裡的502 是上面的id 命令檢視出來的。

[root@dbsrv ~]# more /proc/sys/vm/hugetlb_shm_group     

502

 

因為我dbca的程式沒有退出,直接執行最後一步,點finish繼續建庫。成功建立例項。 如果遇到例項名以存在的提示,刪除/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 ismarking the RAM as used by that process. For efficiency, the CPU allocate RAMby chunks of 4K bytes (it's the default value on many platforms). Those chunksare named pages. Those pages can be swapped to disk, etc.

Since the process address space are virtual, the CPU and the operating systemhave 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 thememory is mapped. When a process uses 1GB of memory, that's 262144 entries to lookup (1GB / 4K). If one Page Table Entry consume 8bytes, that's 2MB (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.

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-776477/,如需轉載,請註明出處,否則將追究法律責任。

相關文章