温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle启动遭遇ORA-27102: out of memory该怎么办

发布时间:2021-11-08 17:17:22 来源:亿速云 阅读:1097 作者:柒染 栏目:建站服务器

oracle启动遭遇ORA-27102: out of memory该怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

OS: linux 2.6.9-103.ELsmp #1 SMP

DB: 10205, 4节点RAC

背景:

节点1前几天重启维护,3instance起来了俩,第3TEST03N1启动时不断报错

$ $ORACLE_HOME/bin/sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.5.0 - Production on Mon Sep 16 04:30:06 2013

 

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

 

Connected to an idle instance.

 

SQL> startup nomount;

ORA-27102: out of memory

Linux-x86_64 Error: 28: No space left on device

 

诊断思路:

首先想到的是共享内存耗光了

$ ipcs -a

 

------ Shared Memory Segments --------

key        shmid      owner      perms      bytes      nattch     status     

0xa637e870 0          oracle    640        132120576  17                     

0x00000000 131073     oracle    660        4297064448 1          dest        

0x09c77ebc 229378     oracle    660        4297064448 36                     

0x9b377f58 262147     oracle    640        4297064448 38 

    

根据当前instance进程数判断,第一行属于ASM,后两个为另外两个instance,而第2行没有被占用,应该是TEST03N1关闭时linux回收共享内存段失败导致的;

$ cat /proc/sys/kernel/shmmax

12884901888

$ cat /proc/sys/kernel/shmall

4194304

PAGESIZE4K,最大允许共享内存4194304*4096= 17179869184,当前已占用4297064448*3+132120576= 13023313920,还剩余4156555264= 3964M

TEST03N1SGA_MAX_SIZE/SGA_TARGET=4G,所以会报out of memory.

ipcrm不起作用

$ ipcrm -m 131073

经过一系列测试,可允许设置的SGA_MAX_SIZE/SGA_TARGET最大值为3952M.

此时的共享内存段使用情况

$ ipcs -a

 

------ Shared Memory Segments --------

key        shmid      owner      perms      bytes      nattch     status     

0xa637e870 0          oracle    640        132120576  17                     

0x00000000 131073     oracle    660        4297064448 1          dest        

0x09c77ebc 229378     oracle    660        4297064448 40                     

0x9b377f58 262147     oracle    640        4297064448 40                     

0x7ede1a40 557060     oracle    640        4146069504 43             

 

大约还剩余10M左右             

SQL> select to_char(17179869184-4297064448*3-132120576-4146069504) from dual;

 

TO_CHAR(

--------

10485760

 

SQL> select 10485760/1024/1024 from dual;

 

10485760/1024/1024

------------------

                10

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI