ORA-27125: unable to create shared memory segment

简介: OS环境:CentOS release 6.5 (Final) Oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.
OS环境:CentOS release 6.5 (Final)
Oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit

场景:数据库startup的时候报如下错误

*******************************************************************************
[oracle@localhost ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 31 09:10:45 2016
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
已连接到空闲例程。
SQL> startup
ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 1: Operation not permitted
*********************************************************************************
解决方法:
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.

步骤如下:
[oracle@localhost ~]$ id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
root@localhost ~]# more /proc/sys/vm/hugetlb_shm_group 
0
[root@localhost ~]# echo 502 >/proc/sys/vm/hugetlb_shm_group
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 31 09:12:05 2016
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 5016387584 bytes
Fixed Size                  2027640 bytes
Variable Size            1124077448 bytes
Database Buffers         3875536896 bytes
Redo Buffers               14745600 bytes
数据库装载完毕。
数据库已经打开。
相关文章
|
7月前
|
Oracle 关系型数据库
Customer RecommendedORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O
Customer RecommendedORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O
52 4
|
关系型数据库 数据库管理 Oracle
|
SQL Oracle 关系型数据库
Consistent Gets,Physical Reads和DB Block Gets的解释(转)
在Oracle的文档中有这样的解释: db block gets:Number of times a CURRENT block was requested. consistent gets:Number of times a consistent read was requested for a block.
1183 0
|
SQL Oracle 关系型数据库
ORACLE ORA-04030之 out of process memory when trying to allocate
    近期巡检中,一oracle 11g rac节点出现ORACLE ORA-04030之 out of process memory when trying to allocate报错,查询ORACLE官方MOS确定是:BUG11852492,原因是用户会话单进程占用PGA超过4GB异常终止,根据MOS文章1325100.1的建议:可以根据服务器实际情况及SQL运行的实际情况放开PGA单进程使用内存空间的限制到16GB。
1668 0
|
SQL Oracle 关系型数据库
(转)关于 db block gets,consistent gets,physical reads的概念
看到这篇文章,对于这3个概念感觉还是理解不足,转载过来以备研究查看 在Oracle的文档中有这样的解释:Recursive Calls: Number of recursive calls generated at both the user and system level.
877 0