有一台CentOS的机器装了Oracle,启动实例的时候报错ORA-27125
SQL> startup
ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 1: Operation not permitted
Linux详细版本为
# cat /proc/version
Linux version 2.6.32-358.14.1.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jul 16 23:51:20 UTC 2013
0、解决办法
查询dba用户组的id
# id oracle
uid=502(oracle) gid=503(oinstall) 组=503(oinstall),502(dba)
将dba用户组id添加到文件 /proc/sys/vm/hugetlb_shm_group
# echo 502 > /proc/sys/vm/hugetlb_shm_group
startup数据库实例
SQL> startup
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size 2022144 bytes
Variable Size 486540544 bytes
Database Buffers 1644167168 bytes
Redo Buffers 14753792 bytes
Database mounted.
Database opened.
1、相关解释
关于hugetlb文件涉及到的相关概念,可以参考这篇文章
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.
小米路由器mesh怎么设置两个wifi信号(小米路由器mesh设置两个wifi信号方法)
小米路由器mesh组网怎么桥接(小米路由器mesh组网桥接方法)
小米路由器4q怎么用手机控制(小米路由器4q手机控制使用方法)
小米路由器4q支持5g吗怎么设置(小米路由器4q支持5g设置方法)
小米路由器4q刷机包怎么安装(小米路由器4q刷机包安装方法)
小米路由器4q忘记密码怎么办(小米路由器4q忘记密码如何解决)