我在redhat linux 6.3 64bit系统安装完毕oracle 10.2.0.1,运行dbca命令建库时遇到ora-27125错误,使用oerr查询
[oracle@oracle database]$ oerr ora 27125 27125, 00000, "unable to create shared memory segment" // *Cause: shmget() call failed // *Action: contact Oracle support
原来是分配共享内存失败
后来在eygle博客找到了解决办法...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ORA-27125: unable to create shared memory segment查询了一下,发现问题和linux上的hugetbl有关。
Cause: shmget() call failed
Action: contact Oracle support
[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0
# echo 501 > /proc/sys/vm/hugetlb_shm_group然后启动数据库,问题消失。
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 4K 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 1GB of memory, that's 262144 entries to look up (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 less entries to look-up), those are named Huge pages (on Linux), Super Pages (on BSD) or Large Pages (on Windows), but it all the same thing.
http://wiki.debian.org/Hugepages