Welcome 微信登录

首页 / 数据库 / MySQL / ORA-27102: out of memory 故障

最近的UAT数据库迁移,由于是多个DB需要迁移到同一台机器,一部分完成后,启动后续数据库碰到了ORA-27102错误,提示内存超出,查看系统可用内存,远大于需要启动数据库的sga和pga,究竟是怎么一回事呢?如果你也碰到类似错误,不妨往下看。 1、故障现象
Oracle@v2013db02u:~> cat /etc/issueWelcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel (l).oracle@v2013db02u:~> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on Sat Mar 30 09:46:57 2013Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.Connected to an idle instance.SQL> startup pfile=/u02/database/MHUAT02/initMHUAT02.ora
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
SQL> ho oerr ora 27102
27102, 00000, "out of memory"
// *Cause: Out of memory
// *Action: Consult the trace file for details
2、分析与解决
--首先查看了系统实际可用内存
--系统实际可用内存还剩50多个GB呢
SQL> exit
Disconnected
oracle@v2013db02u:/u02/database> free -m
            total      used      free    shared    buffers    cached
Mem:        64435      5968      58467          0          3      4045
-/+ buffers/cache:      1919      62516
Swap:        32773      1232      31540--MetaLink上给出了关于这个问题的描述 [ID 301830.1]
--是由于kernel.shmall值设置太小引起的kernel.shmall
  该参数用于配置系统一次能够使用的最大的共享页面数,该参数的值总是ceil(shmmax/PAGE_SIZE)
  Oracle 9i,10g的x86以及x86-64平台推荐以及缺省的大小通常为2097152
  在大多数情况下,该参数是够用的。按照上述计算方式页面内存总大小可以达到8GB(2097152*4096 bytes (shmall*PAGE_SIZE))
  通常情况下,PAGE_SIZE 的大小为4096byte,除非使用了Big Pages 或 Huge Pages
  对于超出8GB系统内存,如共享内存段(shmmax)的最大大小是16G,则所需要共享内存页数(shmall)为16GB/4KB=16777216KB/4KB=4194304(页)
  32GB,64GB可以依上述方式类推。--下面查看本机的设置
v2013db02u:~ # getconf PAGE_SIZE
4096v2013db02u:~ # /sbin/sysctl -a | grep shm
vm.hugetlb_shm_group = 0
kernel.shmmni = 4096        --定义共享内存段的最大数量,也就是可以开辟多少个共享内存段,一般够用 
kernel.shmall = 2097152    --由于当前server有多个db运行,应该是总页数超出所致
kernel.shmmax = 4294967296  --定义单个共享内存段的最大值,由于当前server没有sga大于4gb的,可以保留原值--前面我们在使用free时,系统使用内存已经超出了4gb,也表明shmall的超出了最大的共享页面数--Author : Robinson
--Blog  : http://blog.csdn.net/robinson_0612v2013db02u:~ # vi /etc/sysctl.conf  --修改kernel.shmall的值,将其改为16gb能容纳的页面数,使用root身份
v2013db02u:~ # sysctl -p            --使修改立即生效,无需重启server
v2013db02u:~ # /sbin/sysctl -a | grep shm
vm.hugetlb_shm_group = 0
kernel.shmmni = 4096
kernel.shmall = 4194304
kernel.shmmax = 4294967296--再次启动db正常
oracle@v2013db02u:~> export ORACLE_SID=MHUAT02
oracle@v2013db02u:~> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.3.0 - Production on Sat Mar 30 10:29:18 2013Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.Connected to an idle instance.SQL> startup pfile=/u02/database/MHUAT02/initMHUAT02.ora
ORACLE instance started.Total System Global Area  599785472 bytes
Fixed Size                  2074568 bytes
Variable Size            167774264 bytes
Database Buffers          423624704 bytes
Redo Buffers                6311936 bytes
Database mounted.
Database opened.
  • 1
  • 2
  • 下一页
MySQL 5.5 和 5.6 默认参数值的差异RMAN incremental backup tips相关资讯      ORA-27102 
  • Oracle启动报错ORA-27102解决  (09/02/2015 19:30:40)
  • ORA-27102: out of memory  (09/27/2014 06:36:21)
  • ORA-27102:out of memory Linux-  (06/14/2014 20:40:53)
  • 在Windows上调整SGA大小遭遇ORA-  (10/29/2014 19:19:35)
  • ORA-27102: out of memory报错的处  (08/09/2014 13:47:46)
  • ORA-27102:out of memory Linux-  (04/11/2013 11:21:30)
本文评论 查看全部评论 (0)
表情: 姓名: 字数